PyWake
Wake-model AEP calculation
Installed
Wake calculation: PyWake calculates turbine-to-turbine wake interaction for the background wind field supplied by Wind Flow / Terrain. StraightDistance is the validated default wake-distance geometry. Terrain-induced background-wind modification belongs to the preceding stage, not to the wake model itself.
Run the Wind Flow / Terrain tab first. The default Bypass job preserves the current uniform-wind workflow.
Inherited from Wind Flow / Terrain Job #47
Project
Zhytomyr_Vysoke_WPP2
Turbine
Nordex N163/5.X Mode 0
Rated power
5700.0 kW
Rotor
163.0 m
Hub height
125.0 m
WTG count
15
Selected real year
2020
Gross AEP of selected year
238.880 GWh
Shear α
0.2297
Ct curve
available
Wake distance geometry — advanced validation
HybridAEP finds the WGS84 bounding box containing every WTG and expands it by this margin on all sides. The same margin is used for COP30 download and for the automatically generated synthetic flat DEM.
The OpenTopography API key is stored server-side in the wind-worker environment and is validated when Run PyWake starts. The secret value is intentionally never displayed in this form.
Preferred: GeoTIFF. WGS84 turbine coordinates are transformed to the DEM CRS before elevation sampling.
Validation mode. HybridAEP generates a constant-elevation GeoTIFF automatically for the WTG bounding box plus the margin above. It contains no terrain relief and is intended to isolate XRSite and distance-model behavior from actual terrain.
PyWake model / atmospheric assumptions
TI is an explicit site assumption until a trusted mast/LiDAR/WAsP/CFD value is available. Niayifar derives wake expansion from local TI using the model relation k = 0.3837 × TI + 0.003678; the shown value is therefore diagnostic, not an input. For Bastankhah k is an explicit input; for NOJ/Jensen the default shown is 0.10.
The hourly PyWake wake-loss kernel is now connected for the selected real simulation year. DEM terrain is used for elevation and terrain-following geometry; COP30 alone does not provide orographic wind-speed-up or direction-turning fields.
Calculation status
Job #31 done
100%

Completed

Result
HybridAEP version: v0.8.1
Simulation date (UTC): 2026-09-19T14:02:40+00:00
Engine: PyWake 2.6.20
Model: Niayifar
Model composition:
  • wind_farm_model: Niayifar_PorteAgel_2016 / PropagateDownwind
  • wake_deficit_model: NiayifarGaussianDeficit
  • superposition_model: LinearSum
  • turbulence_model: CrespoHernandez
  • rotor_average_model: GaussianOverlapAvgModel
  • deflection_model: None
  • ground_model: None
  • use_effective_ws: True
  • use_effective_ti: True
  • default_parameters: a=[0.3837, 0.003678], ceps=0.2
  • ambient_ti_pct: 10.0
  • ambient_ti_basis: user screening assumption unless replaced by trusted measured/modelled site TI
  • power_curve_outside_tabulated_range: 0 power and 0 Ct; aligned with Turbine & Gross AEP step
  • site_distance_model: StraightDistance
  • terrain_speedup_turning: not supplied; DEM affects elevation/distance geometry only
  • wake_expansion_relation: k = 0.3837 * local_TI + 0.003678
  • ambient_initial_k: 0.042048
