Wind Power¶
Estimates wind turbine power output from a wind speed variable.
winpow¶
Converts wind speed to power using a third-order polynomial fitted to a reference turbine power curve, then applies cut-in, rated, and cut-out speed limits.
| Parameter | Type | Default | Description |
|---|---|---|---|
turbine_power |
float | — | Rated power output in kW. Required. |
cutin |
float | 3.0 |
Cut-in wind speed (m/s). Output is zero below this. |
rated |
float | 10.61 |
Rated wind speed (m/s). Output is capped at turbine_power above this. |
cutout |
float | 25.0 |
Cut-out wind speed (m/s). Output is zero above this. |
agg |
str | null | "mean" |
Aggregation applied after computing instantaneous power ("mean", "max", etc.). Set to null to return the full power time series. |
group |
str | null | null |
Time grouping (month, season, year). Only valid when agg is set. |
Power curve¶
The polynomial is fitted to a reference 16 MW offshore turbine curve. The relationship between wind speed and output power follows:
P(v) = a·v + b·v² + c·v³ + d for cutin < v < rated
P(v) = turbine_power for rated ≤ v < cutout
P(v) = 0 for v ≤ cutin or v ≥ cutout
The polynomial coefficients are fitted internally — only turbine_power is needed to scale the output to your turbine's rated capacity.
Examples¶
Mean power output for a 15 MW turbine:
Monthly mean and maximum power with custom speed limits:
- func: winpow
dim: time
data_vars: [wspd]
turbine_power: 8000
cutin: 4.0
rated: 12.0
cutout: 25.0
agg: mean
group: month
Return the full instantaneous power time series (no aggregation):
Note
winpow operates on the first variable in data_vars. Pass a single wind-speed variable per call.
API reference¶
gridstats.ops.windpower.winpow(data: xr.Dataset, *, dim: str = 'time', turbine_power: float, cutin: float = 3.0, rated: float = 10.61, cutout: float = 25.0, agg: str | None = 'mean', group: str | None = None, **kwargs) -> xr.Dataset
¶
Estimate wind turbine power from wind speed.
Fits a third-order polynomial to a reference power curve, then applies cut-in, rated, and cut-out speed thresholds.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
Dataset
|
Input dataset. Must contain a wind-speed variable (first data var is used as the wind-speed input). |
required |
dim
|
str
|
Time dimension name. |
'time'
|
turbine_power
|
float
|
Rated mechanical power output (kW). |
required |
cutin
|
float
|
Cut-in wind speed below which output is zero (m/s). |
3.0
|
rated
|
float
|
Rated wind speed above which output is capped (m/s). |
10.61
|
cutout
|
float
|
Cut-out wind speed above which output is zero (m/s). |
25.0
|
agg
|
str | None
|
Aggregation to apply after computing instantaneous power ('mean', 'max', etc.). Pass None to return the full time series. |
'mean'
|
group
|
str | None
|
Time component to group by (only supported when agg is set). |
None
|
Returns:
| Type | Description |
|---|---|
Dataset
|
Dataset with wind power variable(s). |
Raises:
| Type | Description |
|---|---|
NotImplementedError
|
If group is provided without agg. |