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]#