2.17.3.5. pycsamt.interp.hydro#

Hydrogeophysical interpretation from EM resistivity models.

This module turns an EM-derived ResistivityModel into hydrogeological deliverables: aquifer targets, clay/saline warnings, fractured/weathered zones, basement indicators, confidence maps, and station summaries. It deliberately builds on the existing interpretation objects instead of duplicating them.

Classes

AquiferZone(station, x, top, bottom, ...[, ...])

Contiguous aquifer-favourable interval at one station/profile column.

HydroGeophysicalModel(resistivity_model, ...)

Hydrogeological interpretation product for one resistivity model.

HydroInterpreter(*[, context, db, ...])

Rule-based hydrogeophysical interpreter for EM resistivity sections.

HydroUnit(x, z, rho_ohm_m, rho_log10, unit, ...)

One classified hydrogeophysical cell.

class pycsamt.interp.hydro.AquiferZone(station, x, top, bottom, mean_rho_ohm_m, confidence, zone_type='aquifer', metadata=<factory>)[source]

Bases: PyCSAMTObject, MetadataMixin

Contiguous aquifer-favourable interval at one station/profile column.

Parameters:
station: str
x: float
top: float
bottom: float
mean_rho_ohm_m: float
confidence: float
zone_type: str = 'aquifer'
metadata: dict[str, Any]
property thickness: float[source]

Interval thickness in metres.

class pycsamt.interp.hydro.HydroGeophysicalModel(resistivity_model, unit_map, confidence, zones=<factory>, logs=<factory>, metadata=<factory>)[source]

Bases: PyCSAMTObject, MetadataMixin

Hydrogeological interpretation product for one resistivity model.

Parameters:
resistivity_model: ResistivityModel
unit_map: ndarray
confidence: ndarray
zones: list[AquiferZone]
logs: list[StratigraphicLog]
metadata: dict[str, Any]
aquifer_zones(*, min_confidence=0.0)[source]

Return aquifer-favourable zones above a confidence threshold.

Parameters:

min_confidence (float)

Return type:

list[AquiferZone]

station_summary()[source]

Return compact per-station hydrogeological summaries.

Return type:

list[dict[str, Any]]

to_csv(path)[source]

Write cell-level hydro units and aquifer zones to CSV.

Parameters:

path (str | Path)

Return type:

Path

zones_to_csv(path)[source]

Write interpreted aquifer/fracture target intervals to CSV.

Parameters:

path (str | Path)

Return type:

Path

class pycsamt.interp.hydro.HydroInterpreter(*, context='', db=None, water_table_depth=None, aquifer_range=(5.0, 300.0), fracture_range=(50.0, 800.0), clay_max=20.0, saline_max=3.0, basement_min=1000.0, min_zone_thickness=1.0, calibration_ptol=0.1, max_borehole_distance=500.0)[source]

Bases: PyCSAMTObject

Rule-based hydrogeophysical interpreter for EM resistivity sections.

The default thresholds are conservative and intended as a first-pass screening model. Local calibration can be introduced by passing boreholes, a custom RockDatabase, or explicit threshold overrides.

Parameters:
fit(model, *, boreholes=None)[source]

Interpret a resistivity model or inversion result.

Parameters:
Return type:

HydroGeophysicalModel

aquifer_zones(*, min_confidence=0.0)[source]

Return aquifer zones from the last fitted model.

Parameters:

min_confidence (float)

Return type:

list[AquiferZone]

class pycsamt.interp.hydro.HydroUnit(x, z, rho_ohm_m, rho_log10, unit, lithology, confidence=1.0, metadata=<factory>)[source]

Bases: PyCSAMTObject, MetadataMixin

One classified hydrogeophysical cell.

Parameters:
x: float
z: float
rho_ohm_m: float
rho_log10: float
unit: str
lithology: str
confidence: float = 1.0
metadata: dict[str, Any]