AWESPA

Airborne Wind Energy System Performance Assessment Toolchain

A modular Python toolchain for assessing Airborne Wind Energy (AWE) system performance using wind profile clustering, power estimation models, and Annual Energy Production (AEP) calculation.

Getting Started

Overview

AWESPA provides a complete pipeline for AWE system performance analysis:

  • Wind Profile Clustering: Process ERA5 wind data to identify representative wind profiles

  • Power Estimation: Compute power curves using physics-based models (e.g., Luchsinger model)

  • AEP Calculation: Calculate Annual Energy Production, capacity factor, and cluster contributions

Project Structure

AWESPA/
├── config/                    # Configuration files (YAML)
│   ├── wind_clustering_config.yml
│   └── meridional_case_1/     # Case-specific configurations
├── data/                      # Input data (ERA5 wind data)
├── processed_data/            # Intermediate processed data
├── results/                   # Output results and plots
├── scripts/                   # Runnable analysis scripts
│   ├── run_wind_clustering.py
│   ├── run_luchsinger.py
│   ├── compare_power_models.py
│   └── meridional/            # Case study scripts
├── src/awespa/                # Main package source code
│   ├── wind/                  # Wind modeling components
│   ├── power/                 # Power estimation models
│   ├── pipeline/              # AEP calculation pipeline
│   └── vendor/                # External dependencies
├── tests/                     # Test suite
└── docs/                      # Documentation

Installation

Prerequisites

  • Python 3.8 or higher

  • pip package manager

Installation Instructions

  1. Clone the repository:

    git clone https://github.com/awegroup/AWESPA.git
    cd AWESPA
    
  2. Create a virtual environment:

    Linux or Mac:

    python3 -m venv venv
    

    Windows:

    python -m venv venv
    
  3. Activate the virtual environment:

    Linux or Mac:

    source venv/bin/activate
    

    Windows (PowerShell):

    .\venv\Scripts\Activate
    
  4. Install the package:

    For users:

    pip install .
    

    For developers:

    pip install -e .[dev]
    
  5. To deactivate the virtual environment:

    deactivate
    

Usage

Quick Start

import awespa

# Access main components
from awespa import WindProfileClusteringModel, PowerEstimationModel, calculate_aep

# Or access modules directly
from awespa.wind import WindProfileClusteringModel
from awespa.power import LuchsingerPowerModel
from awespa.pipeline import calculate_aep

Running Analysis Scripts

Wind Profile Clustering:

python scripts/run_wind_clustering.py

Power Curve Generation:

python scripts/run_luchsinger.py

Full AEP Analysis (Case Study):

python scripts/meridional/full_aep_analysis_case_1.py

Complete Analysis Pipeline Example

from pathlib import Path
from awespa.wind.clustering import WindProfileClusteringModel
from awespa.power.luchsinger_power import LuchsingerPowerModel
from awespa.pipeline.aep import calculate_aep

# 1. Wind Clustering
wind_model = WindProfileClusteringModel()
wind_model.load_from_yaml(Path("config/wind_clustering_config.yml"))
wind_model.cluster(data_path=Path("data"), output_path=Path("results/wind_resource.yml"))

# 2. Power Curve Generation
power_model = LuchsingerPowerModel()
power_model.load_configuration(
    system_path=Path("config/meridional_case_1/soft_kite_pumping_ground_gen_system.yml"),
    simulation_settings_path=Path("config/meridional_case_1/Lucsinger_simulation_settings_config.yml")
)
power_model.compute_power_curves(output_path=Path("results/power_curves.yml"), plot=True)

# 3. AEP Calculation
aep_results = calculate_aep(
    power_curve_path=Path("results/power_curves.yml"),
    wind_resource_path=Path("results/wind_resource.yml"),
    output_path=Path("results/aep_results.yml"),
    plot=True
)
print(f"Annual Energy Production: {aep_results['aep_kwh']:.2f} kWh")

Testing

Run tests using pytest:

pytest

Run with coverage:

pytest --cov=awespa

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

See the Developer Guide for detailed development guidelines.

Resources

License

MIT License

Copyright (c) 2024 Airborne Wind Energy Research Group, TU Delft

Indices and Tables