The SnowProfile class

class snowprofile.snowprofile.SnowProfile[source]

Bases: BaseModel, BaseMergeable

The base class for representing and handling a snow profile.

Data content

General information on snow profile and snow pit

id

A unique id to identify the snow profile (optional, str, only [a-zA-Z0-9-])

comment

General comment on the overall measurement (optional, str)

profile_comment

General comment on the snow profile (optional, str)

time

Time of observation (snowprofile.classes.Time object)

observer

Observer information (snowprofile.classes.Observer object)

location

Location information (snowprofile.classes.Location object)

weather

Weather observations (snowprofile.classes.Weather object)

surface_conditions

Surface conditions (penetration depths, surface features, wind surface features, etc.) (snowprofile.classes.SurfaceConditions object)

profile_depth

Depth of the profile (m)

profile_depth_std

Standard deviation of the profile depth around the snow pit (in case of multiple measurements, m)

profile_swe

Total SWE (mm or kg/m2)

profile_swe_std

Standard deviation of the total SWE (in case of mutilple measurements, mm or kg/m2)

new_snow_24_depth

Depth of the new snow from the past 24h (m)

new_snow_24_depth_std

Standard deviation of the depth of new snow (in case of multiple measurements, m)

new_snow_24_swe

SWE of the new snow from the past 24h (mm or kg/m2)

new_snow_24_swe_std

Standard deviation of the SWE of the new snow from the past 24h (in case of mutilple measurements, mm or kg/m2)

snow_transport
Presence and type of snow transport
  • No snow transport

  • Modified saltation: snow transport that remains confined close to the ground

  • Drifting snow: transport up to 6ft/2m

  • Blowing snow: transport above 6ft/2m

snow_transport_occurence_24: typing.Optional[float] = pydantic.Field(None, ge=0, le=100)

Profiles data

stratigraphy_profile

The stratigraphy profile (unique, snowprofile.profiles.Stratigraphy object)

temperature_profiles:

Temperature profiles (list of snowprofile.profiles.TemperatureProfile objects)

density_profiles:

Density profiles (list of snowprofile.profiles.DensityProfile objects)

lwc_profiles:

LWC profiles (list of snowprofile.profiles.LWCProfile objects)

ssa_profiles:

SSA profiles (list of snowprofile.profiles.SSAProfile or snowprofile.profiles.SSAPointProfile objects)

hardness_profiles:

Hardness profiles (list of snowprofile.profiles.HardnessProfile or snowprofile.profiles.HardnessPointProfile objects)

strength_profiles:

Strength profiles (list of snowprofile.profiles.StrengthProfile objects)

impurity_profiles:

Impurity profiles (list of snowprofile.profiles.ImpurityProfile objects)

stability_tests: List of stabilty tests. See Base classes for stability tests for details.

Other data

application

Information on the application or code that generated the profile (optional, str)

application_version

Version of the application or code that generated the profile (optional, str)

profiles_comment

Comment associated to profiles, for CAAML compatibility only, do not use (str)

additional_data and profile_additional_data

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

Fields:
field id: str | None = None
field comment: str | None = None
field profile_comment: str | None = None
field time: Time = Time(record_time=datetime.datetime(2026, 5, 5, 16, 3, 17, 734576), record_period=(None, None), report_time=None, last_edition_time=None, comment=None, additional_data=None)
field observer: Observer = Observer(source_id=None, source_name=None, source_website=None, source_comment=None, source_additional_data=None, contact_persons=[Person(id=None, name=None, website=None, comment=None, additional_data=None)])
field location: Location = Location(id=None, name='Unknown', point_type=None, aspect=None, elevation=None, slope=None, latitude=None, longitude=None, country=None, region=None, comment=None, additional_data=None)
field environment: Environment = Environment(solar_mask=None, solar_mask_method_of_measurement=None, solar_mask_uncertainty=None, solar_mask_quality=None, solar_mask_comment=None, bed_surface=None, bed_surface_comment=None, litter_thickness=None, ice_thickness=None, low_vegetation_height=None, LAI=None, forest_presence=None, forest_presence_comment=None, sky_view_factor=None, tree_height=None, solar_mask_additional_data=None)
field application: str | None = 'snowprofile'
field application_version: str | None = None
field profile_depth: float | None = None
Constraints:
  • ge = 0

field profile_depth_std: float | None = None
Constraints:
  • ge = 0

field profile_swe: float | None = None
Constraints:
  • ge = 0

field profile_swe_std: float | None = None
Constraints:
  • ge = 0

field new_snow_24_depth: float | None = None
Constraints:
  • ge = 0

field new_snow_24_depth_std: float | None = None
Constraints:
  • ge = 0

field new_snow_24_swe: float | None = None
Constraints:
  • ge = 0

field new_snow_24_swe_std: float | None = None
Constraints:
  • ge = 0

field snow_transport: Literal['No snow transport', 'Modified saltation', 'Drifting snow', 'Blowing snow'] | None = None
field snow_transport_occurence_24: float | None = None
Constraints:
  • ge = 0

  • le = 100

field weather: Weather = Weather(cloudiness=None, precipitation=None, air_temperature=None, air_humidity=None, wind_speed=None, wind_direction=None, air_temperature_measurement_height=None, wind_measurement_height=None, comment=None, additional_data=None)
field surface_conditions: SurfaceConditions = SurfaceConditions(surface_roughness=None, surface_wind_features=None, surface_melt_rain_features=None, surface_features_amplitude=None, surface_features_amplitude_min=None, surface_features_amplitude_max=None, surface_features_wavelength=None, surface_features_wavelength_min=None, surface_features_wavelength_max=None, surface_features_aspect=None, lap_presence=None, surface_temperature=None, surface_temperature_measurement_method=None, surface_albedo=None, surface_albedo_comment=None, spectral_albedo=None, penetration_ram=None, penetration_foot=None, penetration_ski=None, comment=None, additional_data=None)
field stratigraphy_profile: Stratigraphy | None = None
field temperature_profiles: List[TemperatureProfile] = []
field density_profiles: List[DensityProfile] = []
field lwc_profiles: List[LWCProfile] = []
field ssa_profiles: List[SSAProfile | SSAPointProfile] = []
field hardness_profiles: List[HardnessProfile | HardnessPointProfile] = []
field strength_profiles: List[StrengthProfile] = []
field impurity_profiles: List[ImpurityProfile] = []
field other_scalar_profiles: List[ScalarProfile] = []
field other_vectorial_profiles: List[VectorialProfile] = []
field stability_tests: List[CTStabilityTest | ECTStabilityTest | RBStabilityTest | PSTStabilityTest | ShearFrameStabilityTest] = []
field additional_data: AdditionalData | None = None
field profile_additional_data: AdditionalData | None = None
SnowProfile.merge(other) None

Function to merge with an object of the same type.

Raise warnings when inconsistent data are encountered.

Does not create a copy of the object.

Parameters:

other – Other object of the same type

Returns:

None (merge done in-place)