Skip to content

EduardSala/Thesis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

131 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ Earth observation satellites for offshore wave and wind applications

🌊 Project overview and context

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.

🎯 Objective

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.

βœ… What this project does

  • 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

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
Loading

πŸ“Š Future use

  • Data analysis for future datasets
  • Integrate the workflow to other applications

πŸ› οΈ Installation

How to install dependencies
  1. Create a virtual environment
python -m venv venv
  1. Activate it (Windows)
venv\Scripts\activate
  1. Install requirements
pip install -r requirements.txt

▢️ Usage

Configuration 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

πŸ” Data extraction

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

🌎 Spatio-temporal matching

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

πŸ“Š Bias correction techniques

Parameter Type Description Example
technique str Technique used delta
output_dir Path Technique used data/example/outputdata

⬇️ Expected output

  • 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.

Immagine 2026-02-17 163941

Typical outputs generated by the script


Immagine 2026-02-17 163908

Dataframe structure

πŸ“‚ Repository Structure

  • assets: Static files used by the project, such as images, icons, or pre-compiled binaries.

  • config: Global configuration files and environment settings (e.g., .yaml or .env templates).

  • 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 operations
    • processing: Core algorithms to process data

About

Earth observation satellites for offshore wave and wind applications

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages