Source code for ctdfjorder.dataclasses.dataclasses
from dataclasses import dataclass
from collections import namedtuple
from typing import NamedTuple
from dataclasses import dataclass, field
import polars as pl
from typing import NamedTuple
[docs]
class SampleFeature(NamedTuple):
label: str
export_label: str
unit: str
pl_unit: pl.DataType()
[docs]
@dataclass
class Measurement:
"""
Represents metadata for a measurement.
Attributes
----------
label : str
The internal label used in CTDFjorder, if available.
unit : str | None
The unit of measurement, if available.
polars_type : pl.DataType
The Polars data type for this measurement.
export_label : str
The exported label for this measurement.
"""
label: str
unit: str | None
polars_type: pl.DataType()
export_label: str = field(init=False)
def __post_init__(self):
if self.unit:
self.export_label = f"{self.label}_({self.unit})"
else:
self.export_label = self.label
[docs]
@dataclass
class SamplingEvent:
"""
Represents metadata for a sampling event from the master sheet, including its coordinates, unique ID, and secchi depth.
Attributes
----------
latitude : float | None
The latitude of the site, if available.
longitude : float | None
The longitude of the site, if available.
unique_id : str | None
The unique identifier for the site, if available.
secchi_depth : float | None
The secchi depth measurement for the site, if available.
site_name : str | None
The name of the site, if available.
site_id : str | None
The short name the site, if available.
"""
latitude: float | None
longitude: float | None
unique_id: str | None
secchi_depth: float | None
site_name: str | None
site_id: str | None