Release Notes

Changelog

All major changes are listed here.

Unreleased

New features

  • New methods .save and .load added to pywasp.wasp.TopographyMap to save and load the topography map to/from a ZipFile Archieve.

Improvements

  • For typical usage get_site_effects is 2-6 times faster

  • For typical usage rastermap_to_vectormap is 15-30 times faster

  • For typical usage vectormap_to_rastermap is 15-30 times faster

  • For typical usage vectormap_to_waspformat is 2-20 times faster

  • For typical usage waspformat_to_vectormap is 2-80 times faster

  • For typical usage TopographyMap is >1000 times faster

Deprecations

  • WaspVectorMap will be deprecated

Support for custom root CA certificates

  • In case of running pywasp under a proxy or another similar network setup, the filepath to a root CA certificate can be set on pywasp so it can connect to the licensing server.

0.6.0 (2023-11-30)

Dependency updates

  • Following SPEC 0 this release supports python 3.10-3.12 and numpy 1.22-1.26. Due to build issues with numpy 1.26, neither it nor python 3.12 are supported on Windows.

  • Windkit =0.7.0 is required

  • PyWake is now pinned to version 2.5.0 (commit 36da70b2335321e435194d277511c17d8f012571).

New features

Support for WAsP CFD results
  • New function pywasp.wasp.topography.get_site_effects_cfd interpolates the speedups and turnings from a windkit CFD volume xarray.Dataset.

  • pywasp.wasp functions generalize,downscale,generalize_and_downscale now have an extra cfd_volume argument, which can be used to pass in WAsP CFD results that will be used for the site effects.

Breaking changes

  • pw.wasp.wind_farm_flow_map now requires a wk.WindTurbines object, not separate wtg and locations arguments.

  • pw.wasp.wind_farm_flow_map requires the new argument output_locs, which should be a “cuboid” xr.Dataset, which is where the flow map will be calculated. output_locs should be covered by the predicted wind climate object.

Changes

  • Interpolation errors have been eliminated during the downscale step when using pywasp.wasp.generalize_and_downscale, by including the output heights in the generalize step.

  • Update ERA5 mesoclimate netCDF file according to latest revision of Using Observed and Modelled Heat Fluxes for Improved Extrapolation of Wind Distributions.

  • gross_aep and potential_aep can now accept a wk.WindTurbines object to the wtg argument. This allows for different WTGs to be used for different turbine locations.

  • Added interp_method argument to pw.wasp.get_climate, “nearest” is used by default

Improvements

  • Reduction of approximately 50% for calculations of wake-affected AEP.

Bug Fixes

  • PyWAsP on windows now can use the license.windenergy.dtu.dk licensing server.

  • Interpolation of mean_dgdz and mean_dgdz_dir are now carried out by interpolating the vector components, when a method other than "nearest" is used.

Deprecations

  • Deprecated options “PARK2_onshore_with_blockage” and “PARK2_offshore_with_blockage” in pw.wasp.wind_farm_flow_map and pw.wasp.potential_aep. Use, custom PyWake wind_farm_models to build complex models instead.

0.5.2 (2023-06-21)

Changes

  • Dependency updates: Python 3.8 & numpy 1.21 no longer supported following NEP 29. Windkit 0.6.3 is now required to support the regulation_type variable for wtg objects.

  • pywasp.wasp.TopographyMap.get_rou_rose now allows to add displacements to the orographic grid, using the new elev_rose argument. If elev_rose is None, a dummy elevation rose is created.

  • pywasp.wasp.interpolate_gwc now returns an interpolated generalized wind climate dataset with height coordinates.

  • Setting download_prompt=False and download_global_nc_files in the pywasp.cfg file, will not prevent any text from showing when importing PyWAsP. Previously it would print a message about how to get the files on each import. If you need the files, you will be prompted to download at that time. See the User Configuration Documentation to see all options of the config file.

Improvements

  • Update netCDF file with CFSR baroclinicity information. The data is the same but the data variable names are updated. It does not affect the behavior.

  • pywasp.wasp.interpolate_gwc will issue a warning if it is used with datasets with geographical coordinates for “nearest” and “natural” methods.

Bug Fixes

  • pywasp.io.rastermap_to_vectormap will only raises errors related with the parameter dz when the raster map type is elevation.

  • pywasp.wasp.aep.gross_aep incorrectly assumed most wind turbines were stall regulated. This means that when using the interpolation=True option, that incorrect air density corrections were applied. This has been fixed by an update in WindKit that requires the control_system variable to be defined on a wind turbine generator. This value is now used to apply the correct air density correction to the power curves.

0.5.1 (2023-04-19)

New Features

  • pywasp.wasp.get_climate_by_config takes a pywasp.wasp.Config object and returns an xarray.Dataset meso climate object compatible with the profile model set in the config.

Changes

  • pywasp.wasp.get_climate arguments stab_source and baro_source now both allow for None to be set. This creates a dataset with 0-valued fields for the given source.

Improvements

  • Update netCDF file with CFSR baroclinicity information to version 3. The data is the same, but the data variable names are updated. This does not affect the behavior.

Bug Fixes

  • Fixed license check error for new version of DTU License server

  • Corrected import of combine_bwcs in pywasp.wasp.cross_predict.

  • pywasp.wasp.interpolate_gwc now returns an interpolated generalized wind climate dataset with height coordinates. This makes it more robust to different spatial structures of generalized wind climates and output_locs, when used for downscaling.

Deprecations

  • getpar and setpar methods of pywasp.wasp.config.Config objects are deprecated. Use square brackets instead.