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.