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:
objectCarrying 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