sec_interp.core.domain.spatial_meta module

Spatial Meta Data for 3D and 2D projections.

class sec_interp.core.domain.spatial_meta.SpatialMeta(hole_id: str | None = None, dist_along: float = 0.0, offset: float = 0.0, z: float = 0.0, x_3d: float | None = None, y_3d: float | None = None, x_proj: float | None = None, y_proj: float | None = None, norm_x: float | None = None, norm_y: float | None = None, attributes: dict[str, Any] | None = None)

Bases: object

Carrying spatial metadata for 3D/2D decoupling.

This DTO acts as a universal bridge between raw spatial data and various renderers (2D profiling or 3D engines), carrying coordinates, normalization vectors, and original attributes without layer dependencies.

hole_id

Unique identifier for the drillhole.

Type:

str | None

dist_along

Distance along the section line (station).

Type:

float

offset

Orthogonal distance from the section line.

Type:

float

z

Elevation or vertical coordinate.

Type:

float

x_3d

X coordinate in global 3D space.

Type:

float | None

y_3d

Y coordinate in global 3D space.

Type:

float | None

norm_x

Normalized X component of the orientation vector.

Type:

float | None

norm_y

Normalized Y component of the orientation vector.

Type:

float | None

attributes

Original feature attributes for contextual display.

Type:

dict[str, Any] | None

attributes: dict[str, Any] | None = None
dist_along: float = 0.0
hole_id: str | None = None
norm_x: float | None = None
norm_y: float | None = None
offset: float = 0.0
to_vec2_profile() tuple[float, float]

Convert spatial data to a 2D profile vector (Distance, Z).

to_vec3() tuple[float, float, float]

Convert spatial data to a 3D vector tuple (X, Y, Z).

x_3d: float | None = None
x_proj: float | None = None
y_3d: float | None = None
y_proj: float | None = None
z: float = 0.0