geolib.models.dstability.analysis

Classes

DStabilityAnalysisMethod(**data)

DStabilityBishopAnalysisMethod(**data)

Generates slip plane constraints object for the Bishop method

DStabilityBishopBruteForceAnalysisMethod(**data)

Generates slip plane constraints object for the Bishop Brute Force method

DStabilityCircle(**data)

Generates a circle object

DStabilityGeneticSlipPlaneConstraints(**data)

Generates slip plane constraints object for the Spencer method

DStabilityObject(**data)

Base Class for objects in the analysis module.

DStabilitySearchArea(**data)

Generates a search area object

DStabilitySearchGrid(**data)

Generates a search grid object

DStabilitySlipPlaneConstraints(**data)

Generates a slip plane constraints object

DStabilitySpencerAnalysisMethod(**data)

Generates slip plane for the Spencer method

DStabilitySpencerGeneticAnalysisMethod(**data)

Generates the input for the genetic spencer algorithm

DStabilityUpliftVanAnalysisMethod(**data)

Generates the input for the uplift van analysis

DStabilityUpliftVanParticleSwarmAnalysisMethod(**data)

Generates the input for the uplift van analysis

class geolib.models.dstability.analysis.DStabilityAnalysisMethod(**data)
Parameters:

data (Any)

property analysis_type: AnalysisTypeEnum
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.

model_post_init(context, /)

This function is meant to behave like a BaseModel method to initialise private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Parameters:
  • self (BaseModel) – The BaseModel instance.

  • context (Any) – The context.

Return type:

None

class geolib.models.dstability.analysis.DStabilityBishopAnalysisMethod(**data)

Generates slip plane constraints object for the Bishop method

