Improving irrigation in Denmark

    Starting 2019, the Danish Meteorological Institute (DMI) opened their data repositories, offering years’ worth of weather data to the public. DMI’s open API can be used to access the said data, allowing for a broad spectrum of weather-related applications, such as projects of modeling water balance in agricultural fields and the development of methods that optimize irrigation by increasing water efficiency.

    The announcement of the free data initiative was accompanied by a short video that explains the process:

    At the time of writing (late 2020), raw meteorological observations are available. However, DMI plans to expand the data availability according to the table below.

    More information on the free data process can be found at

    A primer on evapotranspiration

    Assuming surface runoff is minimal, water in topsoil is removed by three main processes: deep seepage, evaporation and transpiration. It is not easy to separately measure evaporation and transpiration, we therefore use the term evapotranspiration (ET) which refers to the combined result of these two processes.

    Evapotranspiration can be either “reference” or “actual” and is generally expressed in mm/day. Reference evapotranspiration, or ETo, is defined as the amount of water that is (or can be) removed from a reference surface with a hypothetical grass reference crop with an assumed crop height of 12 cm, a fixed surface resistance of 70 s/m and an albedo of 0,23. The reference surface closely resembles an extensive surface of green, well-watered grass of uniform height, actively growing and completely shading the ground. Actual evapotranspiration is often symbolized as ETc and is the property in which we’re most interested when it comes to modeling water balance in a biosystem or farm.

    It is clear from the above the ETo is basically a climatic parameter of a specific area. Knowing the geography and geomorphology of a land parcel, e.g. altitude, latitude and longitude, as well as weather information, it is possible to calculate ETo.

    ETc can be easily calculated by applying crop coefficients to ETo. Such crop coefficients can also be growth-stage-specific. One of the easiest and most basic ways to quickly estimate ETc when ETo is known is to use crop coefficients available in literature for a specific crop. Alternatively, remote sensing data can be used.

    Back to ETo, several attempts have been made to produce equations that require as few weather parameters as possible, since weather data is not always available for every location. These equations empower empirical constants instead, and in some cases produce good results.

    As an example, at one end, Makkink’s ETo equation only requires radiation and temperature data. On the other end, FAO’s standard Penman-Monteith’s  requires radiation, temperature, relative humidity, wind speed to name a few. Practically countless equations can be found in literature with intermediate data requirements. Assuming that the more weather data an equation requires the more accurate it can potentially be, DMI’s decision to open their archive could be a step towards a more dependable ETo approach.

    Automated ETo calculation

    My ETo calculator is a relatively simple program that can calculate reference evapotranspiration for any set of coordinates in Denmark, using weather data from DMI. The program reads study field location and ETo model selection parameters from a txt file, connects to DMI’s servers, obtains the most relevant weather data, and outputs ETo values in mm/day according to the selected equation.

    This program is written in Python and requires an active API key (unique string of characters), which can be obtained directly from DMI. For more information on how to obtain a DMI API key, go to

    The API key should be placed inside a .env text file as environment variable, next to the main program script files (*.py).

    Let’s assume that we wish to calculate daily ETo for date 22 August 2020 at site location (N 56.0077, E 9.1515) using Makkink’s ETo model. In this example, the parameters.txt file should be as follows:

    Year = 2020
    Month = 8
    Day = 22
    siteX = 56.1077
    siteY = 9.7235
    ETo model = makkink

    The location of the study site is shown in the map below:

    Location of the study site

    All we have to do is to run the program, which will return the amount of water that would have been removed from the soil in mm/day. The principle of operation is:

    1. Read the query parameters from parameters.txt
    2. Identify the weather parameters that are needed
    3. Locate the nearest weather stations that provide the required parameters
    4. Obtain weather data for the full day in question
    5. Perform statistical analysis, if necessary
    6. Calculate ETo

    Future development

    My intention is to improve the program by adding the following functionalities:

    • Apply distance cap to how far a weather station can be. After all, it wouldn’t make sense to use weather data from tens of km away!
    • Automatic ETo model selection based on data availability and reliability
    • Soil heat flux estimation using Sentinel data
    • Additional spectral data and vegetation indices translated to meaningful information for the end user (farmers)
    • Actual evapotranspiration and crop coefficient calculation
    • A nice GUI, likely using PySimpleGUI
    • Cadastral lookup, meaning that users will not need to input their coordinates; the system will run a CVR-based query and return GeoJSON spatial info.
    Categories: Agriculture Tags: Tags: , , ,