Skip to content

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:

from wetterdienst.core.timeseries.unit import UnitConverter

unit_converter = UnitConverter()
print(unit_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')}

All available units per each unit type:

from wetterdienst.core.timeseries.unit import UnitConverter

unit_converter = UnitConverter()
print(unit_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')]}

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:

from wetterdienst import Settings
from wetterdienst.provider.dwd.observation import DwdObservationRequest

settings = Settings(ts_unit_targets={"temperature": "degree_fahrenheit"})
request = DwdObservationRequest(
    parameters=[("daily", "kl", "temperature_air_mean_2m")],
    settings=settings
).filter_by_station_id(station_id="1048")
df = request.values.all().df
print(df)

shape: (27_627, 7) ┌────────────┬────────────┬─────────────────┬─────────────────────┬──────────────┬───────┬─────────┐ │ station_id ┆ resolution ┆ dataset ┆ parameter ┆ date ┆ value ┆ quality │ │ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │ │ str ┆ str ┆ str ┆ str ┆ datetime[μs, ┆ f64 ┆ f64 │ │ ┆ ┆ ┆ ┆ UTC] ┆ ┆ │ ╞════════════╪════════════╪═════════════════╪═════════════════════╪══════════════╪═══════╪═════════╡ │ 01048 ┆ daily ┆ climate_summary ┆ temperature_air_mea ┆ 1934-01-01 ┆ 32.9 ┆ 1.0 │ │ ┆ ┆ ┆ n_2m ┆ 00:00:00 UTC ┆ ┆ │ │ 01048 ┆ daily ┆ climate_summary ┆ temperature_air_mea ┆ 1934-01-02 ┆ 31.82 ┆ 1.0 │ │ ┆ ┆ ┆ n_2m ┆ 00:00:00 UTC ┆ ┆ │ │ 01048 ┆ daily ┆ climate_summary ┆ temperature_air_mea ┆ 1934-01-03 ┆ 30.74 ┆ 1.0 │ │ ┆ ┆ ┆ n_2m ┆ 00:00:00 UTC ┆ ┆ │ │ 01048 ┆ daily ┆ climate_summary ┆ temperature_air_mea ┆ 1934-01-04 ┆ 29.12 ┆ 1.0 │ │ ┆ ┆ ┆ n_2m ┆ 00:00:00 UTC ┆ ┆ │ │ 01048 ┆ daily ┆ climate_summary ┆ temperature_air_mea ┆ 1934-01-05 ┆ 33.62 ┆ 1.0 │ │ ┆ ┆ ┆ n_2m ┆ 00:00:00 UTC ┆ ┆ │ │ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │ │ 01048 ┆ daily ┆ climate_summary ┆ temperature_air_mea ┆ 2025-03-15 ┆ 37.4 ┆ 1.0 │ │ ┆ ┆ ┆ n_2m ┆ 00:00:00 UTC ┆ ┆ │ │ 01048 ┆ daily ┆ climate_summary ┆ temperature_air_mea ┆ 2025-03-16 ┆ 36.32 ┆ 1.0 │ │ ┆ ┆ ┆ n_2m ┆ 00:00:00 UTC ┆ ┆ │ │ 01048 ┆ daily ┆ climate_summary ┆ temperature_air_mea ┆ 2025-03-17 ┆ 35.6 ┆ 1.0 │ │ ┆ ┆ ┆ n_2m ┆ 00:00:00 UTC ┆ ┆ │ │ 01048 ┆ daily ┆ climate_summary ┆ temperature_air_mea ┆ 2025-03-18 ┆ 34.7 ┆ 1.0 │ │ ┆ ┆ ┆ n_2m ┆ 00:00:00 UTC ┆ ┆ │ │ 01048 ┆ daily ┆ climate_summary ┆ temperature_air_mea ┆ 2025-03-19 ┆ 41.54 ┆ 1.0 │ │ ┆ ┆ ┆ n_2m ┆ 00:00:00 UTC ┆ ┆ │ └────────────┴────────────┴─────────────────┴─────────────────────┴──────────────┴───────┴─────────┘