Parameters:
circle: DStabilityCircle
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]] = {'circle': FieldInfo(annotation=DStabilityCircle, 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.

model_post_init(context: Any, /) None

We need to both initialize private attributes and call the user-defined model_post_init method.

Parameters:
  • self (BaseModel)

  • context (Any)

Return type:

None

class geolib.models.dstability.analysis.DStabilityBishopBruteForceAnalysisMethod(**data)

Generates slip plane constraints object for the Bishop Brute Force method

Parameters:
  • extrapolate_search_space (bool) – Extrapolate the search space, defaults to True

  • search_grid (DStabilitySearchGrid)

  • slip_plane_constraints (DStabilitySlipPlaneConstraints)

  • bottom_tangent_line_z (float)

  • number_of_tangent_lines (int)

  • space_tangent_lines (float)

  • data (Any)

bottom_tangent_line_z: float
extrapolate_search_space: 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]] = {'bottom_tangent_line_z': FieldInfo(annotation=float, required=True), 'extrapolate_search_space': FieldInfo(annotation=bool, required=False, default=True), 'number_of_tangent_lines': FieldInfo(annotation=int, required=True, metadata=[Gt(gt=0)]), 'search_grid': FieldInfo(annotation=DStabilitySearchGrid, required=True), 'slip_plane_constraints': FieldInfo(annotation=DStabilitySlipPlaneConstraints, required=False, default=DStabilitySlipPlaneConstraints(is_size_constraints_enabled=False, is_zone_a_constraints_enabled=False, is_zone_b_constraints_enabled=False, minimum_slip_plane_depth=0.0, minimum_slip_plane_length=0.0, width_zone_a=0.0, width_zone_b=0.0, x_left_zone_a=0.0, x_left_zone_b=0.0)), 'space_tangent_lines': FieldInfo(annotation=float, required=True, metadata=[Gt(gt=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.

model_post_init(context: Any, /) None

We need to both initialize private attributes and call the user-defined model_post_init method.

Parameters:
  • self (BaseModel)

  • context (Any)

Return type:

None

number_of_tangent_lines: Annotated[int]
search_grid: DStabilitySearchGrid
slip_plane_constraints: DStabilitySlipPlaneConstraints
space_tangent_lines: Annotated[float]
class geolib.models.dstability.analysis.DStabilityCircle(**data)

Generates a circle object

Parameters:
  • center (Point) – Center of the circle.

  • radius (float) – Radius of the circle.

  • data (Any)

center: Point
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]] = {'center': FieldInfo(annotation=Point, required=True), 'radius': FieldInfo(annotation=float, required=True, metadata=[Gt(gt=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.

radius: Annotated[float]
class geolib.models.dstability.analysis.DStabilityGeneticSlipPlaneConstraints(**data)

Generates slip plane constraints object for the Spencer method

Parameters:
  • is_enabled (bool) – Height of the search area.

  • minimum_angle_between_slices (float) – Minimum angle between slices, defaults to 0.

  • minimum_thrust_line_percentage_inside_slices (float) – Minimum thrustline percentage inside slices, defaults to 0.

  • data (Any)

is_enabled: bool
minimum_angle_between_slices: float
minimum_thrust_line_percentage_inside_slices: 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]] = {'is_enabled': FieldInfo(annotation=bool, required=False, default=False), 'minimum_angle_between_slices': FieldInfo(annotation=float, required=False, default=0.0), 'minimum_thrust_line_percentage_inside_slices': 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.dstability.analysis.DStabilityObject(**data)

Base Class for objects in the analysis module.

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.

class geolib.models.dstability.analysis.DStabilitySearchArea(**data)

Generates a search area object

Parameters:
  • height (float) – Height of the search area.

  • top_left (Point) – Top left position of the search area

  • width (float) – Width of the search area

  • data (Any)

height: Annotated[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]] = {'height': FieldInfo(annotation=float, required=True, metadata=[Gt(gt=0)]), 'top_left': FieldInfo(annotation=Point, required=True), 'width': FieldInfo(annotation=float, required=True, metadata=[Gt(gt=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.

top_left: Point
width: Annotated[float]
class geolib.models.dstability.analysis.DStabilitySearchGrid(**data)

Generates a search grid object

Parameters:
  • bottom_left (Point) – Bottom left position of the search grid.

  • number_of_points_in_x (int) – Number of points to the right

  • number_of_points_in_z (int) – Number op points upwards

  • space (float) – Space between the points in x and z direction

  • data (Any)

bottom_left: Point
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]] = {'bottom_left': FieldInfo(annotation=Point, required=True), 'number_of_points_in_x': FieldInfo(annotation=int, required=True, metadata=[Gt(gt=0)]), 'number_of_points_in_z': FieldInfo(annotation=int, required=True, metadata=[Gt(gt=0)]), 'space': FieldInfo(annotation=float, required=True, metadata=[Gt(gt=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.

number_of_points_in_x: Annotated[int]
number_of_points_in_z: Annotated[int]
space: Annotated[float]
class geolib.models.dstability.analysis.DStabilitySlipPlaneConstraints(**data)

Generates a slip plane constraints object

Parameters:
  • is_size_constraints_enabled (bool) – enabel size constraints, defaults to False

  • is_zone_a_constraints_enabled (bool) – enable constraints for zone A, defaults to False

  • is_zone_b_constraints_enabled (bool) – enable constraints for zone B, defaults to False

  • minimum_slip_plane_depth (float) – minimum slip plane depth, defaults to 0.0

  • minimum_slip_plane_length (float) – minimum slip plane length, defaults to 0.0

  • width_zone_a (float) – width of zone A, defaults to 0.0

  • width_zone_b (float) – width of zone B, defaults to 0.0

  • x_left_zone_a (float) – x coordinate of left point of zone A, defaults to 0.0

  • x_left_zone_b (float) – x coordinate of left point of zone B, defaults to 0.0

  • data (Any)

is_size_constraints_enabled: bool
is_zone_a_constraints_enabled: bool
is_zone_b_constraints_enabled: bool
minimum_slip_plane_depth: float
minimum_slip_plane_length: 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]] = {'is_size_constraints_enabled': FieldInfo(annotation=bool, required=False, default=False), 'is_zone_a_constraints_enabled': FieldInfo(annotation=bool, required=False, default=False), 'is_zone_b_constraints_enabled': FieldInfo(annotation=bool, required=False, default=False), 'minimum_slip_plane_depth': FieldInfo(annotation=float, required=False, default=0.0), 'minimum_slip_plane_length': FieldInfo(annotation=float, required=False, default=0.0), 'width_zone_a': FieldInfo(annotation=float, required=False, default=0.0), 'width_zone_b': FieldInfo(annotation=float, required=False, default=0.0), 'x_left_zone_a': FieldInfo(annotation=float, required=False, default=0.0), 'x_left_zone_b': 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.

width_zone_a: float
width_zone_b: float
x_left_zone_a: float
x_left_zone_b: float
class geolib.models.dstability.analysis.DStabilitySpencerAnalysisMethod(**data)

Generates slip plane for the Spencer method

Parameters:
  • slipplane ([Point]) – The points of the slipplane

  • 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]] = {'slip_plane_constraints': FieldInfo(annotation=DStabilityGeneticSlipPlaneConstraints, required=False, default=DStabilityGeneticSlipPlaneConstraints(is_enabled=False, minimum_angle_between_slices=0.0, minimum_thrust_line_percentage_inside_slices=0.0)), 'slipplane': FieldInfo(annotation=List[Point], 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.

model_post_init(context: Any, /) None

We need to both initialize private attributes and call the user-defined model_post_init method.

Parameters:
  • self (BaseModel)

  • context (Any)

Return type:

None

slip_plane_constraints: DStabilityGeneticSlipPlaneConstraints
slipplane: List[Point]
class geolib.models.dstability.analysis.DStabilitySpencerGeneticAnalysisMethod(**data)

Generates the input for the genetic spencer algorithm

Parameters:
  • options_type (OptionsType) – DEFAULT or THOROUGH, defaults to DEFAULT

  • slip_plane_a (List[Point]) – upper slip plane boundary

  • slip_plane_b (List[Point]) – lower slip line boundary

  • slip_plane_constraints (DStabilityGeneticSlipPlaneConstraints) – constraints for the slip plane

  • 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]] = {'options_type': FieldInfo(annotation=OptionsTypeEnum, required=False, default=<OptionsTypeEnum.DEFAULT: 'Default'>), 'slip_plane_a': FieldInfo(annotation=List[Point], required=True), 'slip_plane_b': FieldInfo(annotation=List[Point], required=True), 'slip_plane_constraints': FieldInfo(annotation=DStabilityGeneticSlipPlaneConstraints, required=False, default=DStabilityGeneticSlipPlaneConstraints(is_enabled=False, minimum_angle_between_slices=0.0, minimum_thrust_line_percentage_inside_slices=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.

model_post_init(context: Any, /) None

We need to both initialize private attributes and call the user-defined model_post_init method.

Parameters:
  • self (BaseModel)

  • context (Any)

Return type:

None

options_type: OptionsTypeEnum
slip_plane_a: List[Point]
slip_plane_b: List[Point]
slip_plane_constraints: DStabilityGeneticSlipPlaneConstraints
class geolib.models.dstability.analysis.DStabilityUpliftVanAnalysisMethod(**data)

Generates the input for the uplift van analysis

Parameters:
  • first_circle (DStabilityCircle) – The location of the left circle for the slipplane.

  • second_circle_center (Point) – The center of the circle on the right side of the slipplane

  • data (Any)

first_circle: DStabilityCircle
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]] = {'first_circle': FieldInfo(annotation=DStabilityCircle, required=True), 'second_circle_center': FieldInfo(annotation=Point, 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.

model_post_init(context: Any, /) None

We need to both initialize private attributes and call the user-defined model_post_init method.

Parameters:
  • self (BaseModel)

  • context (Any)

Return type:

None

second_circle_center: Point
class geolib.models.dstability.analysis.DStabilityUpliftVanParticleSwarmAnalysisMethod(**data)

Generates the input for the uplift van analysis

Parameters:
  • options_type (OptionsType) – DEFAULT or THOROUGH, defaults to DEFAULT

  • search_area_a (DStabilitySearchArea) – The search area for the circle on the left side of the slip plane

  • search_area_b (DStabilitySearchArea) – The search area for the circle on the right side of the slip plane

  • slip_plane_constraints (DStabilitySlipPlaneConstraints) – Slip plane constraints

  • tangent_area_height (float) – height of the tangent lines search area

  • tangent_area_top_z (float) – top z coordinate of the tangent lines area

  • 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]] = {'options_type': FieldInfo(annotation=OptionsTypeEnum, required=False, default=<OptionsTypeEnum.DEFAULT: 'Default'>), 'search_area_a': FieldInfo(annotation=DStabilitySearchArea, required=True), 'search_area_b': FieldInfo(annotation=DStabilitySearchArea, required=True), 'slip_plane_constraints': FieldInfo(annotation=DStabilitySlipPlaneConstraints, required=False, default=DStabilitySlipPlaneConstraints(is_size_constraints_enabled=False, is_zone_a_constraints_enabled=False, is_zone_b_constraints_enabled=False, minimum_slip_plane_depth=0.0, minimum_slip_plane_length=0.0, width_zone_a=0.0, width_zone_b=0.0, x_left_zone_a=0.0, x_left_zone_b=0.0)), 'tangent_area_height': FieldInfo(annotation=float, required=True), 'tangent_area_top_z': 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.

model_post_init(context: Any, /) None

We need to both initialize private attributes and call the user-defined model_post_init method.

Parameters:
  • self (BaseModel)

  • context (Any)

Return type:

None

options_type: OptionsTypeEnum
search_area_a: DStabilitySearchArea
search_area_b: DStabilitySearchArea
slip_plane_constraints: DStabilitySlipPlaneConstraints
tangent_area_height: float
tangent_area_top_z: float