The Offshore Renewable Energy sector continuously requires accurate data, particularly regarding significant wave height and wind speed, which are key variables necessary to characterize the operational and environmental conditions of offshore wind farms.
In this context, accurate data can support decision-making for a specific site to meet these conditions and, most importantly, facilitate continuous energy generation. In-situ platforms can help collect accurate data, but they are quite expensive and frequently experience malfunctions, leading to discontinuous observations.
In this scenario, satellites play an important role as they are capable of acquiring accurate data with discrete temporal resolution.
This projects aims to improve accuracy and reliability of satellite data for offshore wave and wind applications. The goal is to apply several bias correction techniques to calibrate satellite data against in-situ data and evaluate which technique performs best.
The processing WORKFLOW is tailored to the specific metadata and data structures of the COPERNICUS MARINE SERVICE. Consequently, full compatibility and reliable results are guaranteed only when using datasets sourced from this platform.
- Spatial and temporal matching to align satellite and in-situ data so that both data can be compared
- To reduce bias in a dataset (i.e., to apply a bias correction technique), the dataset must be split into two parts: a calibration dataset, used to determine the calibration factors, and a validation dataset, used to validate the technique
- In this project four BC techniques are presented: Delta method, Linear calibration, Full Distribution Mapping and Quantile Mapping
- Export the final datasets as .csv files for future use and make data analysis
Workflow diagram
graph TD
SAT["<b>π°οΈ SATELLITE ALTIMETRY</b><br/><i>Remote Sensing Dataset</i>"]
INS["<b>β MOORING DATA</b><br/><i>In-Situ Observations</i>"]
subgraph " "
direction TB
L1["<div style='font-size:16px'><b>PHASE 1: SPATIO-TEMPORAL ALIGNMENT</b></div>"]
subgraph "1a. Spatial Matching"
direction TB
SAT --> R{"Cross Radii"}
R --> R_OPT["β’ 30 km<br/>β’ 50 km<br/>β’ 70 km"]
R_OPT --> S_MET["<b>Spatial Methods</b><br/>β’ Minimum Distance<br/>β’ IDW Interpolation"]
end
subgraph "1b. Temporal Matching"
direction TB
INS --> W{"Time Window"}
W --> W_OPT["β’ 15 min<br/>β’ 30 min<br/>β’ 60 min"]
W_OPT --> T_MET["<b>Temporal Methods</b><br/>β’ Closest Observation<br/>β’ Mean Value Analysis"]
end
end
S_MET --> SYNC([<b>β‘ SPATIO-TEMPORAL MATCH-UP</b>])
T_MET --> SYNC
subgraph " "
direction TB
L3["<div style='font-size:16px'><b>PHASE 2: CALIBRATION & BIAS CORRECTION</b></div>"]
SYNC --> BC{"Correction techniques"}
BC --> BC1["<b>Full Dist. Mapping</b><br/>"]
BC --> BC2["<b>Quantile Mapping</b><br/>"]
BC --> BC3["<b>Linear Regression</b><br/>"]
BC --> BC4["<b>Delta Technique</b><br/>"]
end
BC1 & BC2 & BC3 & BC4 --> SAVE[(<b>SCENARIO REPOSITORY</b><br/><i>All Processed Cases</i>)]
SAVE --> CSV["<b>π CSV Output</b><br/><i>Calibrated Satellite Data</i><br/>one file per scenario"]
SAVE --> COMP{<b>PERFORMANCE ANALYSIS</b><br/>Statistical Benchmarking}
subgraph " "
direction TB
L4["<div style='font-size:16px'><b>PHASE 3: VALIDATION</b></div>"]
COMP --> METRICS["<b>Accuracy Metrics</b><br/>RMSE β’ BIAS β’ CC β’ SI"]
end
METRICS --> FINAL{{"<b>π OPTIMAL CONFIGURATION</b><br/>Most Accurate Methodology Identification"}}
style CSV fill:#d4edda,stroke:#28a745,color:#000
- Data analysis for future datasets
- Integrate the workflow to other applications
How to install dependencies
- Create a virtual environment
python -m venv venv- Activate it (Windows)
venv\Scripts\activate- Install requirements
pip install -r requirements.txtConfiguration parameters
data_extraction:
variable:
var_name: "VAVH"
field: "wave"
depth_val: 0 # value expressed in meters
dir_paths:
dir_input_mooring_nc: data/example/moorings_nc
dir_output_mooring_csv: data/example/moorings_csv
dir_input_sat_csv: data/example/satellite_csv
# ---------------------------------------------------------------------
spatio_temp_matching:
variable:
var_name: "VAVH"
cross_radius: 50
cross_time_val: 15
cross_time_unit: 'm' # m / h / s
dir_paths:
dir_output_mooring_csv: data/example/moorings_csv
dir_input_sat_csv: data/example/satellite_csv
# ---------------------------------------------------------------------
bias_correction_techniques:
technique: "linear" # "fdm" | "delta" | "qm" | "linear" | "all"
output_dir: ../data/example/outputdata| Parameter | Type | Description | Example |
|---|---|---|---|
var_name |
str | Variable name | VAVH |
depth_val |
int | Depth value which the variable value will be extracted by | 0 |
dir_input_mooring_nc |
Path | Directory path of the moorings files .nc | data/examples/mooring_nc |
dir_output_mooring_csv |
Path | Directory path of the moorings files .csv | data/examples/mooring_csv |
dir_input_sat_csv |
Path | Directory path of the satellite files data .csv | data/examples/satellite_csv |
| Parameter | Type | Description | Example |
|---|---|---|---|
var_name |
str | Variable name | VAVH |
cross_radius |
float | Cross-radius value for the spatial matching | 50 |
cross_time_val |
float | Cross-time value for the temporal matching | 30 |
cross_time_unit |
char | Cross-time unit for the temporal matching | m |
dir_output_mooring_csv |
Path | Directory path of the moorings files .csv | data/examples/mooring_nc |
dir_input_sat_csv |
Path | Directory path of the satellite files data .csv | data/examples/satellite_csv |
| Parameter | Type | Description | Example |
|---|---|---|---|
technique |
str | Technique used | delta |
output_dir |
Path | Technique used | data/example/outputdata |
- Depending on the selected technique, from two to five files are generated, containing satellite dataframes as .csv files
- (WIP) In addition to these files, another file is generated containing the calibration factors.
-
assets: Static files used by the project, such as images, icons, or pre-compiled binaries. -
config: Global configuration files and environment settings (e.g.,.yamlor.envtemplates). -
docs: Project documentation, API references, manuals, and architectural diagrams. -
legacy: Deprecated code or older versions maintained for backwards compatibility or reference. -
data: Local storage for datasets, raw input files, or temporary databases.example: Sample data files used for testing, demonstrations, or quick-start guides.
-
src: The primary source code for the application.calibration: Core algorithms for spatial and temporal matching, bias correction...config: Configuration modules to load the environment settings (e.g.,.yaml)io_data: Modules handling Input/Output operationsprocessing: Core algorithms to process data
