Base classes for property profiles

This module gathers the classes to handle profile data. These classes are designed to be used in the SnowProfile class.

All the class above have a data key that contains the profile data, stored as a pandas DataFrame.

Note: when the dataframe is modified, the dataframe needs to be reassignated to the data key so that the modifications are taken into account (a call to the data key returns a copy of the internal data stored in the dataclass).

class snowprofile.profiles.Stratigraphy[source]

Bases: BaseProfile

Measurements of the snowpack stratigraphy, according to the international snowpack classification, Fierz et al. 2009.

The data key contains:

  • top_height: Top height of the snow layer (m)

  • bottom_height: Bottom height of the snow layer (m)

  • thickness: Thickness of the snow layer (m)

  • grain_1: Primary snow grain shape

  • grain_2: Secondary snow grain shape

  • grain_size: Snow grain size (m)

  • grain_size_max: Maximum snow grain size (m)

  • hardness: Manual hand hardness (intermediates are allowed, details in Fierz et al., 2009):
    • F: Fist (1)

    • 4F : 4 Fingers (2)

    • 1F : 1 Finger (3)

    • P : Pencil (4)

    • K : Knife (5)

  • wetness: Manual snow wetness (intermediates are allowed, details in Fierz et al., 2009):
    • D : Dry (1)

    • M : Moist (2)

    • W : Wet (3)

    • V : Very wet (4)

    • S : Soaked (5)

  • formation_time: Date of the layer formation

  • formation_period_begin: Date of the begining of the layer formation

  • formation_period_end: Date of the end of the layer formation

  • loc: Layer of concern, possible values are ‘no’, ‘top’, ‘bottom’, ‘all’, ‘true’, ‘false’

  • comment: Comment on the layer

  • uncertainty: Quantitative uncertainty on the layer (see Describe data uncertainty and quality)

  • quality: Quality flag on the layer (see Describe data uncertainty and quality)

Fields:
field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.TemperatureProfile[source]

Bases: BaseProfile2

Vertical profile of temperature profile.

The data key contains:

Fields:
field method_of_measurement: Literal['Thermometer', 'IR thermometer', 'IR photography', 'other'] | None = None
field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.DensityProfile[source]

Bases: BaseProfile2

Vertical profile of density (kg/m3).

The data key contains:

  • top_height: Top height of the measurement (m)

  • bottom_height: Bottom height of the measurement (m)

  • thickness: Thickness (m)

  • density: Density value (kg/m3)

  • uncertainty: Quantitative uncertainty of the point measurement (same unit as data). See Describe data uncertainty and quality for details.

  • quality: Quality flag of the point measurement. See Describe data uncertainty and quality for details.

Fields:
field method_of_measurement: Literal['Snow Tube', 'Snow Cylinder', 'Snow Cutter', 'Snow wedge Cutter', 'other gravimetric measurement method', 'Denoth Probe', 'SnowPro Probe', 'Snow Fork', 'other dielectric permittivity method', 'Tomography', 'SMP', 'Neutron scattering probe', 'other'] | None = None

Measurement method

field probed_volume: float | None = None

Probe volume (m3)

field probed_diameter: float | None = None

Probe diameter (m)

field probed_length: float | None = None

Probe length (m)

field probed_thickness: float | None = None

Probe thickness (vertical dimension, m)

field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.LWCProfile[source]

Bases: BaseProfile2

Vertical profile of LWC (Liquid water content, % by volume).

The data key contains:

  • top_height: Top height of the measurement (m)

  • bottom_height: Bottom height of the measurement (m)

  • thickness: Thickness (m)

  • lwc: Liqud water content (% vol.)

  • uncertainty: Quantitative uncertainty of the measurement (same unit as data). See Describe data uncertainty and quality for details.

  • quality: Quality flag of the measurement. See Describe data uncertainty and quality for details.

Fields:
field method_of_measurement: Literal['Denoth Probe', 'Snow Fork', 'SnowPro Probe', 'WISe', 'other dielectric permittivity method', 'MRI', 'other'] | None = None

Measurement method

field probed_thickness: float | None = None

Probe thickness (vertical dimension of measurement, m)

field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.SSAProfile[source]

Bases: _SSAProfile

Vertical profile of SSA (Specific surface area, m2/kg), measured on layers (volume).

