Introduction
The Wind Energy Toolbox (or wetb
, pronounce as wee-tee-bee) is a collection
of Python scripts that facilitate working with (potentially a lot) of HAWC2,
HAWCStab2, FAST or other text input based simulation tools.
Note that this toolbox is very much a WIP (work in progress). For example, some of the functions in the prepost module have a similar functions in Hawc2io. These different implementations will be merged in due time.
How to create HAWC2 DLB's and run them on a cluster
The process of how to generated, run and post-process a design load basis (DLB) of HAWC2 simulations on a DTU Wind Energy cluster is outlined in more detail in the documentation:
- Auto-generation of Design Load Cases
- House rules mimer/hawc2sim and HAWC2 folder structure
- Generate DLB spreadsheets
- How to use the Statistics DataFrame
You can also use the Pdap for post-processing, which includes a MS Word report generator based on a full DLB, a GUI for easy plotting of HAWC2 result files, and a Python scripting interface:
Works with Python 2 and Python 3
This module is tested for Python 2 and 3 compatibility, and works on both Windows and Linux. Testing for Mac is on the way, but in theory it should work. Python 2 and 3 compatibility is achieved with a single code base with the help of the Python module future.
Switching to Python 3 is in general a very good idea especially since Python 3.5 was released. Some even dare to say it is like eating your vegetables. So if you are still on Python 2, we would recommend you to give Python 3 a try!
You can automatically convert your code from Python 2 to 3 using the 2to3 utility which is included in Python 2.7 by default. You can also write code that is compatible with both 2 and 3 at the same time (you can find additional resources in issue 1).
Dependencies
-
xlrd and xlwt from python-excel
-
h5py
-
pytest, pytest-cov
-
six, future
Installation
Detailed installation instructions, including how to install Python from scratch, are described in the detailed installation manual.
If you know what you are doing, you can install as a package as follows:
python setup.py install
Or in development mode, install from your working directory
pip install -e ./
Or create a binary wheel distribution package with:
python setup.py bdist_wheel -d dist
Tests
Only a small part of the code is covered by unittests currently. More tests are forthcoming.
wetb
Contents of WindEnergyToolbox,Overview
hawc2
- Hawc2io: Read binary, ascii and flex result files
- sel_file: Read/write *.sel (sensor list) files
- htc_file: Read/write/manipulate htc files
- ae_file: Read AE (aerodynamic blade layout) files
- pc_file: Read PC (profile coefficient) files
- shear_file: Create user defined shear file
- at_time_file: Read at output_at_time files
- log_file: Read and interpret log files
- ascii2bin: Compress HAWC2 ascii result files to binary
gtsdf
General Time Series Data Format, a binary hdf5 data format for storing time series data.
- gtsdf: read/write/append gtsdf files
- unix_time: convert between datetime and unix time (seconds since 1/1/1970)
fatigue_tools
- fatigue: Rainflow counting, cycle matrix and equivalent loads
- bearing_damage: Calculate a comparable measure of bearing damage
wind
- shear: Calculate and fit wind shear
dlc
Module for working with "Design load cases" (Code independent)
- high_level Class for working with the highlevel dlc excell sheet
prepost
Module for creating an arbitrary number of HAWC2 simulations, and optionally corresponding execution scripts for a PBS Torque cluster (Linux), simple bash (Linux), or Windows batch scripts. A post-processing module is also included that calculates statistical parameters, performs rainflow counting for fatigue load calculations, and create load envelopes.
Additional documentation can be found here:
fast
Tools for working with NREL's FAST code (An aeroelastic computer-aided engineering (CAE) tool for horizontal axis wind turbines)
- fast_io: Read binary and ascii result files
utils
Other functions
- geometry: Different kind of geometry conversion functions
- process_exec: Run system command in subprocess
- timing: Decorators for evaluating execution time of functions
- caching: Decorators to create cached (calculate once) functions and properties
Note
This project has been set up using PyScaffold 2.5. For details and usage information on PyScaffold see http://pyscaffold.readthedocs.org/.