geolib.models.dgeoflow.internal

The internal data model structure.

Functions

transform_id_to_str(value)

Classes

BoundaryConditionCollection(**data)

boundaryconditions/boundaryconditions_x.json

CalculationType

alias of CalculationTypeEnum

CalculationTypeEnum(value[, names, module, ...])

CriticalHeadResult(**data)

DGeoFlowBaseModelStructure(**data)

DGeoFlowStructure(**data)

Highest level DGeoFlow class that should be parsed to and serialized from.

DGeoFlowSubStructure(**data)

ElementResult(**data)

ErosionDirectionEnum(value[, names, module, ...])

ForeignKeys(**data)

A dataclass that store the connections between the various unique Ids used in DGeoFlow.

Geometry(**data)

geometries/geometry_x.json

GroundwaterFlowResult(**data)

InternalPipeTrajectory(**data)

MeshProperty(**data)

meshproperties/meshproperties_x.json

NodeResult(**data)

PersistableBoundaryCondition(**data)

PersistableCalculation(**data)

PersistableCriticalHeadSearchSpace(**data)

PersistableFixedHeadBoundaryConditionProperties(**data)

PersistableLayer(**data)

PersistableMeshProperties(**data)

PersistablePoint(**data)

PersistableShadingTypeEnum(value[, names, ...])

PersistableSoil(**data)

PersistableSoilLayer(**data)

PersistableSoilVisualization(**data)

PersistableStage(**data)

PersistableStochasticParameter(**data)

PipeElementResult(**data)

PipeLengthResult(**data)

ProjectInfo(**data)

projectinfo.json.

Scenario(**data)

scenarios/scenario_x.json

SoilCollection(**data)

soils.json

SoilLayerCollection(**data)

soillayers/soillayers_x.json

SoilVisualisation(**data)

class geolib.models.dgeoflow.internal.BoundaryConditionCollection(**data)

boundaryconditions/boundaryconditions_x.json

Parameters:

data (Any)

BoundaryConditions: List[PersistableBoundaryCondition]
ContentVersion: Optional[str]
Id: Optional[str]
add_boundary_condition(id, label, notes, points, head_level)
Parameters:
  • id (int)

  • label (str)

  • notes (str)

  • points (List[Point])

  • head_level (float)

Return type:

PersistableBoundaryCondition

contains_point(point)

Check if the given point is on one of the points of the layers

Parameters:

point (Point) – A point type

Returns:

True if this point is found on a layer, False otherwise

Return type:

bool

Todo

Take x, z accuracy into account

id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'BoundaryConditions': FieldInfo(annotation=List[PersistableBoundaryCondition], required=False, default=[]), 'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'Id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

classmethod structure_name()
Return type:

str

geolib.models.dgeoflow.internal.CalculationType

alias of CalculationTypeEnum

