PhD Aljoscha Sander - Code Basis
| docs | ||
| notebooks | ||
| results | ||
| scripts | ||
| src | ||
| tests | ||
| .cookiecutter.json | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| CODE_OF_CONDUCT.md | ||
| coverage.json | ||
| LICENSE | ||
| Makefile | ||
| mkdocs.yml | ||
| package-lock.json | ||
| package.json | ||
| pyproject.toml | ||
| README.md | ||
| test_data.db | ||
| test_full_pipeline_results.png | ||
| test_geometry_results.png | ||
| uv.lock | ||
twbii - Offshore Wind Turbine Installation Instrumentation
twbii is a Python package for structural health monitoring and dynamic analysis of offshore wind turbine installations. It provides tools for processing sensor data, performing advanced signal analysis, and extracting structural parameters from vibration measurements collected during installation operations.
Features
- Data Management: DuckDB-based storage with multi-sensor support and reproducibility tracking
- Signal Processing: Butterworth filtering, double integration with drift correction, coordinate transformations
- Advanced Analysis: Stochastic methods, nonlinear dynamics, fatigue analysis, time-frequency analysis
- Environmental Correlation: ERA5 integration, wave-wind-structure correlation
Quick Start
# Clone and install
git clone https://github.com/flucto-gmbh/phdsan.git
cd phdsan
make install
# Run tests
uv run pytest
# Start Jupyter Lab
uv run jupyter lab
Basic Usage
from twbii.db.connection import create_database, DatabaseConnection
from twbii.processing.pipeline import process_tom_to_deflection
from twbii.analysis.fatigue.rainflow import analyze_rainflow_cycles
# Create database and process data
create_database("turbine_data.db")
with DatabaseConnection("turbine_data.db") as conn:
# Process TOM data to deflection
deflection_df = process_tom_to_deflection(
conn, turbine_id="20_BW27", location="helihoist-1",
start_time="2021-07-15 10:00", end_time="2021-07-15 12:00"
)
# Analyze fatigue cycles
cycles_df = analyze_rainflow_cycles(deflection_df, component="deflection")
Documentation
Full documentation is available at the documentation site or can be built locally:
uv run mkdocs serve
Package Structure
twbii/
├── src/twbii/ # Main package
│ ├── core/ # Config, types, exceptions
│ ├── db/ # DuckDB operations
│ ├── io/ # Data parsers
│ ├── processing/ # Signal processing
│ ├── analysis/ # Analysis algorithms
│ ├── ais/ # Vessel tracking
│ ├── windfarm/ # Windfarm matching
│ └── metocean/ # Environmental data
├── tests/ # Test suite
├── notebooks/ # Jupyter notebooks
└── docs/ # Documentation
Development
# Install with dev dependencies
make install
# Run tests
make test
# Code quality
uv run ruff check --fix
uv run ty check src/
# Build documentation
make docs
License
MIT License - See LICENSE for details.
Citation
@software{twbii2025,
title = {twbii: Offshore Wind Turbine Installation Instrumentation},
author = {Sander, Aljoscha},
year = {2025},
url = {https://github.com/flucto-gmbh/phdsan}
}
Project Status: Active development | Test coverage: 61% | Tests: 545 passing