awesIO

YAML schemas for Airborne Wind Energy systems

awesIO is a standardized input/output specification for Airborne Wind Energy (AWE) systems, providing YAML schemas that define data formats for kites, tethers, ground stations, wind resources, and complete AWE system configurations.

Note

awesIO is inspired by and follows the architecture of windIO, the IEA Wind Task 37 ontology for traditional wind turbines.

What is awesIO?

awesIO provides a common language for describing AWE systems, enabling:

  • Interoperability between different AWE simulation tools and frameworks

  • Standardized data exchange for research collaboration

  • Validation of input files against formal schemas

  • Documentation of AWE system specifications

Key Features

  • YAML-based schemas - Human-readable, version-controllable specifications

  • Built-in validation - Automatic checking of input file correctness

  • Tool integration - Works with simulation frameworks like AWESPA

  • Comprehensive coverage - Schemas for all major AWE subsystems

AWE System Components

awesIO defines schemas for complete AWE systems and their operational parameters:

Component

Description

Schema Reference

Complete System

Wing, bridle, control system, tether, and ground station in one schema

AWE System Schema

Wind Resource

Wind profile clusters, probability distributions

Wind Resource Data Schema

Power Curves

Power output vs. wind speed relationships

Power Curves Data Schema

Operational Constraints

Operating limits, safety boundaries, terrain constraints

Operational Constraints Schema

Getting Started

Installation

Install using pip

Install the latest version from the main branch:

pip install git+https://github.com/awegroup/awesIO.git

Install from a specific branch, commit, or tag:

pip install git+https://github.com/awegroup/awesIO.git@branch-name
pip install git+https://github.com/awegroup/awesIO.git@commit-hash
pip install git+https://github.com/awegroup/awesIO.git@v0.1.0

Install using pixi

Install the latest version:

pixi add --pypi "awesio @ git+https://github.com/awegroup/awesIO.git"

Install from a specific branch, commit, or tag:

pixi add --pypi "awesio @ git+https://github.com/awegroup/awesIO.git@branch-name"
pixi add --pypi "awesio @ git+https://github.com/awegroup/awesIO.git@commit-hash"
pixi add --pypi "awesio @ git+https://github.com/awegroup/awesIO.git@v0.1.0"

For developers

Clone and install in development mode:

git clone https://github.com/awegroup/awesIO.git
cd awesIO
pip install -e .
pip install -r docs/requirements.txt

Or use pixi:

git clone https://github.com/awegroup/awesIO.git
cd awesIO
pixi run validate

Quick Example

Here’s a simple example of validating an AWE configuration:

from awesio.validator import validate

# Auto-detects schema from file metadata
validated_data = validate("path/to/config.yml")

# Access validated data
print(f"System name: {validated_data['metadata']['name']}")

Validation Script

Validate multiple files at once:

# Edit scripts/validate_yaml.py to set file paths
python scripts/validate_yaml.py

Schema Auto-Detection

Each YAML file must include a schema reference in its metadata:

metadata:
  name: My AWE System
  description: System description
  note: Additional notes
  awesIO_version: 0.1.0
  schema: system_schema.yml  # Auto-detected by validator

Table of Contents

Indices and Tables

Contributing

awesIO is developed by the AWE research community. Contributions are welcome!

License

awesIO is released under the MIT License. See the LICENSE file for details.