class geolib.models.dgeoflow.internal.CalculationTypeEnum(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
CRITICAL_HEAD = 'CriticalHead'
GROUNDWATER_FLOW = 'GroundwaterFlow'
PIPE_LENGTH = 'PipeLength'
class geolib.models.dgeoflow.internal.CriticalHeadResult(**data)
Parameters:

data (Any)

ContentVersion: Optional[str]
CriticalHead: Optional[float]
Elements: Optional[List[ElementResult]]
Id: Optional[str]
PipeElements: Optional[List[PipeElementResult]]
PipeLength: Optional[float]
id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'CriticalHead': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'Elements': FieldInfo(annotation=Union[List[ElementResult], NoneType], required=False, default=[]), 'Id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'PipeElements': FieldInfo(annotation=Union[List[PipeElementResult], NoneType], required=False, default=[]), 'PipeLength': FieldInfo(annotation=Union[float, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.DGeoFlowBaseModelStructure(**data)
Parameters:

data (Any)

dict(*args, **kwargs)
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.DGeoFlowStructure(**data)

Highest level DGeoFlow class that should be parsed to and serialized from.

The List[] items (one for each scenario in the model) will be stored in a subfolder to multiple json files. Where the first (0) instance has no suffix, but the second one has (1 => _1) etc.

also parses the outputs which are part of the json files

Parameters:

data (Any)

add_default_calculation(scenario_index, label, notes)

Add a new default (empty) calculation to DStability.

Parameters:
  • scenario_index (int)

  • label (str)

  • notes (str)

Return type:

int

add_default_scenario(label, notes, unique_start_id=None)

Add a new default (empty) scenario to DGeoFlow.

Parameters:
  • label (str)

  • notes (str)

  • unique_start_id (Optional[int])

Return type:

Tuple[int, int]

add_default_stage(scenario_index, label, notes, unique_start_id=None)

Add a new default (empty) stage to DStability.

Parameters:
  • scenario_index (int)

  • label (str)

  • notes (str)

  • unique_start_id (Optional[int])

Return type:

int

boundary_conditions: List[BoundaryConditionCollection]
critical_head_results: List[CriticalHeadResult]
ensure_validity_foreign_keys()
geometries: List[Geometry]
get_result_substructure(calculation_type)
Parameters:

calculation_type (CalculationTypeEnum)

Return type:

List[Union[GroundwaterFlowResult, PipeLengthResult, CriticalHeadResult]]

get_unique_id()

Return unique id that can be used in DGeoFlow. Finds all existing ids, takes the max and does +1.

Return type:

int

groundwater_flow_results: List[GroundwaterFlowResult]
has_result(scenario_index)
Parameters:

scenario_index (int)

Return type:

bool

has_scenario(scenario_id)
Parameters:

scenario_id (int)

Return type:

bool

has_soil_layer(stage_id, soil_layer_id)
Parameters:
  • stage_id (int)

  • soil_layer_id (int)

Return type:

bool

has_soil_layers(scenario_id)
Parameters:

scenario_id (int)

Return type:

bool

mesh_properties: List[MeshProperty]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'boundary_conditions': FieldInfo(annotation=List[BoundaryConditionCollection], required=False, default=[BoundaryConditionCollection(ContentVersion='2', Id='15', BoundaryConditions=[])]), 'critical_head_results': FieldInfo(annotation=List[CriticalHeadResult], required=False, default=[]), 'geometries': FieldInfo(annotation=List[Geometry], required=False, default=[Geometry(ContentVersion='2', Id='1', Layers=[])]), 'groundwater_flow_results': FieldInfo(annotation=List[GroundwaterFlowResult], required=False, default=[]), 'mesh_properties': FieldInfo(annotation=List[MeshProperty], required=False, default=[MeshProperty(ContentVersion='2', Id='16', MeshProperties=[])]), 'pipe_length_results': FieldInfo(annotation=List[PipeLengthResult], required=False, default=[]), 'projectinfo': FieldInfo(annotation=ProjectInfo, required=False, default=ProjectInfo(Analyst='', ApplicationCreated='', ApplicationModified='', ContentVersion='2', Created=datetime.date(2024, 9, 10), CrossSection='', Date=datetime.date(2024, 9, 10), IsDataValidated=False, LastModified=datetime.date(2024, 9, 10), LastModifier='GEOLib', Path='', Project='', Remarks='Created with GEOLib 2.5.0')), 'scenarios': FieldInfo(annotation=List[Scenario], required=False, default=[Scenario(ContentVersion='2', Id='0', Label='Scenario 1', Notes=None, GeometryId='1', SoilLayersId='14', Stages=[PersistableStage(Label='Stage 1', Notes=None, BoundaryConditionCollectionId='15')], Calculations=[PersistableCalculation(Label='Calculation 1', Notes=None, CalculationType=<CalculationTypeEnum.GROUNDWATER_FLOW: 'GroundwaterFlow'>, CriticalHeadId=None, CriticalHeadSearchSpace=PersistableCriticalHeadSearchSpace(MinimumHeadLevel=0.0, MaximumHeadLevel=1.0, StepSize=0.1), PipeTrajectory=None, MeshPropertiesId='16', ResultsId=None)])]), 'soillayers': FieldInfo(annotation=List[SoilLayerCollection], required=False, default=[SoilLayerCollection(ContentVersion='2', Id='14', SoilLayers=[])]), 'soils': FieldInfo(annotation=SoilCollection, required=False, default=SoilCollection(ContentVersion='2', Soils=[PersistableSoil(Code='H_Aa_ht_new', Id='2', Name='Embankment new', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_Aa_ht_old', Id='3', Name='Embankment old', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_Rk_k_shallow', Id='4', Name='Clay, shallow', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_Rk_k_deep', Id='5', Name='Clay, deep', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_Rk_ko', Id='6', Name='Organic clay', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_vhv_v', Id='7', Name='Peat, shallow', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_vbv_v', Id='8', Name='Peat, deep', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='Sand', Id='9', Name='Sand', Notes='', HorizontalPermeability=30.0, VerticalPermeability=30.0), PersistableSoil(Code='P_Rk_k&s', Id='10', Name='Clay with silt', Notes='', HorizontalPermeability=0.1, VerticalPermeability=0.1), PersistableSoil(Code='H_Ro_z&k', Id='11', Name='Sand with clay', Notes='', HorizontalPermeability=1.0, VerticalPermeability=1.0), PersistableSoil(Code='Sand, less permeable', Id='12', Name='Sand, less permeable', Notes='', HorizontalPermeability=15.0, VerticalPermeability=15.0), PersistableSoil(Code='Sand, permeable', Id='13', Name='Sand, permeable', Notes='', HorizontalPermeability=45.0, VerticalPermeability=45.0)])), 'soilvisualizations': FieldInfo(annotation=SoilVisualisation, required=False, default=SoilVisualisation(ContentVersion='2', SoilVisualizations=[]))}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

pipe_length_results: List[PipeLengthResult]
projectinfo: ProjectInfo
scenarios: List[Scenario]
soillayers: List[SoilLayerCollection]
soils: SoilCollection
soilvisualizations: SoilVisualisation
validator()

Set the Validator class.

class geolib.models.dgeoflow.internal.DGeoFlowSubStructure(**data)
Parameters:

data (Any)

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

classmethod structure_name()
class geolib.models.dgeoflow.internal.ElementResult(**data)
Parameters:

data (Any)

NodeResults: Optional[List[NodeResult]]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'NodeResults': FieldInfo(annotation=Union[List[NodeResult], NoneType], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.ErosionDirectionEnum(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
LEFT_TO_RIGHT = ('LeftToRight',)
RIGHT_TO_LEFT = 'RightToLeft'
class geolib.models.dgeoflow.internal.ForeignKeys(**data)

A dataclass that store the connections between the various unique Ids used in DGeoFlow. These can be seen as (implicit) foreign keys.

Parameters:

data (Any)

property class_fields: Dict[str, List[str]]

Return a mapping in the form: classname: [fields]

mapping: Dict[str, Tuple[str, ...]]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'mapping': FieldInfo(annotation=Dict[str, Tuple[str, ...]], required=False, default={'PersistableSoil.Id': ('PersistableSoilVisualization.SoilId', 'PersistableSoilLayer.SoilId'), 'PersistableLayer.Id': ('PersistableSoilLayer.LayerId', 'PersistableMeshProperties.LayerId'), 'Geometry.Id': ('Scenario.GeometryId',), 'SoilLayerCollection.Id': ('Scenario.SoilLayersId',), 'BoundaryConditionCollection.Id': ('PersistableStage.BoundaryConditionCollectionId',), 'MeshProperty.Id': ('PersistableCalculation.MeshPropertiesId',), 'Results.Id': ('PersistableCalculation.ResultsId',)})}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.Geometry(**data)

geometries/geometry_x.json

Parameters:

data (Any)

ContentVersion: Optional[str]
Id: Optional[str]
Layers: List[PersistableLayer]
add_layer(id, label, notes, points)

Add a new layer to the model. Layers are expected; 1. to contain at least 3 point (non closed polygons) 2. the points need to be in clockwise order 3. the polygon needs to be convex (no intersections with itsself)

Parameters:
  • id (str) – id of the layer

  • label (str) – label of the layer

  • notes (str) – notes for the layers

  • points (List[Points]) – list of Point classes

Returns:

the layer as a persistable object

Return type:

PersistableLayer

contains_point(point)

Check if the given point is on one of the points of the layers

Parameters:

point (Point) – A point type

Returns:

True if this point is found on a layer, False otherwise

Return type:

bool

Todo

Take x, z accuracy into account

get_layer(id)
Parameters:

id (int)

Return type:

PersistableLayer

id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'Id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Layers': FieldInfo(annotation=List[PersistableLayer], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

classmethod structure_name()
Return type:

str

class geolib.models.dgeoflow.internal.GroundwaterFlowResult(**data)
Parameters:

data (Any)

ContentVersion: Optional[str]
Elements: Optional[List[ElementResult]]
Id: Optional[str]
id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'Elements': FieldInfo(annotation=Union[List[ElementResult], NoneType], required=False, default=[]), 'Id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.InternalPipeTrajectory(**data)
Parameters:

data (Any)

D70: Optional[float]
ElementSize: Optional[float]
ErosionDirection: Optional[ErosionDirectionEnum]
Label: Optional[str]
Notes: Optional[str]
Points: Optional[List[PersistablePoint]]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'D70': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'ElementSize': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'ErosionDirection': FieldInfo(annotation=Union[ErosionDirectionEnum, NoneType], required=False, default=<ErosionDirectionEnum.RIGHT_TO_LEFT: 'RightToLeft'>), 'Label': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Notes': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Points': FieldInfo(annotation=Union[List[PersistablePoint], NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.MeshProperty(**data)

meshproperties/meshproperties_x.json

Parameters:

data (Any)

ContentVersion: Optional[str]
Id: Optional[str]
MeshProperties: Optional[List[PersistableMeshProperties]]
add_meshproperty(layer_id, element_size, label)
Parameters:
  • layer_id (str)

  • element_size (float)

  • label (str)

Return type:

PersistableMeshProperties

get_ids(exclude_soil_layer_id)
Parameters:

exclude_soil_layer_id (Optional[int])

Return type:

Set[str]

id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'Id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'MeshProperties': FieldInfo(annotation=Union[List[PersistableMeshProperties], NoneType], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

classmethod structure_name()
Return type:

str

class geolib.models.dgeoflow.internal.NodeResult(**data)
Parameters:

data (Any)

HydraulicDischarge: float
HydraulicHead: float
Point: Optional[PersistablePoint]
TotalPorePressure: float
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'HydraulicDischarge': FieldInfo(annotation=float, required=False, default=1), 'HydraulicHead': FieldInfo(annotation=float, required=False, default=1), 'Point': FieldInfo(annotation=Union[PersistablePoint, NoneType], required=False, default=None), 'TotalPorePressure': FieldInfo(annotation=float, required=False, default=1)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistableBoundaryCondition(**data)
Parameters:

data (Any)

FixedHeadBoundaryConditionProperties: PersistableFixedHeadBoundaryConditionProperties
Id: Optional[str]
Label: Optional[str]
Notes: Optional[str]
Points: Annotated[List[PersistablePoint]]
id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'FixedHeadBoundaryConditionProperties': FieldInfo(annotation=PersistableFixedHeadBoundaryConditionProperties, required=True), 'Id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Label': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Notes': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Points': FieldInfo(annotation=List[PersistablePoint], required=True, metadata=[MinLen(min_length=2)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistableCalculation(**data)
Parameters:

data (Any)

CalculationType: Optional[CalculationTypeEnum]
CriticalHeadId: Optional[str]
CriticalHeadSearchSpace: Optional[PersistableCriticalHeadSearchSpace]
Label: Optional[str]
MeshPropertiesId: Optional[str]
Notes: Optional[str]
PipeTrajectory: Optional[InternalPipeTrajectory]
ResultsId: Optional[str]
id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'CalculationType': FieldInfo(annotation=Union[CalculationTypeEnum, NoneType], required=False, default=<CalculationTypeEnum.GROUNDWATER_FLOW: 'GroundwaterFlow'>), 'CriticalHeadId': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'CriticalHeadSearchSpace': FieldInfo(annotation=Union[PersistableCriticalHeadSearchSpace, NoneType], required=False, default=PersistableCriticalHeadSearchSpace(MinimumHeadLevel=0.0, MaximumHeadLevel=1.0, StepSize=0.1)), 'Label': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'MeshPropertiesId': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Notes': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'PipeTrajectory': FieldInfo(annotation=Union[InternalPipeTrajectory, NoneType], required=False, default=None), 'ResultsId': FieldInfo(annotation=Union[str, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistableCriticalHeadSearchSpace(**data)
Parameters:

data (Any)

MaximumHeadLevel: Optional[float]
MinimumHeadLevel: Optional[float]
StepSize: Optional[float]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'MaximumHeadLevel': FieldInfo(annotation=Union[float, NoneType], required=False, default=1), 'MinimumHeadLevel': FieldInfo(annotation=Union[float, NoneType], required=False, default=0), 'StepSize': FieldInfo(annotation=Union[float, NoneType], required=False, default=0.1)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistableFixedHeadBoundaryConditionProperties(**data)
Parameters:

data (Any)

HeadLevel: float
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'HeadLevel': FieldInfo(annotation=float, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistableLayer(**data)
Parameters:

data (Any)

Id: Optional[str]
Label: Optional[str]
Notes: Optional[str]
Points: Annotated[List[PersistablePoint]]
id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'Id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Label': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Notes': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Points': FieldInfo(annotation=List[PersistablePoint], required=True, metadata=[MinLen(min_length=3)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

classmethod polygon_checks(points)

Todo

Find a way to check the validity of the given points

classmethod polygon_checks_validator(points)

Todo

Find a way to check the validity of the given points

class geolib.models.dgeoflow.internal.PersistableMeshProperties(**data)
Parameters:

data (Any)

ElementSize: Optional[float]
Label: Optional[str]
LayerId: str
id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'ElementSize': FieldInfo(annotation=Union[float, NoneType], required=False, default=1), 'Label': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'LayerId': FieldInfo(annotation=str, required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistablePoint(**data)
Parameters:

data (Any)

X: Optional[float]
Z: Optional[float]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'X': FieldInfo(annotation=Union[float, NoneType], required=False, default=0), 'Z': FieldInfo(annotation=Union[float, NoneType], required=False, default=0)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistableShadingTypeEnum(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)
DIAGONAL_A = 'DiagonalA'
DIAGONAL_B = 'DiagonalB'
DIAGONAL_C = 'DiagonalC'
DIAGONAL_D = 'DiagonalD'
DOT_A = 'DotA'
DOT_B = 'DotB'
DOT_C = 'DotC'
DOT_D = 'DotD'
HORIZONTAL_A = 'HorizontalA'
HORIZONTAL_B = 'HorizontalB'
NONE = 'None'
class geolib.models.dgeoflow.internal.PersistableSoil(**data)
Parameters:

data (Any)

Code: str
HorizontalPermeability: float
Id: str
Name: str
Notes: str
VerticalPermeability: float
id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'Code': FieldInfo(annotation=str, required=False, default=''), 'HorizontalPermeability': FieldInfo(annotation=float, required=False, default=0.001), 'Id': FieldInfo(annotation=str, required=False, default=''), 'Name': FieldInfo(annotation=str, required=False, default=''), 'Notes': FieldInfo(annotation=str, required=False, default=''), 'VerticalPermeability': FieldInfo(annotation=float, required=False, default=0.001)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistableSoilLayer(**data)
Parameters:

data (Any)

LayerId: Optional[str]
SoilId: Optional[str]
id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'LayerId': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'SoilId': FieldInfo(annotation=Union[str, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistableSoilVisualization(**data)
Parameters:

data (Any)

Color: Optional[str]
PersistableShadingType: Optional[PersistableShadingTypeEnum]
SoilId: Optional[str]
id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'Color': FieldInfo(annotation=Union[str, NoneType], required=True), 'PersistableShadingType': FieldInfo(annotation=Union[PersistableShadingTypeEnum, NoneType], required=True), 'SoilId': FieldInfo(annotation=Union[str, NoneType], required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistableStage(**data)
Parameters:

data (Any)

BoundaryConditionCollectionId: Optional[str]
Label: Optional[str]
Notes: Optional[str]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'BoundaryConditionCollectionId': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Label': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Notes': FieldInfo(annotation=Union[str, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PersistableStochasticParameter(**data)
Parameters:

data (Any)

IsProbabilistic: bool
Mean: float
StandardDeviation: float
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'IsProbabilistic': FieldInfo(annotation=bool, required=False, default=False), 'Mean': FieldInfo(annotation=float, required=False, default=1.0), 'StandardDeviation': FieldInfo(annotation=float, required=False, default=0.0)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PipeElementResult(**data)
Parameters:

data (Any)

Height: Optional[float]
IsActive: Optional[bool]
Nodes: Optional[List[PersistablePoint]]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'Height': FieldInfo(annotation=Union[float, NoneType], required=False, default=None), 'IsActive': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None), 'Nodes': FieldInfo(annotation=Union[List[PersistablePoint], NoneType], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.PipeLengthResult(**data)
Parameters:

data (Any)

ContentVersion: Optional[str]
Elements: Optional[List[ElementResult]]
Id: Optional[str]
PipeElements: Optional[List[PipeElementResult]]
PipeLength: Optional[float]
id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'Elements': FieldInfo(annotation=Union[List[ElementResult], NoneType], required=False, default=[]), 'Id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'PipeElements': FieldInfo(annotation=Union[List[PipeElementResult], NoneType], required=False, default=[]), 'PipeLength': FieldInfo(annotation=Union[float, NoneType], required=False, default=None)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class geolib.models.dgeoflow.internal.ProjectInfo(**data)

projectinfo.json.

Parameters:

data (Any)

Analyst: Optional[str]
ApplicationCreated: Optional[str]
ApplicationModified: Optional[str]
ContentVersion: Optional[str]
Created: Optional[date]
CrossSection: Optional[str]
Date: Optional[date]
IsDataValidated: Optional[bool]
LastModified: Optional[date]
LastModifier: Optional[str]
Path: Optional[str]
Project: Optional[str]
Remarks: Optional[str]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'Analyst': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'ApplicationCreated': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'ApplicationModified': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'Created': FieldInfo(annotation=Union[date, NoneType], required=False, default=datetime.date(2024, 9, 10)), 'CrossSection': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'Date': FieldInfo(annotation=Union[date, NoneType], required=False, default=datetime.date(2024, 9, 10)), 'IsDataValidated': FieldInfo(annotation=Union[bool, NoneType], required=False, default=False), 'LastModified': FieldInfo(annotation=Union[date, NoneType], required=False, default=datetime.date(2024, 9, 10)), 'LastModifier': FieldInfo(annotation=Union[str, NoneType], required=False, default='GEOLib'), 'Path': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'Project': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'Remarks': FieldInfo(annotation=Union[str, NoneType], required=False, default='Created with GEOLib 2.5.0')}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

classmethod nltime(date)
Parameters:

date (Union[date, str])

Return type:

date

classmethod nltime_validator(date)
Parameters:

date (Union[date, str])

Return type:

date

class geolib.models.dgeoflow.internal.Scenario(**data)

scenarios/scenario_x.json

Parameters:

data (Any)

Calculations: List[PersistableCalculation]
ContentVersion: Optional[str]
GeometryId: Optional[str]
Id: Optional[str]
Label: Optional[str]
Notes: Optional[str]
SoilLayersId: Optional[str]
Stages: List[PersistableStage]
add_calculation(label, notes, mesh_properties_id)
Parameters:
  • label (str)

  • notes (str)

  • mesh_properties_id (str)

Return type:

PersistableCalculation

add_stage(label, notes, boundaryconditions_collection_id)
Parameters:
  • label (str)

  • notes (str)

  • boundaryconditions_collection_id (str)

Return type:

PersistableStage

id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'Calculations': FieldInfo(annotation=List[PersistableCalculation], required=False, default=[]), 'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'GeometryId': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Label': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Notes': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'SoilLayersId': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'Stages': FieldInfo(annotation=List[PersistableStage], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

classmethod structure_name()
Return type:

str

class geolib.models.dgeoflow.internal.SoilCollection(**data)

soils.json

Parameters:

data (Any)

ContentVersion: Optional[str]
Soils: List[PersistableSoil]
add_soil(soil)

Add a new soil to the model.

Parameters:

soil (Soil) – a new soil

Return type:

PersistableSoil

Returns:

None

edit_persistable_soil(persistable_soil, kwargs)
Parameters:
edit_soil(code, **kwargs)

Update a soil.

Parameters:
  • code (str) – code of the soil.

  • kwargs (dict) – dictionary with argument names and values

Returns:

the edited soil

Return type:

PersistableSoil

edit_soil_by_name(name=None, **kwargs)

Update a soil, searching by name. This method will edit the first occurence of the name if it is used multiple times.

Parameters:
  • name (str) – name of the soil.

  • kwargs (dict) – dictionary with argument names and values

Returns:

the edited soil

Return type:

PersistableSoil

get_soil(code)

Get soil by the given code.

Parameters:

code (str) – code of the soil

Returns:

the soil object

Return type:

Soil

has_soilcode(code)

Checks if the soilcode is available in the current soil list.

Parameters:

code (str) – code of the soil

Returns:

True if found, False if not

Return type:

bool

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'Soils': FieldInfo(annotation=List[PersistableSoil], required=False, default=[PersistableSoil(Code='H_Aa_ht_new', Id='2', Name='Embankment new', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_Aa_ht_old', Id='3', Name='Embankment old', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_Rk_k_shallow', Id='4', Name='Clay, shallow', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_Rk_k_deep', Id='5', Name='Clay, deep', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_Rk_ko', Id='6', Name='Organic clay', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_vhv_v', Id='7', Name='Peat, shallow', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='H_vbv_v', Id='8', Name='Peat, deep', Notes='', HorizontalPermeability=0.01, VerticalPermeability=0.01), PersistableSoil(Code='Sand', Id='9', Name='Sand', Notes='', HorizontalPermeability=30.0, VerticalPermeability=30.0), PersistableSoil(Code='P_Rk_k&s', Id='10', Name='Clay with silt', Notes='', HorizontalPermeability=0.1, VerticalPermeability=0.1), PersistableSoil(Code='H_Ro_z&k', Id='11', Name='Sand with clay', Notes='', HorizontalPermeability=1.0, VerticalPermeability=1.0), PersistableSoil(Code='Sand, less permeable', Id='12', Name='Sand, less permeable', Notes='', HorizontalPermeability=15.0, VerticalPermeability=15.0), PersistableSoil(Code='Sand, permeable', Id='13', Name='Sand, permeable', Notes='', HorizontalPermeability=45.0, VerticalPermeability=45.0)])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

classmethod structure_name()
Return type:

str

class geolib.models.dgeoflow.internal.SoilLayerCollection(**data)

soillayers/soillayers_x.json

Parameters:

data (Any)

ContentVersion: Optional[str]
Id: Optional[str]
SoilLayers: List[PersistableSoilLayer]
add_soillayer(layer_id, soil_id)
Parameters:
  • layer_id (str)

  • soil_id (str)

Return type:

PersistableSoilLayer

get_ids(exclude_soil_layer_id)
Parameters:

exclude_soil_layer_id (Optional[int])

Return type:

Set[str]

id_validator()
Return type:

str

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'Id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'SoilLayers': FieldInfo(annotation=List[PersistableSoilLayer], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

classmethod structure_name()
Return type:

str

class geolib.models.dgeoflow.internal.SoilVisualisation(**data)
Parameters:

data (Any)

ContentVersion: Optional[str]
SoilVisualizations: Optional[List[Optional[PersistableSoilVisualization]]]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'extra': 'forbid', 'validate_assignment': True, 'validate_default': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'ContentVersion': FieldInfo(annotation=Union[str, NoneType], required=False, default='2'), 'SoilVisualizations': FieldInfo(annotation=Union[List[Union[PersistableSoilVisualization, NoneType]], NoneType], required=False, default=[])}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

classmethod structure_name()
Return type:

str

geolib.models.dgeoflow.internal.transform_id_to_str(value)
Return type:

str