Metadata-Version: 2.4
Name: windkit
Version: 2.1.0
Summary: WindKit provides core functionalities for working with wind resource data
Author: DTU Wind Energy
License-Expression: BSD-3-Clause
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: geopandas>=1.0
Requires-Dist: h5netcdf
Requires-Dist: lxml>=5.2
Requires-Dist: netcdf4>=1.7
Requires-Dist: numpy>=2.0
Requires-Dist: packaging>=24.1
Requires-Dist: pandas>=2.3
Requires-Dist: platformdirs>=4.3
Requires-Dist: pydantic>=2.7
Requires-Dist: pydantic-settings>=2.3
Requires-Dist: pyproj>=3.7
Requires-Dist: pyyaml
Requires-Dist: rasterio>=1.4
Requires-Dist: requests
Requires-Dist: rioxarray>=0.17
Requires-Dist: scipy>=1.13
Requires-Dist: shapely>=2.0
Requires-Dist: toml
Requires-Dist: xarray>=2024.9
Provides-Extra: plots
Requires-Dist: matplotlib>=3.9; extra == "plots"
Requires-Dist: plotly>=5.21; extra == "plots"
Requires-Dist: kaleido>=1.0; extra == "plots"
Provides-Extra: performance
Requires-Dist: numba>=0.60; extra == "performance"
Provides-Extra: data-apis
Requires-Dist: adlfs>=2024.4; extra == "data-apis"
Requires-Dist: earthengine-api>=1.0; extra == "data-apis"
Requires-Dist: fsspec>=2024.5; extra == "data-apis"
Requires-Dist: planetary-computer>=1.0; extra == "data-apis"
Requires-Dist: pystac-client>=0.8; extra == "data-apis"
Requires-Dist: zarr>=3.0; extra == "data-apis"
Provides-Extra: dev
Requires-Dist: dash; extra == "dev"
Requires-Dist: ipython; extra == "dev"
Requires-Dist: nbval; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-xdist; extra == "dev"
Requires-Dist: windIO; extra == "dev"
Provides-Extra: doc
Requires-Dist: docutils; extra == "doc"
Requires-Dist: jupyter; extra == "doc"
Requires-Dist: jupyter-dash; extra == "doc"
Requires-Dist: jupyter-sphinx; extra == "doc"
Requires-Dist: myst-parser; extra == "doc"
Requires-Dist: nbsphinx; extra == "doc"
Requires-Dist: nbsphinx-link; extra == "doc"
Requires-Dist: pydata-sphinx-theme; extra == "doc"
Requires-Dist: recommonmark; extra == "doc"
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: sphinx-argparse; extra == "doc"
Requires-Dist: sphinx-copybutton; extra == "doc"
Requires-Dist: sphinx-design; extra == "doc"
Requires-Dist: sphinx-gallery; extra == "doc"
Requires-Dist: sphinxcontrib-bibtex; extra == "doc"
Requires-Dist: sphinxext-opengraph; extra == "doc"
Dynamic: license-file

# WindKit

[![pipeline status](https://gitlab-internal.windenergy.dtu.dk/ram/software/pywasp/windkit/badges/master/pipeline.svg)](https://gitlab-internal.windenergy.dtu.dk/ram/software/pywasp/windkit/-/pipelines)
[![coverage](https://gitlab-internal.windenergy.dtu.dk/ram/software/pywasp/windkit/badges/master/coverage.svg)](https://gitlab-internal.windenergy.dtu.dk/ram/software/pywasp/windkit/-/pipelines)
[![release](https://gitlab-internal.windenergy.dtu.dk/ram/software/pywasp/windkit/-/badges/release.svg)](https://gitlab-internal.windenergy.dtu.dk/ram/software/pywasp/windkit/-/releases)
[![License: BSD-3-Clause](https://img.shields.io/badge/License-BSD--3--Clause-blue.svg)](LICENSE)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
[![Docs](https://img.shields.io/badge/docs-docs.wasp.dk-blue?logo=readthedocs&logoColor=white)](https://docs.wasp.dk/windkit)

[![PyPI](https://img.shields.io/pypi/v/windkit)](https://pypi.org/project/windkit/)
[![Downloads-pypi](https://img.shields.io/pypi/dm/windkit)](https://pypi.org/project/windkit/)


WindKit provides core functionalities for working with wind resource data, built on top of [xarray](https://xarray.dev/) and [geopandas](https://geopandas.org/).

## Installation

**pip:**
```bash
pip install windkit
```

**conda:**
```bash
conda install -c https://conda.windenergy.dtu.dk/channel/open windkit
```

## Quick Start

```python
import windkit as wk

# Read a binned wind climate
bwc = wk.read_bwc("hovsore.tab")

# Calculate mean wind speed
mean_ws = wk.mean_wind_speed(bwc)
print(f"Mean wind speed: {mean_ws.values:.2f} m/s")

# Fit Weibull distribution and convert to Weibull wind climate
wwc = wk.weibull_fit(bwc)
```

## Features

- **Wind Climate I/O** - Read/write binned, Weibull, generalized, and time-series wind climates (NetCDF, .lib, .tab, .rsf, .wrg)
- **Map I/O** - Read/write elevation, roughness, and landcover maps (raster and vector formats)
- **WAsP Integration** - Read WAsP Workspace files and WAsP Engineering project files
- **Spatial Processing** - Clip, reproject, and interpolate spatial data with full CRS support
- **Wind Statistics** - Calculate mean wind speed, power density, Weibull parameters, and more
- **Plotting** - Interactive plots with Plotly, static plots with Matplotlib
- **Remote Data Access** - Download ERA5 reanalysis data and satellite-derived maps

## Documentation

Full documentation: [docs.wasp.dk/windkit](https://docs.wasp.dk/windkit)

Community forum: [WAsP Python tools](https://www.wasptechnical.dk/forum/forum/19-wasp-python-tools/)

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.

## License

BSD-3-Clause - see [LICENSE](LICENSE) for details.
