pywasp.wasp.wind_farm_flow_map
- pywasp.wasp.wind_farm_flow_map(pwc, wind_turbines, output_locs, wind_farm_model='PARK2_onshore', turbulence_intensity=None, shear=None, ws_stepsize=1.0, ws_upper_limit=None, ws_lower_limit=0.0, n_subsector=5, wtg_id=0, site_interp_method='nearest', site_interp_bounds='ignore', n_cpu_pywake=1)[source]
Generate a flow map around a wind farm using py_wake for wake and blockage effects. The map is calculated at the same points as the predicted wind climate(s) are provided.
- Parameters:
pwc (
Dataset
) – PyWAsP Predicted Wind Climate Dataset containing wind climates for all the turbine locations.wtg (
wk.WindTurbines
) – Wind turbines as a wk.WindTurbines object containing groups of WTGs and locations.output_locs (
Dataset
) – Locations to calculate the flow map at. Must be a “cuboid” xr.Dataset with 3 spatial dimensions: ‘west_east’, ‘south_north’, ‘height’. The coordinates of the output locations must be covered by the cuboid spanned by the predicted wind climate(s).wind_farm_model (
str
,function
, optional) – Wind farm model to use for deficit calculations. Can Either be a name of a predefined wind farm model: “PARK1”, “PARK2_onshore”, “PARK2_offshore”, or a predefined py_wake wind_farm_model object. By default “PARK2_onshore” is used.turbulence_intensity (
float
, optional) – Set a default turbulence itensity, if it’s not part of the Predicted Wind Climate already, default is None, which means nothing is done unless it’s set.shear (
float
, optional) – Set a default shear, if it’s not part of the Predicted Wind Climate already, default is None, which means nothing is done unless it’s set.ws_stepsize (
float
, optional) – Wind speed bins stepsize, by default 1.0ws_upper_limit (
float
, optional) – Upper limit of wind speed range, by default None Which means the upper limit of the wind speed range will be the maximumws_lower_limit (
float
, optional) – Lower limit of wind speed range, by default 0.0n_subsector (
int
, optional) – Number of subsectors to use per sector, by default 5wtg_id (
int
, optional) – The wind turbine type to use for calculating the AEP flow map, by default 0, the first type The WTG is taken from the corresponding entry in the wind_turbines object.site_interp_method (
str
, optional) – The interpolation method to use in py_wake XRSite, by default “nearest”site_interp_bounds (
str
, optional) – The extrapolation method to use in py_wake XRSite, by default “ignore”n_cpu_pywake (
int
, optional) – Number of CPUs to use in py_wake, by default 1
- Returns:
Dataset
– Wind farm flow map for the output_locs containing the variables:- potential_AEP_sector:
Potential AEP in GWh for each sector
- gross_AEP_sector:
Gross AEP in GWh for each sector
- AEP_deficit_sector:
AEP deficit in units of fraction for each sector
- wspd_sector:
Average wind speed in m/s for each sector
- wspd_eff_sector:
Average effective wind speed in m/s for each sector
- wspd_deficit_sector:
Average wind speed deficit in units of fraction for each sector
- turbulence_intensity_eff_sector:
Average effective turbulence intensity for each sector
- wdfreq:
Wind direction frequency in units of fraction for each sector
- potential_AEP:
Potential AEP in GWh for each location
- gross_AEP:
Gross AEP in GWh for each location
- AEP_deficit:
AEP deficit in units of fraction for each location
- wspd:
Average wind speed in m/s for each location
- wspd_eff:
Average effective wind speed in m/s for each location
- wspd_deficit:
Average wind speed deficit in units of fraction for each location
- turbulence_intensity_eff:
Average effective turbulence intensity for each location
- Raises:
TypeError – If output_locs is not a xr.Dataset
ValueError – If output_locs is not a “cuboid” xr.Dataset
ValueError – If pwc is not a “cuboid” xr.Dataset
ValueError – If output_locs is not covered by the cuboid spanned by the predicted wind climate(s)
ValueError – If the wind turbine locations are not covered by the cuboid spanned by the predicted wind climate(s)