UniBM is a Python package for dependence-aware block-maxima inference in environmental extremes.
It exposes two complementary inferential targets:
- severity via the extreme value index (EVI) and design-life levels
- persistence via the extremal index (EI)
The installable package lives under src/unibm. Repository-level benchmark,
application, and vignette workflows are orchestrated through the root
justfile.
The public package is organized around four entrypoints:
unibmfor the headline EVI and design-life-level callsunibm.evifor the severity-side workflowunibm.eifor the persistence-side workflowunibm.cdffor the public empirical CDF helper
- Copy the local environment template:
cp .env.example .env- Edit
.envand set:
DIR_WORKto your local clone of this repositoryUV_PROJECT_ENVIRONMENTto a dedicated external uv environment path
- Run the lightest repo entrypoint:
just verifyTop-level just tasks load .env automatically and sync the development
environment before they run. If you prefer raw uv commands, load .env
first and then run:
set -a; source .env; set +a
uv sync --devPackage documentation is available at:
Useful local docs commands:
just docs
just docs-servejust docs builds the static site under site/.
just docs-serve launches the local preview server.
The stable top-level entrypoints are:
just verifyjust docsjust docs-servejust full
just full is the full repo rebuild.
For benchmark, application, vignette, and manuscript-artifact details, see the
root justfile.
import numpy as np
from unibm import estimate_design_life_level, estimate_evi_quantile
sample = np.random.default_rng(7).pareto(2.0, 4096) + 1.0
fit = estimate_evi_quantile(sample, quantile=0.5, sliding=True, bootstrap_reps=120)
design_life = estimate_design_life_level(fit, years=np.array([10.0, 50.0]))See the docs site for API details, returned objects, and worked examples.