# 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