WAsP File Formats#

windkit provides low-level readers and writers for various WAsP file formats. These functions return dictionaries with numpy arrays, giving you direct access to the data without xarray overhead.

Low-Level vs High-Level APIs#

windkit provides two ways to work with WAsP files:

High-level APIs (e.g., read_bwc(), read_gwc()) return xarray.Dataset objects with full metadata and coordinate handling. Use these for standard workflows.

Low-level APIs in windkit.io.wasp return dictionaries with numpy arrays. Use these when:

  • You need minimal dependencies or overhead

  • You want direct array access for custom processing

  • You’re building pipelines that don’t need xarray

Example comparison:

# High-level: returns xarray.Dataset with validation and metadata
import windkit as wk
bwc = wk.read_bwc("wind_climate.tab")
print(type(bwc))  # <class 'xarray.core.dataset.Dataset'>

# Low-level: returns dict with numpy arrays
from windkit.io.wasp import read_tab
data = read_tab("wind_climate.tab")
print(type(data))           # <class 'dict'>
print(data["wsfreq"].shape) # (n_wsbins, n_sectors) - raw numpy array
print(data["coords"])       # {'south_north': ..., 'west_east': ..., 'height': ...}

Quick Start#

from windkit.io.wasp import read_tab, read_owc, read_lib

# Read binned wind climate (.tab)
tab_data = read_tab("wind_data.tab")
print(tab_data["wsfreq"].shape)

# Read observed wind climate (.owc / .omwc)
owc_data = read_owc("observed.omwc")
print(owc_data["wsfreq"].shape)

# Read generalized wind climate (.lib)
lib_data = read_lib("climate.lib")
print(lib_data["A"].shape)  # (n_sectors, n_heights, n_roughnesses)

Return Value Structure#

All read functions return dictionaries with:

  • Format-specific data as numpy arrays

  • coords: dict with south_north, west_east, height

  • metadata: dict with format-specific metadata (e.g., description)

Encoding Detection#

Text formats support automatic encoding detection:

data = read_tab("file.tab")                    # Auto-detect encoding
data = read_tab("file.tab", encoding="utf-8")  # Explicit encoding

Documentation Contents#

See Also#