ICON-DREAM data

foxes supports automated runs of the online available ICON-DREAM dataset model by the German Weather Service (Deutscher Wetterdienst, DWD). This hourly data, available from 2010 onwards, covers the North and Baltic Sea regions with heterogeneous flow data that is freely accessible.

In combination with the likewise freely available wind farm database that has been published in the EuroWindWakes project, it is possible to quickly set up and automate long-term wind farm computations in the North and Baltic Sea using foxes.

Preparations

Download and preparation of ICON-DREAM data files

foxes provides a command line tool called iconDream2foxes which downloads and pre-processes hourly ICON-DREAM files to a user specified location. The signature of the tool is as follows:

!iconDream2foxes --help
usage: iconDream2foxes [-h] [-e ENGINE] [-n N_CPUS] [-v VERBOSITY]
                       out_dir {northsea,baltic} min_year min_month max_year
                       max_month

positional arguments:
  out_dir               Output directory to save downloaded and processed
                        files
  {northsea,baltic}     The region, either 'northsea' or 'baltic'
  min_year              Minimal year (inclusive)
  min_month             Minimal month (inclusive)
  max_year              Maximal year (inclusive)
  max_month             Maximal month (inclusive)

options:
  -h, --help            show this help message and exit
  -e ENGINE, --engine ENGINE
                        The engine
  -n N_CPUS, --n_cpus N_CPUS
                        The number of cpus
  -v VERBOSITY, --verbosity VERBOSITY
                        The verbosity level, 0 = silent

An examplary call for a run in the baltic sea area from January 2024 till March 2024 would be

iconDream2foxes "~/icon_dream_data" baltic 2024 1 2024 3

This would then start (or resume) the parallel download and processing to the given output directory. The tool creates a file structure like

icon_dream_data/
├── grb
│   ├── P
│   │   ├── ICON-DREAM-EU_202401_P_hourly.grb
│   │   ├── ICON-DREAM-EU_202402_P_hourly.grb
│   │   └── ICON-DREAM-EU_202403_P_hourly.grb
│   ├── T
│   │   ├── ICON-DREAM-EU_202401_T_hourly.grb
│   │   ├── ICON-DREAM-EU_202402_T_hourly.grb
│   │   └── ICON-DREAM-EU_202403_T_hourly.grb
│   ├── TKE
│   │   ├── ICON-DREAM-EU_202401_TKE_hourly.grb
│   │   ├── ICON-DREAM-EU_202402_TKE_hourly.grb
│   │   └── ICON-DREAM-EU_202403_TKE_hourly.grb
│   ├── U
│   │   ├── ICON-DREAM-EU_202401_U_hourly.grb
│   │   ├── ICON-DREAM-EU_202402_U_hourly.grb
│   │   └── ICON-DREAM-EU_202403_U_hourly.grb
│   └── V
│       ├── ICON-DREAM-EU_202401_V_hourly.grb
│       ├── ICON-DREAM-EU_202402_V_hourly.grb
│       └── ICON-DREAM-EU_202403_V_hourly.grb
└── nc
    ├── baltic
    │   ├── ICON-DREAM-EU_202401_baltic_hourly.nc
    │   ├── ICON-DREAM-EU_202402_baltic_hourly.nc
    │   └── ICON-DREAM-EU_202403_baltic_hourly.nc
    ├── icon_grid_0027_R03B08_N02.nc
    └── icon_weights_baltic.nc

Download of the EuroWindWakes wind farm database

The EuroWindWakes (EWW) project published a database that containes all offshore wind farms in the north sea and the baltic sea, including the commisioning dates and all relevant power curves. These data can be used within foxes after downloading with the provided command-line tool eww2foxes. The latter has the signature

!eww2foxes -help
usage: eww2foxes [-h] [--url_db URL_DB] [--url_pc URL_PC] [-v VERBOSITY]
                 [-e ENGINE] [-n N_CPUS]
                 out_dir

positional arguments:
  out_dir               Output directory to save downloaded files

options:
  -h, --help            show this help message and exit
  --url_db URL_DB       URL of the EuroWindWakes database csv file
  --url_pc URL_PC       URL of the EuroWindWakes power curve zip file
  -v VERBOSITY, --verbosity VERBOSITY
                        The verbosity level, 0 = silent
  -e ENGINE, --engine ENGINE
                        The engine
  -n N_CPUS, --n_cpus N_CPUS
                        The number of cpus

An examle run using the default URLs would be

eww2foxes "~/eww"

which produces the following data at the specified location:

eww
├── eww_opendatabase.csv
└── power_curves
    ├── 5M.csv
    ├── 6.2M126.csv
    ├── 6.2M152.csv
    ├── AD_5-135.csv
    ├── B76_2000.csv
    ├── B82_2300.csv
    ├── Bard_5.0.csv
    ├── Haliade_150-6MW.csv
    ├── M5000-116.csv
    ├── N90_2300.csv
    ├── Readme.md
    ├── S7.0-171.csv
    ├── SG_11.0-200_DD.csv
    ├── SG_14.0-222_DD.csv
    ├── SG_8.0-167_DD.csv
    ├── SWT-2.3-82.csv
    ├── SWT-2.3-93.csv
    ├── SWT-3.6-107.csv
    ├── SWT-3.6-120.csv
    ├── SWT-4.0-120.csv
    ├── SWT-4.0-130.csv
    ├── SWT-6.0-120.csv
    ├── SWT-6.0-154.csv
    ├── SWT-7.0-154.csv
    ├── V112-3.0_MW_Offshore.csv
    ├── V112-3.3_MW_Offshore.csv
    ├── V112-3.45_MW_Offshore.csv
    ├── V164-10.0_MW.csv
    ├── V164-8.0_MW.csv
    ├── V164-8.4_MW.csv
    ├── V164-9.5_MW.csv
    ├── V174-9.5_MW.csv
    ├── V39-500kW.csv
    ├── V80-2.0_MW.csv
    └── V90-3.0_MW_Offshore.csv

The eww_opendatabase.csv file is a CSV file in which each row represents a wind turbine:

,wind_farm,oem_manufacturer,latitude,longitude,country,rated_power,rotor_diameter,hub_height,turbine_type,commissioning_date
0,Aberdeen Offshore Wind Farm,Vestas,57.2283,-2.0023,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
1,Aberdeen Offshore Wind Farm,Vestas,57.2159,-2.0112,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
2,Aberdeen Offshore Wind Farm,Vestas,57.216,-1.986,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
3,Aberdeen Offshore Wind Farm,Vestas,57.2236,-2.0127,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
4,Aberdeen Offshore Wind Farm,Vestas,57.24,-1.9759,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
5,Aberdeen Offshore Wind Farm,Vestas,57.2335,-1.9896,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
6,Aberdeen Offshore Wind Farm,Vestas,57.2301,-1.9742,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
7,Aberdeen Offshore Wind Farm,Vestas,57.208,-2.0106,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
8,Aberdeen Offshore Wind Farm,Vestas,57.2244,-1.988,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
9,Aberdeen Offshore Wind Farm,Vestas,57.2118,-1.9989,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
10,Aberdeen Offshore Wind Farm,Vestas,57.22,-2.0002,United Kingdom,8.4,164.0,108.5,V164-8.4 MW,2018-09
11,Albatros,Siemens Gamesa,54.4755,6.2334,Germany,7.0,154.0,105.0,SWT-7.0-154,2020-01
12,Albatros,Siemens Gamesa,54.4963,6.2162,Germany,7.0,154.0,105.0,SWT-7.0-154,2020-01
...

Notice that the turbine_type entries correspond to the data files in the above power_curves folder.

Wind farm simulations

The ambient states of the pre-processed ICON-DREAM data files are based on the ICONStates class:

states = foxes.input.states.ICONStates("~/icon_dream_data/nc/baltic/*.nc")

The foxes wind farm can now be polulated with turbines from the EWW data base by the add_from_eww input function:

mbook = foxes.ModelBook()

farm = foxes.WindFarm(
    input_is_lonlat=True,
    utm_zone="from_farm",
)

foxes.input.farm_layout.add_from_eww(
    farm,
    "~/eww/eww_opendatabase.csv",
    csv_dir="~/eww/power_curves",
    filter=[("wind_farm", ["EnBW Windpark Baltic 1"])],
    mbook=mbook,
)

Notice the appearance of the mbook object in the function, which is required for the automatized creation of turbine type models based on the EWW power curves. Also notice the input_is_lonlat parameter in the wind farm constructor, which is necessary whenever turbine locations are given in longitude/latitude coordinates, as it is the case here.

After this setup the foxes simulation can then be run as usual.