By definition climate data is meteorological observation data, which are more than an hour old. DMI's climate data undergoes quality control by our climatologists, through which data is checked and erroneous data is removed. In addition to the quality controlled climate data, there are several additional parameters available, which are not quality controlled, but is useful to the agricultural sector.
DMI's climate data consists of data from Denmark (DNK) and from North Atlantic Islands Faroe Islands (FRO) and Greenland (GRL). There are, however, some differences between datasets and data availability for Denmark and Greenland/Faroe Islands, respectively. Furthermore there are some key differences in how quality control is performed for Denmark and Greenland/Faroe Islands. One of the differences is that for Denmark data gaps in time and location are patched by interpolating from nearby stations, whereas for Greenland erroneous data are removed and data gaps may occur.
The Climate Data service consists of different spatial resolutions as represented in the table below.
Data sets | Available for Denmark (from 2011) | Available for Greenland / Faroe Islands (from 1953) |
---|---|---|
stationValue | x | x |
10kmGridValue | x | - |
20kmGridValue | x | - |
municipalityValue | x | - |
countryValue | x | - |
stationValue is quality controlled meteorological observation data for Denmark and Greenland/Faroe Islands on station level and derived values such as daily, monthly and yearly values which have been calculated for all stations. In addition to the quality controlled data, there are several additional parameters available, which are not quality controlled, but are used by the agricultural sector. For an overview of which parameters are available in the different time resolutions, please see the parameter list. The stations available for the stationValue service can be seen here. stationValue is available from a stations start date until the termination date of the station.
There are some key differences between stationValue for Denmark and Greenland/Faroe Islands respectively, as shown below:
Denmark | Greenland/Faroe Islands | |
---|---|---|
Frequency of manual quality control | daily*, monthly, yearly | monthly |
Method |
Visual control by inspection of interpolated grid maps on which the station data plotted Visual inspection of station series time plots |
At the beginning of every month, all data from the previous month is manually checked from time series plots
|
Complete time series |
yes (interpolation algorithm is applied to fill in data gaps and replace erroneous data) |
no (erronuous data is removed, an interpolation algorithm is not applied on the Greenland/Faroe Islands data, due to the complicated circumstances of the large geographical area, complex topography and low station density. In certain cases erroneous data is replaced by a manually estimated value) |
* The manual daily QC entails that data usually is available on the next week day after observation time.
The climateData service also includes data in different spatial resolutions for Denmark. The data is based on station data from Danish stations, which is interpolated into a 1x1km grid net covering all of Denmark’s land area using a modified inverse-distance algorithm. The calculated values in each grid cell depends on the values of the nearest surrounding station found in 8 sectors. One value is calculated for each area (e.g. one municipality) from the grid cells covering the jurisdiction area combined with a weighting of how much of each grid cell is within the area. The stations are weighted in relation to the distance and climatological comparability (distance to sea) to the grid cell. Aggregated grid cells are used to compile datasets of different spatial resolution.
The different spatial resolutions are calculated/derived from stationValue data as it becomes available. The data is recalculated when the quality controlled stationValue data has been quality controlled by our climatologists. In some instances area data is based on additional parameters, which are not quality controlled. Please see the parameter list for an overview over which parameters are available and whether or not they are quality controlled by our climatologists.
Spatial resolutions are not available for Greenland, as an interpolation algorithm cannot be applied due to the complicated circumstances of the large geographical area, complex topography and low station density.
Spatial resolution | Description | |
10kmGridValue |
climate data in a 10 x 10km grid resolution covering danish land areas
For your convenience DMI has created an interactive web page map to inspect the grid here.
You can also see, how you can import grid identification layers into Qgis. 10 km grid cells are also available as pdf here. |
|
20kmGridValue |
climate data in a 20 x 20km grid resolution covering danish land areas
For your convenience DMI has created an interactive web page map to inspect the grid here.
You can also see, how you can import grid identification layers into Qgis. 20 km grid cells are also available as pdf here. |
|
municipalityValue | climate data for the Danish municipalities | |
countryValue | climate data for Denmark |
Read more about the spatial resolutions here.
A climatological standard normal is the average of a 30-year period of weather data calculated for every month of the year. A climatological standard normal contains information about the expected mean air temperature for January in Denmark and thus gives you an understanding of the weather as it “normally” is.
Climatological standard normals are widely used e.g. within climate monitoring where it serves as a reference to compare weather observations with. When climatological standard normals are compared to current weather observations they help you understand whether the mean air temperature is higher or lower than average.
Climatological standard normals are calculated on the basis of quality-controlled station data. In general, the calculations can be divided into four groups; averages, extreme values, accumulated values and event counts. For a detailed description of the climate normal calculation methods, please read WMO Report 1203: https://library.wmo.int/index.php?lvl=notice_display&id=20130%23.W2Fpwa6Wa71#.YROBzRT7RhF
Regarding Greenland
In certain cases, the data behind the climate normal is not sufficient due to missing data in the climate normal period. In such cases the full climate normal from e.g. 1991-2020 cannot be calculated. Instead of leaving out valuable data from stations that do not have the full data coverage from 1991-2020 shorter averages are calculated:
At least ten years of data has been prioritized, but in certain cases e.g. due to unique locations averages has been calculated for fewer years.
Technically, the calculation of a reference value is the same as with a climatological standard normal; however, the period it covers is shorter than the 30-year period that is characteristic for the climatological standard normal values. The reference values normally cover a period of 10 years, but the period can be both longer and shorter. A reference value thus contains an average of e.g. the mean temperature for each month during the year calculated on the basis of a number of year’s data for the month in question e.g. the average temperature for January in Denmark.
The reference values are used in different contexts. One example is to illustrate how the weather in the last decade was, compared to the actual weather observations.
10-year reference values will not have the same climatological weight as the 30 years climatological standard normals, since weather related coincidences could affect the calculations.
A reference value is calculated on the basis of quality-controlled station data. In general, the calculations can be divided into calculations of the average, extreme values, accumulated values and event counts.
For a more detailed description of the calculations of climatological standard normals, see the WMO-report 1203: https://library.wmo.int/index.php?lvl=notice_display&id=20130%23.W2Fpwa6Wa71#.YROBzRT7RhF
Meteorological observation data may contain various errors and data outages. When potential errors are identified they are investigated closely. For example by looking at raw observation data or including other data sources such as nearby stations or other parameters which can help to conclude whether the data must be excluded. Errors are typically due to malfunction of instruments caused by wear and tear or exposure to weather and on rare occasions vandalism.
Typical errors in the observations are unrealistically high or low outliers or small but consistent biases. Furthermore certain stations can be misleading for longer periods, if the station observes data deemed unrepresentative by DMI's climatologists.
stationValue for Denmark undergoes manual quality control on multiple levels:
Erroneous or missing data values are filled in by interpolated values derived from surrounding data.
The manual daily QC entails that data usually is available on the next week day after observation time.
Climate data from DMI’s open data is quality controlled daily, monthly and annually, and is usually ready in February. Unfortunately, the quality control status (qcstatus) does not indicate whether or not the data has undergone the yearly quality control. Release notes for the climate data service will be updated, when data has undergone the yearly quality control.
For waste management data packs (danish: deponipakker), DMI recommends to first download the data after it has undergone the annual quality control. Waste management data packs (danish: deponipakker) usually include wind direction, wind speed, mean temperature, precipitation, potentiel evaporation, and relative humidity.
stationValue for Greenland/Faroe Islands undergoes manual quality control to ensure the data quality:
Excluded values are not included in derived values. Derived values contain information on the amount of data behind the calculations.
Station values are available in the following time resolutions:
Station values are derived from meteorological observations and represent a parameters value in a specific time interval. For example, the mean temperature of the day November 3rd 2012 for a given station.
However, the exact time a certain time resolution begins and ends depends on the time zone, and how the time resolutions above are defined. Due to historical reasons the time resolutions can differ for the different parameters. Time resolutions also differ between stations values for Denmark and Greenland/Faroe Islands
The response properties from
and to
will tell you the exact time interval covered by the station value. If you want to query for station values in a specific time time interval, you will need to know how time resolutions and types of days work.
Hourly station values are always in UTC. This avoids any confusion that might arise if summer- and winter time was used. The API supports querying time ranges with time zones, so no special knowledge is needed for querying hourly values in a specific time range.
Daily station values operate with different definitions of what a day is. The different definitions can be seen below.
Type of day | Description |
---|---|
Local day | from/to midnight in local time with changes to summer and winter time |
Old meteorological day | a day which covers the hours from 6:00 am to 6:00 am next day in UTC |
Manual precipitation day | a day which covers the hours from 12:00 pm to 12:00 pm next day in UTC. It is only used by a few stations on Greenland, where precipitation data is manually measured. |
The exeption to the rule | only used by the parameter of maximum precipation in 30 minute intervals. This is defined as the local day, but also includes the 30 minutes before midnight, so the maximum precipation at midnight is included. |
The type of day used for a station value, depends on the parameter of a station value. You can see a list of which parameters use which type of day here.
Monthly station values are derived from daily station values. They begin when the first day of the month begins, and end when the last day of the month ends.
¶ Example:
The monthly station value for the parameter mean_temp in March 2018 for a Danish station would represent the time range: 1/3/2018 00:01 CET - 31/3/2018 24:00 CEST. Notice the change to summertime, which happens in Denmark on the last Sunday of March.
Even if a parameter has monthly station values but not daily values (as per the parameter table), the month still begins and ends at the time as the first and last day would have begun and ended if they existed.
Yearly station values are derived from daily station values. They begin when the first day in the year begins (January 1st), and end when the last day in the year ends (December 31st).
¶ Example
The yearly station value for the parameter mean_temp in 2018 for a Danish station would represent the time range: 1/1/2018 00:01 CET - 31/12/2018 24:00 CET.
Even if a parameter has yearly station values but not daily values (as per the parameter table), the year still begins and ends at the time the first and last day would have begun and ended if they existed.
Municipality values are derived from daily municipality values for Climatological reference values (see below). for the period 2011-2020
The specific timerange for the data collection is:
the time range: 1/1/2011 00:01 CET - 31/12/2020 24:00 CET.
and exist for danish municipalities only.
Note, that due to the statistical nature of the data and the very long time period, the period is just describes as
2011-01-01T00:00:00+00:00 to 2020-12-31T23:59:59+00:00
Station values are derived from daily station values for Climatological normal values (see below), which at present the two 30 year periods
1961 - 1990
1991 - 2020
and exist for stations on Greenland and the Faroe Islands only (GRL and FRO).
The specific timeranges for the data collections, in UTC, are:
01/01/1960 06:00 - 01/01/1991 06:00 for GRL and FRO
01/01/1991 06:00 - 01/01/2021 06:00 for GRL
01/01/1991 00:00 - 31/12/2020 24:00 for FRO
Note, that due to the statistical nature of the data and the very long time period, the period is just describes as
1961-01-01T00:00:00+00:00 to 1990-12-31T23:59:59+00:00
1991-01-01T00:00:00+00:00 to 2020-12-31T23:59:59+00:00
Some of the parameters can assume special values which are not to be taken literally, but are codes for special cases or conditions. The codes currently in the system are listed below.
The parameters acc_precip, max_precip_past24h, acc_precip_past12h, acc_precip_past24h and max_precip_30m return the amount of precipitation within the given period in mm with the exception of the codes listed below.
Code | Value |
---|---|
-0.1 | traces of precipitation, less than 0.1 kg/m2 |
The parameters mean_wind_dir & mean_wind_dir_min0 return the direction from which the wind blows in degrees, where north is given as 360.
Code | Value |
---|---|
0 | calm |
The parameter mean_cloud_cover is reported in oktas (eights) and is the fraction of the sky covered by cloud of any type or height above the ground.
Code | Value |
---|---|
0 | 0 oktas - no clouds |
10 | 1 okta or less, but not zero |
25 | 2 oktas |
40 | 3 oktas |
50 | 4 oktas |
60 | 5 oktas |
75 | 6 oktas |
90 | 7 oktas or more, but not 8 oktas |
100 | 8 oktas - full cloud cover with no breaks |
112 | Sky obscured by fog and/or other meteorological phenomena |
On this page you can find a table of parameters for which climate data values are available for download through the climate data service.
The calculation methods for the stationValue parameter values are described in a separate table.
The available parameters, the parameter and whether our climatologists perform quality control (QC) for the respective parameters.
Click here to see which resolutions data are available.
Name | Unit | Description | QC performed by DMI's climatologists |
---|---|---|---|
mean_temp | °C | Mean temperature | x |
mean_daily_max_temp | °C | Mean of daily maximum temperature | x |
max_temp_w_date | °C | Maximum temperature with associated date | x |
max_temp_12h | °C | Maximum temperature within the last 12 hours | x |
no_ice_days | no. of days | Number of ice days (maximum temperature < 0°C) | x |
no_summer_days | no. of days | Number of summer days (maximum temperature > 25°C) | x |
mean_daily_min_temp | °C | Mean of daily minimum temperature | x |
min_temp | °C | Minimum temperature | x |
min_temperature_12h | °C | Minimum temperature within 12 hours | x |
no_cold_days | no. of days | Number of cold days (minimum temperature < -10 °C) | x |
no_frost_days | no. of days | Number of days with frost (minimum temperature < 0°C) | x |
no_tropical_nights | no. of days | Number of tropical nights (minimum temperature > 20°C) | x |
acc_heating_degree_days_17 | no. of days | Accumulated heating degree days (17°C - mean_temp) (Danish: graddage - Danmark) | x |
acc_heating_degree_days_19 | no. of days | Accumulated heating degree days (19°C - mean_temp) (Danish: graddage - Grønland) | x |
mean_relative_hum | % | Mean relative humidity | x |
max_relative_hum | % | Maximum relative humidity | x |
min_relative_hum | % | Minimum relative humidity | x |
mean_vapour_pressure | hPa | Mean vapour pressure | x |
mean_absolute_humidity |
% |
Mean absolute humidity |
x |
mean_wind_speed | m/s | Mean wind speed | x |
max_wind_speed_10min | m/s | Maximum wind speed (10 minutes average) | x |
max_wind_speed_3sec | m/s | Maximum wind speed (3 seconds average) | x |
no_windy_days | no. of days | Number of windy days (mean wind speed >= 10.8m/s) | x |
no_stormy_days | no. of days | Number of stormy days (mean wind speed >= 20.8m/s) | x |
no_days_w_storm | no. of days | Number of days with storm (mean wind speed >=24.5m/s) | x |
no_days_w_hurricane | no. of days | Number of days with hurricane (mean wind speed >=28.5m/s) | x |
mean_wind_dir_min0 | degrees | Mean wind direction (10 minutes average) at minute 0 | x |
mean_wind_dir | degrees | Mean wind direction | x |
mean_pressure | hPa | Mean pressure | x |
max_pressure | hPa | Maximum pressure | x |
min_pressure | hPa | Minimum pressure | x |
bright_sunshine | minutes/hours | Minutes/hours of bright sunshine. For hourly time resolution the unit is minutes, for all other time resolutions the unit is hours. |
x |
mean_radiation | W/m^2 / MJ/m^2 | Mean radiation (spectral range: 305-2800nm) For hourly time resolution the unit is W/m^2, for all other time resolutions the unit is MJ/m^2. |
x |
acc_precip | mm | Accumulated precipitation | x |
max_precip_24h | mm | Maximum 24-hour precipitation with associated date | x |
acc_precip_past12h | mm | Accumulated precipitation during the past 12 hours | x |
no_days_acc_precip_01 | no. of days | Number of days with accumulated precipitation >= 0.1mm | x |
no_days_acc_precip_1 | no. of days | Number of days with accumulated precipitation >= 1mm | x |
no_days_acc_precip_10 | no. of days | Number of days with accumulated precipitation >= 10mm | x |
no_days_snowfall |
no. of days | Number of days with accumulated precipitation >= 0.1mm |
- |
acc_precip_past24h | mm | Accumulated precipitation during the past 24 hours | x |
max_precip_30m | mm | Maximum 30 minutes intensity in 24 hours with date | x |
no_days_snow_cover | no. of days | Number of days with snow cover (> 50% covered) | x |
no_days_fog |
no. of days | No. of days with fog (vis. < 1 km) |
- |
mean_cloud_cover | % | The fraction of the sky covered by cloud of any type or height above the ground (see also Codes) | x |
no_clear_days | no. of days | Number of clear days (mean cloud cover < 20%) | x |
no_cloudy_days | no. of days | Number of cloudy days (mean cloud cover > 80%) | x |
max_snow_depth | cm | Maximum snow depth with date and location | x |
snow_depth | cm | Snow depth | x |
snow_cover | % | Snow cover | x |
temp_grass * | °C | Air temperature measured at grass height (5-20 cm over terrain) | - |
temp_soil_10 * | °C | Temperature measured at a depth of 10 cm | - |
temp_soil_30 * | °C | Temperature measured at a depth of 30 cm | - |
leaf_moisture * | minutes | Leave moisture | - |
vapour_pressure_deficit_mean * | kPa | Vapour Pressure Deficit Mean | - |
drought_index | Drought index | x | |
pot_evaporation_makkink | Potential evaporation (Makkink) | x |
* The last 5 parameters in the table above are additional parameters, which are not quality controlled by DMI's climatologists. As a result, data can be erronous.
** Read more about the different types of days here.
*** 30 years reference values, currently for the periods 1961-1990 and 1991-2020
The available parameters, the parameter and whether our climatologists perform quality control (QC) for the respective parameters.
Click here to see which resolutions data are available.
Name | Unit | Description | QC performed by DMI's climatologists |
---|---|---|---|
mean_temp | °C | Mean temperature | x |
mean_daily_max_temp | °C | Mean of daily maximum temperature | x |
max_temp_w_date | °C | Maximum temperature with associated date | x |
no_ice_days | no. of days | Number of ice days (maximum temperature < 0°C) | x |
no_summer_days | no. of days | Number of summer days (maximum temperature > 25°C) | x |
mean_daily_min_temp | °C | Mean of daily minimum temperature | x |
min_temp | °C | Minimum temperature | x |
no_cold_days | no. of days | Number of cold days (minimum temperature < -10 °C) | x |
no_frost_days | no. of days | Number of days with frost (minimum temperature < 0°C) | x |
no_tropical_nights | no. of days | Number of tropical nights (minimum temperature > 20°C) | x |
no_lightning_strikes | no. of strikes | Number of lightning strikes | x |
acc_heating_degree_days_17 | no. of days | Accumulated heating degree days (17°C - mean_temp) | x |
mean_relative_hum | % | Mean relative humidity | x |
drought_index | Drought index | x | |
pot_evaporation_makkink | Potential evaporation (Makkink) | x | |
mean_wind_speed | m/s | Mean wind speed | x |
max_wind_speed_10min | m/s | Maximum wind speed (10 minutes average) | x |
max_wind_speed_3sec | m/s | Maximum wind speed (3 seconds average) | x |
mean_wind_dir | degrees | Mean wind direction | x |
mean_pressure | hPa | Mean pressure | x |
bright_sunshine | minutes/hours | Minutes/hours of bright sunshine. For hourly time resolution the unit is minutes, for all other time resolutions the unit is hours. |
x |
mean_radiation | W/m2 / MJ/m2 | Mean radiation (spectral range: 305-2800nm) For hourly time resolution the unit is W/m2, for all other time resolutions the unit is MJ/m2. |
x |
acc_precip | mm | Accumulated precipitation | x |
no_days_acc_precip_01 | no. of days | Number of days with accumulated precipitation >= 0.1mm | x |
no_days_acc_precip_1 | no. of days | Number of days with accumulated precipitation >= 1mm | x |
no_days_acc_precip_10 | no. of days | Number of days with accumulated precipitation >= 10mm | x |
max_precip_30m | mm | Maximum 30 minutes intensity in 24 hours | x |
mean_cloud_cover | % | Mean cloud cover | - |
snow_depth | cm | Snow depth | x |
temp_grass * | °C | Air temperature measured at grass height (5-20 cm over terrain) | - |
temp_soil_10 * | °C | Temperature measured at a depth of 10 cm | - |
temp_soil_30 * | °C | Temperature measured at a depth of 30 cm | - |
leaf_moisture * | minutes | Leave moisture (in danish: bladfugt) | - |
vapour_pressure_deficit_mean * | Vapour Pressure Deficit Mean (in danish: mætningsdeficit) | - |
* The last 5 parameters in the table above are additional parameters, which are not quality controlled by DMI's climatologists. As a result, data can be erronous.
** Read more about the different types of days here.
*** Decadal values from 2011-2020 only for municipalities
In the table below, the calculation method for stationValue parameter values is described for the available time resolutions. In case of differences between Denmark and Greenland, these differences can be seen in the table below.
Calculation Method for stationValue Parameters | ||||
---|---|---|---|---|
Name | Hourly | Daily | Monthly and yearly | metObs parameter data is based on |
mean_temp | derived directly (see column 'metObs parameter data is based on') | average of all hourly values within a day | average of all the underlying daily values |
DNK: temp_mean_past1h
GRL: temp_mean_past1h or alternatively temp_dry at minute 0 |
mean_daily_max_temp | - | - | average of all the underlying daily values of max_temp_w_date | - |
max_temp_w_date | derived directly (see column 'metObs parameter data is based on') |
DNK:
GRL: |
the highest of the underlying daily values
if more than one identical highest value is found, the date is found as follows: Jan-Jun: first found date |
temp_max_past 1h |
max_temp_12h | derived directly (see column 'metObs parameter data is based on') | - | - | temp_max_past12h |
no_ice_days | - | - | number of days where max_temp_w_date is below 0°C | - |
no_summer_days | - | - | number of days where max_temp_w_date is more than 25°C | - |
mean_daily_min_temp | - | - | average of the underlying daily values of min_temp | - |
min_temp | derived directly (see column 'metObs parameter data is based on') |
DNK:
GRL: |
the lowest of the underlying daily values if more than one identical lowest value is found, the date is found as follows: Jan-Jun: last found date |
temp_min_past1h |
min_temperture_12h | derived directly (see column 'metObs parameter data is based on') | - | - | temp_min_past12h |
no_cold_days | - | - | number of days where min_temp is less than -10°C | - |
no_frost_days | - | - | number of days where min_temp is less than 0°C | - |
no_tropical_nights | - | - | number of days where min_temp is more than 20°C | - |
acc_heating_degree_days_17 | - | calculated as follows: 17°C minus the daily value of mean_temp | sum of the underlying daily values | - |
acc_heating_degree_days_19 | - | calculated as follows: 19°C minus the daily value of mean_temp | sum of the underlying daily values | - |
mean_relative_hum |
DNK:
GRL: |
average of all hourly values within a day | average of the underlying daily values |
DNK: humidity
GRL: humidity_past1h or alternatively humidity at minute 0 |
max_relative_hum | - | the highest of all hourly values of mean_relative_hum within a day | the highest of all the daily values | - |
min_relative_hum | - | the lowest of all hourly values of mean_relative_hum within a day | the lowest of all the daily values | - |
mean_vapour_pressure | - | see description of calculation method below | average of the underlying daily values | - |
mean_wind_speed |
average of the 6 underlying values within the hour. For GRL: Value is not calculated correctly before 2024. |
average of all hourly values within a day | average of the underlying daily values | wind_speed |
max_wind_speed_10min | the highest of the 6 underlying values within the hour of the parameters in the column 'metObs parameter data is based on' | the highest of all hourly values within a day | the highest of all of the underlying daily values. If more than one identical highest values is found, the date is found as the latest date | wind_speed & wind_max_per10min_past1h |
max_wind_speed_3sec |
DNK:
GRL: |
the highest of all hourly values within a day | the highest of all the underlying daily values. If more than one identical highest values is found, the date is found as the latest date |
DNK:
GRL: |
no_windy_days | - | - | number of days where max_win_speed_10min is greater or equal to 10.8 m/s | - |
no_stormy_days | - | - | number of days where max_win_speed_10min is greater or equal to 20.8 m/s | - |
no_days_w_storm | - | - | number of days where max_win_speed_10min is greater or equal to 24.5 m/s | - |
no_days_w_hurricane | - | - | number of days where max_win_speed_10min is greater or equal to 28.5 m/s | - |
mean_wind_dir_min0 | derived directly (see column 'metObs parameter data is based on') | - | - | wind_dir at minute 0 |
mean_wind_dir |
derived directly (see column 'metObs parameter data is based on')
|
mean of components | mean of components |
DNK: wind_dir_past1h GRL: wind_dir_past1h or alternatively wind_dir at minute 0 |
mean_pressure |
DNK:
GRL: |
average of all hourly values within a day | average of the underlying daily values |
DNK: pressure_at_sea GRL: pressure_at_sea at minute 0 |
max_pressure | - | highest hourly value of mean_pressure within a day | the highest of all the underlying daily values | - |
min_pressure | - | lowest hourly value of mean_pressure within a day | the lowest of all the underlying daily values | - |
bright_sunshine | derived directly (see column 'metObs parameter data is based on') | sum of all underlying hourly values within a day, where minutes is converted to hours by dividing the sum of hourly values with 60 | sum of the underlying daily values | sun_last1h_glob |
mean_radiation | derived directly (see column 'metObs parameter data is based on') | sum of all underlying hourly values of bright_sunshine within a day. In order to convet to MJ/m^2, the sum is multiplied by (60*60/10^6) | sum of the underlying daily values | radia_glob_past1h |
acc_precip | derived directly (see column 'metObs parameter data is based on') | sum of all underlying hourly values within a day | sum of the underlying daily values | precip_past1h |
max_precip_24h | - | - | the highest of the underlying daily values of acc_prepic. If more than one identical highest values is found, the date is found as the latest date | |
acc_precip_past12h | derived directly (see column 'metObs parameter data is based on') | - | - | precip__past12h |
no_days_acc_precip_01 | - | - | number of days where acc_precip is greater or equal to 0.1 mm | |
no_days_acc_precip_1 | - | - | number of days where acc_precip is greater or equal to 1 mm | |
no_days_acc_precip_10 | - | - | number of days where acc_precip is greater or equal to 10 mm | |
acc_precip_past24h | derived directly (see column 'metObs parameter data is based on') | - | - | precip_past24h |
max_precip_30m | - | is found by inspecting the period from 23:31 local time to the previous day to 24.00 local time of the respective day | the highest of the underlying daily values of acc_prepic. If more than one identical highest value is found, the date is found as the latest date | |
no_days_snow_cover | - | - | number of days where snow_depth is greater than 0 and snow_cover is greater than 50 | |
mean_cloud_cover | derived directly (see column 'metObs parameter data is based on') | average of the underlying hourly values provided that there has to be at least 12 hourly values and there are not more than 2 hourly values missing in a row | average of the underlying daily values | cloud_cover at minute 0 |
no_clear_days | - |
= 1 if mean_cloud_cover is less than 20% = 0 if mean_cloud_cover is greater than or equal to 20% |
number of days where mean_cloud_cover is less than 20% | |
no_cloudy_days | - |
=1 if mean_cloud_cover is greater than 80%, = 0 if mean_cloud_cover is less than or equal to 80% |
number of days where mean_cloud_cover is greater than 80% | |
max_snow_depth | - | - | the highest of the underlying daily values of snow_depth. If more than one identical highest values are found, the date is found as the latest date | |
snow_depth | - | derived directly (see column 'metObs parameter data is based on'), but code -1 is changed to 0,5 cm and code -2 is changed to 0 cm | - | snow_depth_man |
snow_cover | - | derived directly (see column 'metObs parameter data is based on'), but codes are changed to % | - | snow_cover_man |
temp_grass | derived directly (see column 'metObs parameter data is based on') | average of all hourly values within a day | - | temp_grass_mean_past1h |
temp_soil_10 | derived directly (see column 'metObs parameter data is based on') | average of all hourly values within a day | - | temp_soil_mean_past1h |
temp_soil_30 | derived directly | average of all hourly values within a day | - | N/A |
leave_moisture | derived directly (see column 'metObs parameter data is based on') | average of all hourly values within a day | - | leav_hum_dur_past1h |
vapour_pressure_deficit_mean | see description of calculation method below | average of all hourly values within a day | - | temp_mean_past1h and humidity |
The mean_vapour_pressure is calculated from the hourly values of mean_temp and mean_relative_hum. For every of the days hourly value, where temperature (tt) and relative humidity (rh) is available, the mean_vapour_pressure (vp) is calculated using the following formula:
If tt = 0, then vp = 6.107 * rh / 100
If tt < 0, then
a = 9.5
b = 265.5
q = a * tt / (tt + b)
vp = 6.107 *10q * rh / 100
If tt > 0, then
a = 7.5
b = 237.3
q = a * tt / (tt + b)
vp = 6.107 *10q * rh / 100
The daily value of mean_vapour_pressure is calculated as a mean of the hourly values, which could be calculated within the day.
max_wind_speed_3sec is found in a 24 hour time interval from 00 to 24 local. In this interval the observation at 00:00 is not included in the calculation, but the observation at 24:00 is included in the calculation.
Time period | 24 hours ( 00:00-24:00) local time |
Examination period | 24 hours ( 00:00-24:00) local time |
Condition | In order for at station to be included in the calculation of max_wind_speed_3sec, the number of 10 minute wind speeds (wind_speed) in the time period must be greater than 140 |
Output | For every grid cell the higest max:_wind_speed_3sec |
Calculation |
The calculation is based on station values, so that the highest 3-second wind is found for each station. There are several parameters which determine the 3-second wind speed, where the following priority is used: If none of the above parameters with first or second priority are available for the station in the desired time interval, the max_wind_speed_3sec is estimated from the highest wind_speed the time interval. |
The vapour_pressure_deficit_mean is calculated from the hourly values of mean_temp and mean_relative_hum. The daily value of mean_vapour_pressure is calculated as a mean of the hourly values, which could be calculated within the day.
If mean_temp > 0 then,
SatVapPres = 0.611 * Math.exp (17.27 * mean_temp / (mean_temp + 237.3))
If mean_temp <= 0 then,
SatVapPres = 0.611 * Math.exp(21.87 * mean_temp / (mean_temp + 265.5))
VPD = SatVapPres * (100 – mean_relative_hum) / 100
The climateData service includes data in different spatial resolutions for Denmark.
Spatial resolution | Description |
10kmGridValue | climate data in a 10 x 10km grid resolution covering danish land areas |
20kmGridValue | climate data in a 20 x 20km grid resolution covering danish land areas |
municipalityValue | climate data for the Danish municipalities |
countryValue | climate data for Denmark |
The data is based on station data from Danish stations, which is interpolated into a 1x1km grid net covering all of Denmark’s land area using a modified inverse-distance algorithm. The grid is based on Det Danske Kvadratnet's 1x1km grid with the grid name DKN_1km_ETRS89. The calculated values in each grid cell depends on the values of the nearest surrounding station found in 8 sectors. One value is calculated for each area (e.g. one municipality) from the grid cells covering the jurisdiction area combined with a weighting of how much of each grid cell is within the area. The stations are weighted in relation to the distance and climatological comparability (distance to sea) to the grid cell. Aggregated grid cells are used to compile datasets of different spatial resolution.
The different spatial resolutions are calculated/derived from stationValue data as it becomes available. The data is recalculated when the quality controlled stationValue data has been quality controlled by our climatologists. In some instances area data is based on additional parameters, which are not quality controlled. Please see the parameter list for an overview over which parameters are available and whether or not they are quality controlled by our climatologists.
Spatial resolutions are not available for Greenland, as an interpolation algorithm cannot be applied due to the complicated circumstances of the large geographical area, complex topography and low station density.
The stationValue dataset is used to create a 1x1 km grid net covering all of Denmark’s land area. The grid net is calculated from a modified inverse-distance algorithm and is based on all stations that DMI has at its disposal, including both DMI and third party stations. In order to understand the algorithm one must consider the local Danish climate. The overall factor that generally spoken has the largest influence on the local climate in Denmark is the distance to the sea. The uneven station coverage of Denmark's area represents a challenge if using a classic non-weighted interpolation. Areas with bad coverage are in risk of being affected by stations located in an area that climatologically seen is not representative for the point of interpolation. Therefore a modified inverse-distance algorithm is applied, where the value in each grid cell depends on the values of the nearest surrounding stations found in 8 sectors. The stations are weighted in relation to the distance and climatological comparability (distance to sea) to the grid.
The coast-/inland climate distribution follows figure 1 below:
Each grid cell value is calculated from weighted station values. A grid cell is not represented by every station equally. Station selection is needed since some stations may be located in a different climate zone or add undesired effects to the grid cell value. The algorithm selects the nearest stations in 8 sectors.
In the following, the station selection method is illustrated for the case shown in Figure 2. The green triangles illustrate stations and the red square is the grid cell to be calculated. The algorithm creates four lines passing through the center of the grid cell, creating eight sectors (ENE, NNE, NNW, WNW, WSW, SSW, SSE, ESE) and finds the nearest station in each sector - aquamarine triangles in Figure 2 right panel.
The calculated values in each grid cell depend on the values of the nearest surrounding station found in 8 sectors. The stations are weighted in relation to the distance and climatological comparability (distance to sea) to the grid cell. Interpolated values will never exceed the values of the original data the grid network was calculated from. This ensures that "false" records will never appear from the interpolation. This is done for all 1x1km cells covering Denmark’s land area. The 1x1km grid is the calculation basis for all of the spatial resolutions described below. The observation network is embedded into this dataset, i.e. the interpolation algorithm is made so that the 1x1 km grid cell that geographically contains a station, always will have the observed value. The 1x1 km grid net serves as the basis of calculation for the other spatial resolutions.
The 1x1km grid is then used to calculate a single value for each spatial resolution (e.g. one municipality) from the grid cells covering the specified area combined with a weighting of how much of each grid cell is within the area. Below is shown an example of the 1x1 km grid covering Holbæk Municipality (Holbæk Kommune):
Aggregated 1x1km grid cells are used to compile datasets of different spatial resolution:
Spatial resolution | Description | |
10kmGridValue |
climate data in a 10 x 10km grid resolution covering Danish land areas. This matches the DKN_10km_ETRS89 grid from Det Danske Kvadratnet. For your convenience DMI has created an interactive web page map to inspect the grid here. You can also see, how you can import grid identification layers into Qgis. |
|
20kmGridValue |
climate data in a 20 x 20km grid resolution covering Danish land areas. This grid resolution follows the same conventions as the other grids in Det Danske Kvadratnet, but this specific resolution does not exist. For your convenience DMI has created an interactive web page map to inspect the grid here. You can also see, how you can import grid identification layers into Qgis. |
|
municipalityValue | climate data for the Danish municipalities | |
countryValue | climate data for Denmark |
For a detailed description of the interpolation, see DMI Technical Report 10-13 (the report is in Danish).
Data is made available through DMI’s open data service as soon as it has been calculated, but not yet quality controlled. When the stationValue data has been quality controlled by our climatologists, the data is recalculated and will be updated in the service with any changes to data. In some instances, the data is based on additional parameters, which are not quality controlled. These parameters are agricultural parameters.
Climate data is not available for Greenland in different spatial resolutions, as an interpolation algorithm cannot be applied due to the complicated circumstances of the large geographical area, complex topography and low station density.
It is possible to get the station list through the climateData service by calling the station endpoint. See API documentation for endpoint.
The station list represents both present and historical data about a station - see Station Lists Explained.
List is also available here.
Click here for page displaying the historical availability for each parameter at each station. The noted year is the first year with observations for the given parameter and station.
The DMI has five types of stations for which measure meteorological parameters. A description of the different station types can be seen below.
Station type | Description | Available for Denmark | Available for Greenland |
---|---|---|---|
Synop | Weather stations that register a wide variety of meteorological parameters, e.g. temperature, wind, pressure, and precipitation. | X | X |
GIWS | Weather stations that register a wide variety of meteorological parameters, e.g. temperature, wind, and pressure. | X | |
Pluvio | Precipitation stations register data concerning precipitation. Precipitation is also measured by some synop-stations. | X | |
Manual precipitation |
In Greenland the precipitation is at some locations measured manually once a day. Once a month DMI receives the data, whereafter the data will be available through our API-services. There can be some instances where precipitation has not been measured daily for different reasons. There can therefore be instances, where a measurement can cover the accumulated precipitation of more than one day. It is possible to see if a measurement covers more than one day's accumulated precipitation, if there are not any data for the previous day(s). |
X | |
Manual snow | In Denmark the snow depth and cover is measured manually once a day. | X |