Domain#

class hydromodpy.spatial.Domain(config=None, *, surface_topo)[source]#

Bases: object

Domain object holding geometry and thematic zones.

Responsibilities#

  • store the topographic surface support of the domain,

  • build the lower surface (substratum) from depth_model,

  • keep a lightweight georeferencing mapping for legacy consumers,

  • store declared thematic zones (such as geology) once they are built outside.

Main public attributes#

  • surface_topo

  • substratum

  • zones

  • georeferencing

param config:

type config:

DomainConfig | Mapping[str, object] | None

param surface_topo:

type surface_topo:

Surface

property z_interfaces: ndarray#

Scalar layer interfaces derived from topography and depth model.

For a single-layer aquifer the returned array is [top, bottom] where both values are the mean elevation of the corresponding surface. Raises if substratum has not been built or carries NaN everywhere.

set_zone(zone_id, zone_obj)[source]#

Register one externally-built zone object inside the domain.

Domain no longer constructs thematic zones itself. The caller builds them explicitly (for example a GeologyField) and stores them here under one declared zone_id.

Parameters:
Return type:

None

get_zone(zone_id)[source]#

Return one registered zone by canonical zone id.

Parameters:

zone_id (str)

Return type:

object | None

resolve_spatial_support(support_id)[source]#

Resolve one spatial support from zone id or field identifier.

The launcher stores heterogeneous supports in Domain.zones under a semantic zone key (for example "geology"), while field parameters reference the support through field_spatial_id (for example "field_geology"). This method bridges both naming schemes.

Parameters:

support_id (str)

Return type:

object | None

Parameters: