What’s New¶
These are new features and improvements of note in each release
v0.2.2 (February 20, 2024)¶
Updated the code basis to work for newer versions of python (support for python 3.6 to python 3.9 is discontinued, supported python versions are now >= python 3.9) and added github actions to run tests automatically when changes are pushed to github (PR 136).
Contributors¶
Birgit Schachler
Florian Maurer
v0.2.1 (March 9, 2021)¶
Other changes¶
A WindpowerlibUserWarning is raised if the weather data contain nan/null values. If you are aware of the nan-values you can filter the warning. (PR 96)
Raise an error if diameter of rotor is greater than the hub height.
Raise an error if “farm efficiency” method is chosen but no farm efficiency is set.
Data height in weather data DataFrame can be of type string and will be converted to numeric internally. This makes is easier to read a csv-file with a header using pandas read_csv function.
Code-style is now “black”.
Licence changed from GPLv3 to MIT.
A new function check_turbine_data(filename) is added to check the turbine data. If new data is downloaded from the oedb the data will be checked and removed if an error occurs. Furthermore, it is always possible to restore the original turbine data using the function restore_default_turbine_data(). (PR 101)
Speed Improvement in “power_curve_density_correction” (PR 107 and PR 114 )
Contributors¶
Birgit Schachler
Kumar Shivam
kyri-petrou
Sabine Haas
Uwe Krien
Velibor Zeli
v0.2.0 (September 9, 2019)¶
API changes¶
The
WindTurbine
API has been revised. Main changes are that the parameters fetch_curve and data_source have been removed. These parameters were formerly used to specify whether the power or power coefficient curve should be retrieved and the source to retrieve them from. Now per default the power curve and/or power coefficient curve are tried to be retrieved from the oedb turbine library that is provided along with the windpowerlib and holds turbine data for a large set of wind turbines. Further important changes are the renaming of the parameter name to turbine_type and the removal of the coordinates. See theWindTurbine
docstring and Initialize wind turbine in the Examples section for more information. (PR 62)The
WindFarm
API has been revised. The wind_turbine_fleet parameter can now be provided as a pandas DataFrame (PR 63) or as a list using theto_group()
method (PR 68. Furthermore, the option to specify the wind turbine fleet using the total installed capacity of each turbine type has been added. See theWindFarm
docstring and Initialize wind farm in the Examples section for more information.get_installed_power() methods in
WindFarm
andWindTurbineCluster
were removed. Installed power is instead now directly calculated inside the nominal_power getter.Removed unnecessary wake_losses_model parameter in
wake_losses_to_power_curve()
. Whether a constant wind farm efficiency or a wind farm efficiency curve is used is decided by the type of the wind farm efficiency.Combined options ‘constant_efficiency’ and ‘power_efficiency_curve’ of wake_losses_model parameter in
TurbineClusterModelChain()
to ‘wind_farm_efficiency’. Therefore, default value of wake_losses_model inassign_power_curve()
andassign_power_curve()
changed to ‘wind_farm_efficiency’.Removed overwrite parameter from
get_turbine_data_from_oedb()
Other changes¶
Power curves and nominal power of wind turbines are now saved in file in W instead of kW to be consistent with internal units.
Restructured csv reading for offline usage of windpowerlib. The nominal power of wind turbines is now saved to a separate file along with other turbine data from the oedb turbine library.
get_turbine_types() can now be used to get provided turbine types of oedb turbine library as well as provided turbine types of local files.
Documentation¶
Improved documentation of
ModelChain
andTurbineClusterModelChain
parameters (PR 64).Added info in README and getting started section on how to contribute to the oedb wind turbine library.
Contributors¶
Birgit Schachler
Sabine Haas
Uwe Krien
v0.1.3 (September 2, 2019)¶
Bug fixes¶
Acces to renamed oedb table has been fixed (Issue #71).
Contributors¶
Birgit Schachler
Uwe Krien
v0.1.2 (June 24, 2019)¶
New features¶
new attribute nominal_power in
WindFarm
andWindTurbineCluster
classes (PR #53)use properties and setters for nominal_power and installed_power in
WindFarm
andWindTurbineCluster
classesmade windpowerlib work offline: added csv files containing turbine data from OpenEnergy Database (oedb) to the repository for offline usage (PR #52)
Bug fixes¶
fixed issue with pandas Multiindex labels and codes attributes (PR #51)
Other changes¶
made
get_turbine_types()
also accessible via get_turbine_types() –> from windpowerlib import get_turbine_typesadded kwargs in init of
WindTurbine
,WindFarm
andWindTurbineCluster
we are working with deprecation warnings to draw our user’s attention to important changes (PR #53)
Deprecations¶
wind_farm and wind_turbine_cluster:
Parameter coordinates is deprecated. In the future the parameter can only be set after instantiation of WindFarm object.
installed_power is deprecated, use nominal_power instead
wind_turbine:
Parameters name, data_source and fetch_curve are deprecated. The parameter name will be renamed to turbine_type. Data source and fetching will be defined by the parameters power_coefficient_curve, power_curve and nominal_power in the future.
Parameter coordinates is deprecated. In the future the parameter can only be set after instantiation of WindTurbine object.
power_curves:
wake_losses_model is deprecated, will be defined by the type of wind_farm_efficiency
Contributors¶
Sabine Haas
Birgit Schachler
Uwe Krien
v0.1.1 (January 31, 2019)¶
Other changes¶
Adapted csv reading to pandas API change
Removed logging message for successful database connection
Added system exit and error message in case a non-existing power (coefficient) curve of an existing turbine type is tried to be used
Contributors¶
Uwe Krien
Sabine Haas
v0.1.0 (January 17, 2019)¶
ATTENTION: From v0.1.0 on power (coefficient) curves are provided by the OpenEnergy Database (oedb)
instead of in csv files (v0.6.0 and lower) due to legal reasons.
Use get_turbine_types()
to check whether the turbine types you need are included in the database.
If your turbine type is not included you can either use your own csv file or open an issue.
New classes¶
WindFarm
class for modelling a wind farm. Defines a standard set of wind farm attributes, for example aggregated power curve and wind farm efficiency to take wake losses into account.
WindTurbineCluster
class for modelling a turbine cluster that contains several wind turbines and/or wind farms. This class is useful for gathering all wind turbines in a weather data grid cell. An aggregated power curve can be calculated which considers the wake losses of the wind farms by a set efficiency if desired.
TurbineClusterModelChain
class shows the usage of new functions and classes of windpowerlib v.0.1 and is based on the ModelChain class.
New functions¶
smooth_power_curve()
for taking into account the spatial distribution of wind speed
wake_losses_to_power_curve()
: application of wake losses to a power curve
reduce_wind_speed()
: application of wake losses to a wind speed time series by using wind efficiency curves which are provided in the data directory
logarithmic_interpolation_extrapolation()
for wind speed time series
gauss_distribution()
needed for power curve smoothing
estimate_turbulence_intensity()
by roughness length
get_turbine_data_from_oedb()
for retrieving power curves from OpenEnergy Database
Testing¶
added continuous integration to automatically test the windpowerlib for different python versions and to check the test coverage
Documentation¶
added second example section and jupyter notebook
added model description
API changes¶
renamed attribute turbine_name of WindTurbine class to name to match with name attribute of WindFarm and WindTurbineCluster class
renamed basic_example to modelchain_example
renamed column ‘values’ of power (coefficient) curves to ‘value’ to prevent errors using df.value(s)
renamed run_basic_example() to run_example() in modelchain_example
renamed parameter wind_turbine of ModelChain object to power_plant
removed parameter density_correction from power_plant.power_coefficient()
Other changes¶
removed deprecated attributes (.ix)
added turbine_cluster_modelchain_example showing the usage of the TurbineClusterModelChain
Contributors¶
Sabine Haas
Uwe Krien
Birgit Schachler
v0.0.6 (July 07, 2017)¶
Documentation¶
added basic usage section and jupyter notebook
Testing¶
added tests for different data types and wind_turbine module
added example to tests
added and fixed doctests
Other changes¶
various API changes due to having better comprehensible function and variable names
renamed Modelchain to ModelChain
moved functions for temperature calculation to temperature module
new function for interpolation and extrapolation
Contributors¶
Sabine Haas
Birgit Schachler
Uwe Krien
v0.0.5 (April 10, 2017)¶
New features¶
complete restructuring of the windpowerlib
power curves for numerous wind turbines are provided
new function for calculation of air density at hub height (rho_ideal_gas)
new function for calculation of wind speed at hub height (v_wind_hellman)
density correction for calculation of power output
modelchain for convenient usage
Documentation¶
added references
Testing¶
tests for all modules were added
Contributors¶
Sabine Haas
Birgit Schachler
Uwe Krien