Units#
Overview#
Wetterdienst offers conversion of units based on the parameter type and a number of predefined units.
The default units per each unit type are shown below:
1from wetterdienst.model.unit import UnitConverter
2
3unit_converter = UnitConverter()
4unit_converter.targets
{'angle': Unit(name='degree', symbol='°'),
'concentration': Unit(name='milligram_per_liter', symbol='mg/l'),
'conductivity': Unit(name='siemens_per_meter', symbol='S/m'),
'dimensionless': Unit(name='dimensionless', symbol='-'),
'energy_per_area': Unit(name='joule_per_square_centimeter', symbol='J/cm²'),
'power_per_area': Unit(name='watt_per_square_centimeter', symbol='W/cm²'),
'length_short': Unit(name='centimeter', symbol='cm'),
'length_medium': Unit(name='meter', symbol='m'),
'length_long': Unit(name='kilometer', symbol='km'),
'magnetic_field_intensity': Unit(name='magnetic_field_strength', symbol='A/m'),
'fraction': Unit(name='decimal', symbol='-'),
'precipitation': Unit(name='millimeter', symbol='mm'),
'precipitation_intensity': Unit(name='millimeter_per_hour', symbol='mm/h'),
'pressure': Unit(name='hectopascal', symbol='hPa'),
'significant_weather': Unit(name='significant_weather', symbol='sign [0..95]'),
'speed': Unit(name='meter_per_second', symbol='m/s'),
'temperature': Unit(name='degree_celsius', symbol='°C'),
'time': Unit(name='second', symbol='s'),
'turbidity': Unit(name='nephelometric_turbidity', symbol='NTU'),
'volume_per_time': Unit(name='cubic_meter_per_second', symbol='m³/s'),
'wave_period': Unit(name='wave_period', symbol='1/s'),
'wind_scale': Unit(name='beaufort', symbol='bft'),
'degree_day': Unit(name='degree_celsius_day', symbol='°Cd')}
All available units per each unit type:
1from wetterdienst.model.unit import UnitConverter
2
3unit_converter = UnitConverter()
4unit_converter.units
{'angle': [Unit(name='degree', symbol='°'),
Unit(name='radian', symbol='rad'),
Unit(name='gradian', symbol='grad')],
'concentration': [Unit(name='milligram_per_liter', symbol='mg/l'),
Unit(name='gram_per_liter', symbol='g/l')],
'conductivity': [Unit(name='microsiemens_per_centimeter', symbol='µS/cm'),
Unit(name='microsiemens_per_meter', symbol='µS/m'),
Unit(name='siemens_per_centimeter', symbol='S/cm'),
Unit(name='siemens_per_meter', symbol='S/m')],
'dimensionless': [Unit(name='dimensionless', symbol='-')],
'energy_per_area': [Unit(name='joule_per_square_centimeter', symbol='J/cm²'),
Unit(name='joule_per_square_meter', symbol='J/m²'),
Unit(name='kilojoule_per_square_meter', symbol='kJ/m²')],
'fraction': [Unit(name='decimal', symbol='-'),
Unit(name='percent', symbol='%'),
Unit(name='one_eighth', symbol='1/8')],
'power_per_area': [Unit(name='watt_per_square_centimeter', symbol='W/cm²'),
Unit(name='watt_per_square_meter', symbol='W/m²'),
Unit(name='kilowatt_per_square_meter', symbol='kW/m²')],
'length_short': [Unit(name='millimeter', symbol='mm'),
Unit(name='centimeter', symbol='cm'),
Unit(name='meter', symbol='m'),
Unit(name='kilometer', symbol='km'),
Unit(name='mile', symbol='mi'),
Unit(name='nautical_mile', symbol='nmi')],
'length_medium': [Unit(name='millimeter', symbol='mm'),
Unit(name='centimeter', symbol='cm'),
Unit(name='meter', symbol='m'),
Unit(name='kilometer', symbol='km'),
Unit(name='mile', symbol='mi'),
Unit(name='nautical_mile', symbol='nmi')],
'length_long': [Unit(name='millimeter', symbol='mm'),
Unit(name='centimeter', symbol='cm'),
Unit(name='meter', symbol='m'),
Unit(name='kilometer', symbol='km'),
Unit(name='mile', symbol='mi'),
Unit(name='nautical_mile', symbol='nmi')],
'magnetic_field_intensity': [Unit(name='magnetic_field_strength', symbol='A/m')],
'precipitation': [Unit(name='millimeter', symbol='mm'),
Unit(name='liter_per_square_meter', symbol='l/m²')],
'precipitation_intensity': [Unit(name='millimeter_per_hour', symbol='mm/h'),
Unit(name='liter_per_square_meter_per_hour', symbol='l/m²/h')],
'pressure': [Unit(name='pascal', symbol='Pa'),
Unit(name='hectopascal', symbol='hPa'),
Unit(name='kilopascal', symbol='kPa')],
'significant_weather': [Unit(name='significant_weather', symbol='sign [0..95]')],
'speed': [Unit(name='meter_per_second', symbol='m/s'),
Unit(name='kilometer_per_hour', symbol='km/h'),
Unit(name='knots', symbol='kn'),
Unit(name='beaufort', symbol='bft')],
'temperature': [Unit(name='degree_celsius', symbol='°C'),
Unit(name='degree_kelvin', symbol='K'),
Unit(name='degree_fahrenheit', symbol='°F')],
'time': [Unit(name='second', symbol='s'),
Unit(name='minute', symbol='min'),
Unit(name='hour', symbol='h')],
'turbidity': [Unit(name='nephelometric_turbidity', symbol='NTU')],
'volume_per_time': [Unit(name='liter_per_second', symbol='l/s'),
Unit(name='cubic_meter_per_second', symbol='m³/s')],
'wave_period': [Unit(name='wave_period', symbol='1/s')],
'wind_scale': [Unit(name='beaufort', symbol='bft')],
'degree_day': [Unit(name='degree_celsius_day', symbol='°Cd'),
Unit(name='degree_kelvin_day', symbol='Kd'),
Unit(name='degree_fahrenheit_day', symbol='°Fd')]}
To set a different unit, you can use the ts_unit_targets setting in the Settings class. The following example
shows how to convert the temperature to Fahrenheit:
1from wetterdienst import Settings
2from wetterdienst.provider.dwd.observation import DwdObservationRequest
3
4settings = Settings(ts_unit_targets={"temperature": "degree_fahrenheit"})
5request = DwdObservationRequest(
6 parameters=[("daily", "kl", "temperature_air_mean_2m")],
7 settings=settings
8)
9stations = request.filter_by_station_id(station_id="1048")
10values = stations.values.all()
11df = values.df
12df
shape: (28_103, 7)
| station_id | resolution | dataset | parameter | date | value | quality |
|---|---|---|---|---|---|---|
| str | str | str | str | datetime[μs, UTC] | f64 | f64 |
| "01048" | "daily" | "climate_summary" | "temperature_air_mean_2m" | 1934-01-01 00:00:00 UTC | 32.9 | 1.0 |
| "01048" | "daily" | "climate_summary" | "temperature_air_mean_2m" | 1934-01-02 00:00:00 UTC | 31.82 | 1.0 |
| "01048" | "daily" | "climate_summary" | "temperature_air_mean_2m" | 1934-01-03 00:00:00 UTC | 30.74 | 1.0 |
| "01048" | "daily" | "climate_summary" | "temperature_air_mean_2m" | 1934-01-04 00:00:00 UTC | 29.12 | 1.0 |
| "01048" | "daily" | "climate_summary" | "temperature_air_mean_2m" | 1934-01-05 00:00:00 UTC | 33.62 | 1.0 |
| … | … | … | … | … | … | … |
| "01048" | "daily" | "climate_summary" | "temperature_air_mean_2m" | 2026-07-04 00:00:00 UTC | 60.62 | 1.0 |
| "01048" | "daily" | "climate_summary" | "temperature_air_mean_2m" | 2026-07-05 00:00:00 UTC | 64.76 | 1.0 |
| "01048" | "daily" | "climate_summary" | "temperature_air_mean_2m" | 2026-07-06 00:00:00 UTC | 63.68 | 1.0 |
| "01048" | "daily" | "climate_summary" | "temperature_air_mean_2m" | 2026-07-07 00:00:00 UTC | 69.26 | 1.0 |
| "01048" | "daily" | "climate_summary" | "temperature_air_mean_2m" | 2026-07-08 00:00:00 UTC | 64.22 | 1.0 |