The data key contains:

  • top_height: Top height of the measurement (m)

  • bottom_height: Bottom height of the measurement (m)

  • thickness: Thickness (m)

  • ssa: SSA value (m2/kg)

  • uncertainty: Quantitative uncertainty of the measurement (same unit as data). See Describe data uncertainty and quality for details.

  • quality: Quality flag of the measurement. See Describe data uncertainty and quality for details.

Fields:
field type: Literal['SSAProfile'] = 'SSAProfile'
field method_of_measurement: Optional[Literal['Ice Cube', 'IRIS', 'InfraSnow', 'DUFFISSS-1310', 'DUFFISSS-1550', 'HISSGraS', 'ASSSAP', 'other IR integrating sphere', 'SWIRcam', 'SnowImager', 'other NIR method', 'Tomography', 'SMP', 'other']] = None

Measurement method

field probed_thickness: Optional[float] = None

Probe thickness (vertical dimension of measurement, m)

field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.SSAPointProfile[source]

Bases: _SSAProfile

Vertical profile of SSA (Specific Surface Area), measured at points (heights).

The data key contains:

Fields:
field type: Literal['SSAPointProfile'] = 'SSAPointProfile'
field method_of_measurement: Optional[Literal['Ice Cube', 'IRIS', 'InfraSnow', 'DUFFISSS-1310', 'DUFFISSS-1550', 'HISSGraS', 'ASSSAP', 'other IR integrating sphere', 'SWIRcam', 'SnowImager', 'other NIR method', 'Tomography', 'SMP', 'other']] = None

Measurement method

field probed_thickness: Optional[float] = None

Probe thickness (vertical dimension of measurement, m)

field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.HardnessProfile[source]

Bases: _HardnessProfile

Vertical profile of hardness profile, measured on snow layers (e.g. for RamSonde measurements).

The data key contains:

  • top_height: Top height of the measurement (m)

  • bottom_height: Bottom height of the measurement (m)

  • thickness: Thickness (m)

  • hardness (N): Hardness value (N)

  • weight_hammer (kg)

  • weight_tube (kg)

  • n_drops (-)

  • drop_height (m)

  • uncertainty: Quantitative uncertainty of the measurement (same unit as data). See Describe data uncertainty and quality for details.

  • quality: Quality flag of the measurement. See Describe data uncertainty and quality for details.

Fields:
field type: Literal['HardnessProfile'] = 'HardnessProfile'
field method_of_measurement: Optional[Literal['SnowMicroPen', 'Ram Sonde', 'Push-Pull Gauge', 'Avatech SP1', 'Avatech SP2', 'Scope propagation labs', 'other automatic penetrometer', 'other']] = None

Measurement method

field surface_of_indentation: Optional[float] = None

Indentation surface of the measurement tool (m2)

field penetration_speed: Optional[float] = None

Penetration speed (m/s)

field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.HardnessPointProfile[source]

Bases: _HardnessProfile

Vertical profile of hardness.

The data key contains:

Fields:
field type: Literal['HardnessPointProfile'] = 'HardnessPointProfile'
field method_of_measurement: Optional[Literal['SnowMicroPen', 'Ram Sonde', 'Push-Pull Gauge', 'Avatech SP1', 'Avatech SP2', 'Scope propagation labs', 'other automatic penetrometer', 'other']] = None

Measurement method

field surface_of_indentation: Optional[float] = None

Indentation surface of the measurement tool (m2)

field penetration_speed: Optional[float] = None

Penetration speed (m/s)

field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.StrengthProfile[source]

Bases: BaseProfile2

Vertical profile of strength (N).

The data key contains:

  • top_height: Top height of the measurement (m)

  • bottom_height: Bottom height of the measurement (m)

  • thickness: Thickness (m)

  • strength: Strength value (N)

  • fracture_character (optional):
    • SP: Sudden planar

    • SC: Sudden collapse

    • SDN: Sudden (both)

    • RP: Resistant planar

    • PC: Progressive compression

    • RES: Resistant (both)

    • BRK or B: Break

    • X: Other/Unknown

  • uncertainty: Quantitative uncertainty of the measurement (same unit as data). See Describe data uncertainty and quality for details.

  • quality: Quality flag of the measurement. See Describe data uncertainty and quality for details.

