From WAsP to PyWAsP#

WAsP GUI

The WAsP Graphical User Interface#

The WAsP graphical user interface (GUI) for Windows has been around since it was first released in the 1990’s. Working with WAsP through PyWAsP is obviously very different than through “WAsP GUI”, but the goal of PyWAsP is to make it seamless to work on projects in both environments.

We achieve this by:

  • Providing I/O for all relevant WAsP file formats

  • Ensuring consistent calculations through the shared Fortran-based WAsP library

  • Using familiar terminology where possible


Concept Mapping#

The following table maps WAsP GUI concepts to their PyWAsP equivalents:

WAsP GUI to PyWAsP Concept Mapping#

WAsP GUI Concept

PyWAsP Equivalent

Notes

Observed Wind Climate (.owc)

windkit.read_bwc() → xarray Dataset

Binned wind climate with frequency tables

Generalized Wind Climate (.gwc)

pywasp.wasp.generalize() output

Site-independent wind climate

Site-predicted Wind Climate

pywasp.wasp.downscale() output

Wind climate at specific location

Vector Map (.map)

windkit.read_elevation_map() / read_roughness_map()

Combined into TopographyMap

Wind Turbine Generator (.wtg)

windkit.read_wtg()

Power and thrust curves

Wind Farm

windkit.read_wind_turbines()

Turbine positions and types

Resource Grid

windkit.spatial.create_cuboid() with downscale()

Gridded wind climate predictions

AEP Calculation

pywasp.gross_aep() / potential_aep() / net_aep() / px_aep()

Annual energy production estimates

Wake Model

wind_farm_model parameter in potential_aep()

PyWake integration for wake effects

Workspace (.wwh)

See Tutorial 5

Import WAsP workspaces


File Format Support#

PyWAsP and WindKit support reading and writing common WAsP file formats:

Supported File Formats#

Extension

Description

Read Function

Write Function

.owc / .omwc

Observed (Binned) Wind Climate

windkit.read_bwc()

windkit.bwc_to_file()

.gwc

Generalized Wind Climate

windkit.read_gwc()

windkit.gwc_to_file()

.pwc

Predicted (Weibull) Wind Climate

windkit.read_wwc()

windkit.wwc_to_file()

.wrg

Wind Resource Grid (WWC)

windkit.read_wwc()

windkit.wwc_to_file()

.map

Vector Map (elevation/roughness/landcover)

windkit.read_elevation_map()

windkit.elevation_map_to_file()

.grd

Raster Map (elevation/roughness/landcover)

windkit.read_elevation_map()

windkit.elevation_map_to_file()

.wtg

Wind Turbine Generator

windkit.read_wtg()

windkit.wtg_to_file()

.wwh

WAsP Workspace

windkit.WorkSpace.read_wwh()

Not yet supported


Workflow Comparison#

Here’s how a typical wind resource assessment workflow compares between WAsP GUI and PyWAsP:

  1. Import data

    • File → Import → Met mast data

    • Create observed wind climate in OWC Editor

  2. Set up terrain

    • Add vector map (.map) to project

    • Define roughness classifications

  3. Generalize

    • Right-click OWC → Generalize

    • Links OWC to map automatically

  4. Create turbine sites

    • Add turbine sites manually

    • Or import from file

  5. Calculate

    • Right-click turbine → Calculate

    • View results in tables/reports

  1. Import data

    import windkit as wk
    import pywasp as pw
    
    bwc = wk.read_bwc("mast_data.owc")
    
  2. Set up terrain

    elev = wk.read_elevation_map("terrain.map")
    rgh = wk.read_roughness_map("terrain.map")
    topo = pw.wasp.TopographyMap(elev, rgh)
    
  3. Generalize

    gwc = pw.wasp.generalize(bwc, topo)
    
  4. Create turbine sites

    sites = wk.spatial.create_point(
        x=[...], y=[...], h=[...],
        crs="EPSG:32632"
    )
    
  5. Calculate

    wwc = pw.wasp.downscale(gwc, topo, sites)
    wtg = wk.read_wtg("turbine.wtg")
    aep = pw.gross_aep(wwc, wtg)
    

Key Differences#

Scripting vs. Point-and-Click

PyWAsP workflows are defined in Python scripts, enabling automation, version control, and reproducibility that’s difficult to achieve with GUI-based workflows.

Batch Processing

PyWAsP excels at batch processing - running calculations for many sites, scenarios, or parameter variations in a single script.

Integration

PyWAsP integrates with the scientific Python ecosystem (NumPy, pandas, xarray, matplotlib) for advanced analysis and visualization.

Flexibility

PyWAsP allows custom workflows and combinations not available in the GUI, such as custom wake models via PyWake.


Next Steps#