Gross / no-wake AEP
238.880 GWh
Wake-affected AEP
220.264 GWh
Wake loss
18.616 GWh
Wake loss
7.79%
Wake-affected CF
29.33%
Gross baseline check
+0.0000%
Selected real year
2020
Hourly conditions
8784
Ambient TI
10.00%
Distance model
StraightDistance
PyWake distance geometry: Synthetic flat DEM (0.0 m constant elevation; StraightDistance; validation). DEM elevation is used with StraightDistance. WTG ground elevation ranges from 0.0 to 0.0 m (0.0 m relief across WTG positions). No terrain-derived speed-up or direction-turning field is applied here; those effects belong in the preceding Wind Flow / Terrain stage.
Validation mode: this synthetic DEM has constant elevation 0.0 m a.s.l. and zero terrain relief. PyWake uses XRSite with StraightDistance. Use this case to separate site-class effects from distance-model effects; it is not a representation of the project terrain.
Source Wind Flow / Terrain job
#None
Source Turbine & AEP job
#10
Wind-flow mode
n/a
Wake model
Niayifar
Turbine
Nordex N163/5.X Mode 0
Layout turbines
15
Layout source
Auto staggered layout centered at 50.323212,28.907742; 3 rows × up to 5 WTG/row; 5.00D (815.0 m) turbine spacing; 7.00D (1141.0 m) row spacing; row-axis azimuth 90.0°
Layout mode
auto
Coordinate mode
wgs84
WTG spacing
5.0D / 815 m
Row spacing
7.0D / 1141 m
Orientation mode
manual
Final row azimuth
90.0°
UTM CRS
EPSG:32635
DEM margin
10.0 km
DEM elevation surface — ground elevation, m a.s.l.
WTG map — marker colour = wake loss, %
Wake loss by turbine, %
Per-turbine results
WTGGround, mGross, GWhWake AEP, GWhWake loss, %Mean WS eff, m/s
WTG01 0.0 15.925 15.308 3.88 6.063
WTG02 0.0 15.925 14.656 7.97 5.964
WTG03 0.0 15.925 14.549 8.65 5.947
WTG04 0.0 15.925 14.592 8.38 5.953
WTG05 0.0 15.925 14.766 7.28 5.983
WTG06 0.0 15.925 14.922 6.30 5.998
WTG07 0.0 15.925 14.253 10.50 5.893
WTG08 0.0 15.925 14.173 11.00 5.883
WTG09 0.0 15.925 14.234 10.62 5.892
WTG10 0.0 15.925 14.442 9.31 5.933
WTG11 0.0 15.925 15.560 2.29 6.099
WTG12 0.0 15.925 14.881 6.56 5.996
WTG13 0.0 15.925 14.660 7.95 5.963
WTG14 0.0 15.925 14.597 8.34 5.954
WTG15 0.0 15.925 14.672 7.87 5.969
Energy by wind-direction sector, GWh
Hourly PyWake wake-loss simulation completed. This result includes wake loss only; electrical, availability, curtailment and other project losses are not yet applied.
Download Excel — Project__PyWake__job000031.xlsx Download CSV.gz Download KMZ Download DEM Download PyWake NetCDF
Excel export

Every completed calculation exports an XLSX workbook whose first worksheet is Cover. The Cover is written in English and documents purpose, inputs, method, outputs, limitations and source/documentation links.

Calculation logic / How this works

PyWake stage: inherit a completed Wind Flow / Terrain handoff, establish WTG geometry, optionally scan row orientation, then run the final full-hourly wake calculation and preserve reproducible engineering outputs.

  1. Select a completed Wind Flow / Terrain job; inherit its linked Turbine & Gross AEP case and selected wind-flow mode before calculating wakes.
  2. Define WTG geometry from uploaded/pasted coordinates or auto-generate a rectangular/staggered WGS84 layout using turbine spacing D, row spacing D and a row-axis azimuth.
  3. For Auto orientation, scan row-axis azimuths from 0° to <180° (default 5° step) using the selected real year's wind resource compressed to weighted 10° WD × 1 m/s WS bins and the selected PyWake wake model on a flat screening site.
  4. Select the scan angle with the highest estimated wake-affected AEP; retain the user-entered azimuth as a reference so the estimated improvement is reported. Manual orientation bypasses the scan.
  5. Generate the final WTG coordinates at the selected/manual angle and convert WGS84 coordinates to the local UTM CRS used by PyWake.
  6. Choose terrain/distance treatment. The recommended/default project-AEP path is flat terrain with UniformSite + StraightDistance. Synthetic flat modes are validation tools; real DEM modes currently use experimental TerrainFollowingDistance.
  7. Sample ground elevation when a DEM is present. Synthetic flat validation can use XRSite with StraightDistance or TerrainFollowingDistance to isolate site-class and distance-model effects; real DEM modes use XRSite with TerrainFollowingDistance.
  8. Take the chronological hub-height wind speed and wind direction series from the selected Turbine & Gross AEP year, and use the explicit ambient turbulence-intensity assumption.
  9. Build the PyWake WindTurbine object from the stored power and Ct curves and run the selected final layout hour by hour in time-series mode.
  10. Cross-check reconstructed gross/no-wake AEP against the upstream gross AEP, then calculate wake-affected AEP, wake loss %, wake-affected CF, per-WTG losses, AEP by WD and AEP by WS.
  11. Record the orientation scan curve/results, UTC timestamp, PyWake version, exact model composition, terrain treatment, normalized layout, hourly CSV, Excel report, KMZ, DEM and native NetCDF when supported.
The orientation scan is a fast wake-based screening step, not a full layout optimizer: it keeps WTG count, 5D/7D spacing, grid type and center fixed and varies only row azimuth. Full x/y optimization and project boundary/spacing constraints belong in TopFarm2. PyWake uses StraightDistance as the validated wake-distance baseline; terrain-induced speed-up and direction turning belong in the preceding Wind Flow / Terrain stage.