pycsamt.ai.geology.benchmark#
Seeded geological families for two-dimensional EM benchmarks.
Functions
|
Generate one deterministic ID or structural-OOD geology. |
Classes
|
One generated benchmark resistivity model with provenance. |
- class pycsamt.ai.geology.benchmark.BenchmarkGeology(family, regime, seed, grid, resistivity_ohm_m, parameters)[source]
Bases:
objectOne generated benchmark resistivity model with provenance.
- Parameters:
family (str) – Frozen geological family name.
regime ({"id", "ood"}) – Whether the realization belongs to the in-distribution or structural out-of-distribution family set.
seed (int) – Root geology seed.
grid (GeologyGrid) – Shared regular 2-D grid.
resistivity_ohm_m (ndarray) – Positive finite resistivity shaped like
grid.parameters (mapping) – Concrete sampled geological parameters.
- family: str
- regime: str
- seed: int
- grid: GeologyGrid
- resistivity_ohm_m: ndarray
- pycsamt.ai.geology.benchmark.generate_benchmark_geology(grid, family, *, seed, configuration, regime='id')[source]
Generate one deterministic ID or structural-OOD geology.
- Parameters:
grid (GeologyGrid) – Regular 2-D benchmark grid.
family (str) – Family from
ID_BENCHMARK_FAMILIESorOOD_BENCHMARK_FAMILIES.seed (int) – Explicit root seed.
configuration (mapping) – Frozen mapping containing
base_layered,id_families, andood_familiessections.regime ({"id", "ood"}, default="id") – Distribution regime.
- Returns:
Positive resistivity model and concrete sampled provenance.
- Return type:
Examples
>>> grid = GeologyGrid.regular_2d(nx=8, nz=6, dx_m=200, dz_m=100) >>> config = { ... "base_layered": {...}, ... "id_families": {...}, ... "ood_families": {...}, ... } >>> model = generate_benchmark_geology( ... grid, "layered", seed=0, configuration=config ... ) >>> model.resistivity_ohm_m.shape (6, 8)