Fields:
field method_of_measurement: Literal['Shear Frame', 'other'] | None = None

Measurement method

field strength_type: Literal['compressive', 'tensile', 'shear', 'mixed', 'other'] | None = None

Shear direction: compressive, tensile, shear, other or mixed

field probed_area: float | None = None

Probed area (m2)

field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.ImpurityProfile[source]

Bases: BaseProfile2

Vertical profile of impurities (mass or volume fraction).

The data key contains:

  • top_height: Top height of the measurement (m)

  • bottom_height: Bottom height of the measurement (m)

  • thickness: Thickness (m)

  • mass_fraction: Mass fraction of impurity (%)

  • volume_fraction: Volume fration of impurity (%)

  • uncertainty: Quantitative uncertainty of the measurement (same unit as data). See Describe data uncertainty and quality for details.

  • quality: Quality flag of the measurement. See Describe data uncertainty and quality for details.

Fields:
field method_of_measurement: Literal['other'] | None = None

Measurement method

field impurity_type: Literal['Black Carbon', 'Dust', 'Isotopes', 'Other'] [Required]

Impurity type for the profile

field probed_volume: float | None = None

Probe volume (m3)

field probed_diameter: float | None = None

Probe volume (m)

field probed_length: float | None = None

Probe length (m)

field probed_thickness: float | None = None

Probe thickness (vertical dimension, m)

field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.ScalarProfile[source]

Bases: BaseProfile2

Other profile of scalar data (not covered by other Profile class).

The data key contains:

  • top_height: Top height of the measurement (m)

  • bottom_height: Bottom height of the measurement (m)

  • thickness: Thickness (m)

  • data: Data value

  • uncertainty: Quantitative uncertainty of the measurement (same unit as data). See Describe data uncertainty and quality for details.

  • quality: Quality flag of the measurement. See Describe data uncertainty and quality for details.

Fields:
field method_of_measurement: str [Required]

Measurement method description

field unit: str [Required]

Unit (SI unit please)

field parameter: str [Required]

Measured parameter

field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.

class snowprofile.profiles.VectorialProfile[source]

Bases: ScalarProfile

Other profile of vectorial data (data inherently multi-dimensional, with same unit and type).

The data key is a pandas.DataFrame with key data containing a python list of values.

Fields:
field rank: int [Required]

Length of the vector (>1, otherwise use OtherScalarProfile)

Constraints:
  • gt = 1

field method_of_measurement: str [Required]

Measurement method description

field unit: str [Required]

Unit (SI unit please)

field parameter: str [Required]

Measured parameter

field quality_of_measurement: Optional[Literal['Good', 'Uncertain', 'Low', 'Bad']] = None

Quality flag of the entire profile. See Describe data uncertainty and quality for details.

field uncertainty_of_measurement: Optional[float] = None

Quantitative uncertainty of the entire profile (same units as data). See Describe data uncertainty and quality for details.

Constraints:
  • gt = 0

field profile_nr: Optional[int] = None

Profile number (the lower is the higher priority)

Constraints:
  • ge = 0

field id: Optional[str] = None

Unique identifier of the profile [A-Za-z0-9-]

field name: Optional[str] = None

Name/short description of the profile

field related_profiles: List[str] = []

id of related profiles

field comment: Optional[str] = None

General comment associated to the profile

field record_time: Optional[datetime_with_tz] = None

Time at which the profile was done (python datetime object).

field record_period: datetime_tuple_with_tz = (None, None)

Time period during which the profile was done (tuple of two python datetime object representing the begin time and end time).

Constraints:
  • func = <function serialize_datetime_tuple at 0x7b4f470b6c20>

  • json_schema_input_type = PydanticUndefined

  • return_type = typing.Optional[typing.List[typing.Optional[str]]]

  • when_used = always

field profile_depth: Optional[float] = None

Total snow depth at the profile location, only if different from the general total snow depth reported in the metadata (m)

Constraints:
  • ge = 0

field profile_swe: Optional[float] = None

SWE at the profile location, only if specific measurement at the precise location of the profile (mm or kg/m2)

Constraints:
  • ge = 0

field additional_data: Optional[AdditionalData] = None

Field to store additional data for CAAML compatibility (customData), do not use.