Skip to content

Changelog

2.20.22 - 2025-12-03

Authors: Nicole Tometich

Changes:

  • Another minor adjustment in solar_unclipped_regression.py calc_unclipped_pwr_regression() method to not consider for the regression periods where the inverter is on the majority of time stopped/no communication.

2.20.21 - 2025-12-03

Authors: Nicole Tometich

Changes:

  • Adjustment in solar_unclipped_regression.py calc_unclipped_pwr_regression() method to not consider for the regression periods where the inverter is 100% stopped/no communication.

2.20.20 - 2025-12-02

Authors: Nicole Tometich

Changes:

  • Another adjustment in solar_unclipped_regression.py to restrict the regression to only high irradiance levels, since the previous profile were not corresponding to the expected relation between irradiance and Unclipped Power (when comparing with PVSyst simulation)
  • Also, prevented the Unclipped Regression to have negative values

2.20.19 - 2025-12-01

Authors: Nicole Tometich

Changes:

  • Adjustment in solar_unclipped_regression.py considering a similar methodology that was used in "pós-op" calculations. Also an adjustment in calc_retroactive_unclipped_power

2.20.18 - 2025-11-26

Authors: Nicole Tometich

Changes:

  • Adjustment in FeatureCalcSolarClippingState calculate() method to consider possible clipping during curtailment times as well.

2.20.17 - 2025-11-23

Authors: Bruno Macedo

Changes:

  • Removed deprecated functionality related to gamesa blade gap sensors.

2.20.16 - 2025-11-19

Authors: Nicole Tometich

Changes:

  • Adjustments in SolarEnergyLossResource and SolarEnergyLossModuleTemperature logic. Also, both logics set loss/gain to zero during night times acoording to pvlib coordinates.
  • Now SolarEnergyLossModuleTemperature returns a value in daily kWmed.
  • Now SolarEnergyLossResource returns a value in daily kWmed.
  • Bug fix in SolarEnergyLossStrings when dealing with strings that are open during the whole day.

2.20.15 - 2025-11-17

Authors: Nicole Tometich

Changes:

  • Adjustments in SolarEnergyLossResource and SolarEnergyLossModuleTemperature logic.
  • Now SolarEnergyLossModuleTemperature predctive model returns a temperature loss factor that is multiplied by the theoretical power to get temperature loss.
  • Adjustment on how the target energy is gathered SolarEnergyLossResource.

2.20.14 - 2025-11-12

Authors: Bruno Macedo

Changes:

  • Bug fix in AlarmCalcThreshold due to changes in perfdb.features.values.whenatcondition.

2.20.13 - 2025-11-11

Authors: Nicole Tometich

Changes:

  • Bug fix in SolarEnergyLossStrings logic to correctly make the conversion from dc_loss to ac_loss. Now the AC power is clipped according to ActivePowerPercent on each timestamp.
  • Redundant logic on SolarEnergyLossResource to avoid errors regarding list-like indexes that randomly happened when launching calc on airflow containers.

2.20.12 - 2025-10-27

Authors: Nicole Oska

Changes:

  • Adjustment in FeatureCalcPowerTheoreticalVestas to return a DataFrame with "ActivePowerTheoreticalContractual_10min.AVG" and "ActivePowerTheoreticalContractualStep_10min.REP" features.

2.20.11 - 2025-10-17

Authors: Nicole Oska

Changes:

  • Adjustment in ge_power_up to handle turbines without data in the period.

2.20.10 - 2025-10-15

Authors: Enzo Tonelli

Changes:

  • Adjustment in SolarEnergyLossStrings to not disconsider curtailment timestamps when calculating shading and underperf losses

2.20.9 - 2025-10-14

Authors: Nicole Oska

Changes:

  • Adjustment in feature_calc_power_theoretical to only consider data on step 2 when there is no curtailment.

2.20.8 - 2025-10-13

Authors: Nicole Tometich

Changes:

  • Adjustment in SolarEnergyLossStringsand SolarEnergyLossTracker to zero the losses whenever the inverter is stopped (IEC-OperationState_5min.REP < 2)

2.20.7 - 2025-10-13

Authors: Enzo Tonelli

Changes:

  • Changes in SolarEnergyLossStrings: Solar open strings loss now calculates all kinds of string losses (Open strings + Underperformance + Shading)

2.20.6 - 2025-10-10

Authors: Nicole Oska

Changes:

  • Small adjustment in filters.flatline_filter, to also consider a variation equal to and not just smaller than the thresh for n consecutive periods.

2.20.5 - 2025-10-09

Authors: Nicole Oska

Changes:

  • filters.flatline_filter adapted to handle polar type df as input

2.20.4 - 2025-10-09

Authors: Bruno Macedo

Changes:

  • Improvements in JobBazeTagDelete

2.20.3 - 2025-10-08

Authors: Bruno Macedo

Changes:

  • Bug fixes in JobHandler.

2.20.2 - 2025-10-03

Authors: Nicole Tometich

Changes:

  • Adjustment on SolarEnergyLossSoiling to correctly calculate soiling loss for RBG site

2.20.1 - 2025-10-03

Authors: Nicole Oska

Changes:

  • Small bug fixed due to Echo-Baze library update

2.20.0 - 2025-10-01

Authors: Nicole Tometich

Changes:

  • Added SolarEnergyLossSoiling class to calculate soiling losses on solar sites.

2.19.1 - 2025-09-30

Authors: Enzo Tonelli

Changes:

  • Fix to SolarEnergyLossTracker: When all neighbor inverters are misaligned, the reference power is the max power among them.

2.19.0 - 2025-09-28

Authors: Bruno Macedo

Changes:

  • Added JobBazeTagDelete class to delete Bazefield tags from Bazefield historian and database.
  • Improvement on jobs documentation.
  • Better organized test files.

2.18.0 - 2025-09-15

Authors: Enzo Tonelli

Changes:

  • Added SolarEnergyLossTracker class to calculate the solar energy gain / loss due to tracker misalignment
  • Minor fix to strings losses markdown text

2.17.2 - 2025-09-11

Authors: Nicole Tometich

Changes:

  • Minor adjustment on SolarEnergyLossModuleTemperature to not clip negative values as 0. Since, we want to capture gains due to module temperature as well.

2.17.1 - 2025-09-11

Authors: Bruno Macedo

Changes:

  • Minor fix to remove pandas deprecation warning in Calculation Handler.

2.17.0 - 2025-09-10

Authors: Nicole Tometich

Changes:

  • Adjustment on SolarEnergyLossResource to use only IrradiancePOA as model input
  • Added SolarEnergyLossModuleTemperature class to calculate the solar energy gain / loss due to Module Temperature

2.16.6 - 2025-09-03

Authors: Nicole Tometich

Changes:

  • Improvement on FeatureCalcPowerTheoreticalSolar to deal with moments that we have missing values and 0 on IrradiancePOACommOK

2.16.5 - 2025-09-01

Authors: Nicole Tometich

Changes:

  • Improvement on SolarEnergyLossStrings logic. Now we attribute 0 energy loss when we have Communication problem in an inverter.

2.16.4 - 2025-08-27

Authors: Nicole Tometich

Changes:

  • Improvement on SolarEnergyLossStrings logic. Now the average mean is explicitly excluding 0 values from the operational string mean power.

2.16.3 - 2025-08-27

Authors: Nicole Tometich

Changes:

  • Minor adjustment on SolarEnergyLossStrings data treatment. Adjustment made to correctly deal with missing timestamps due to current TOTALIZER behaviour.

2.16.2 - 2025-08-26

Authors: Nicole Tometich

Changes:

  • Added a mahalanobis filter on solar_unclipped_regression to filter remain outliers.
  • Improvement of filters when getting regression coefficients.

2.16.1 - 2025-08-22

Authors: Nicole Tometich

Changes:

  • Added statsmodels as library dependency.

2.16.0 - 2025-08-22

Authors: Nicole Tometich

Changes:

  • Added FeatureCalcSolarUnclippedPower class to calculate ActivePowerUnclipped based on linear regression saved on inverter attribute unclipped_pwr_regression
  • Added solar_unclipped_regression file with methods to calculate linear regression for current period and for retrival periods.
  • Adjustment on FeatureCalcEvalExpression to define round_timestamps parameters when acquiring a tag from bazefield.

2.15.3 - 2025-08-21

Authors: Bruno Macedo

Changes:

  • Minor bug fix in data types of std_filter to avoid errors.

2.15.2 - 2025-08-14

Authors: Bruno Macedo

Changes:

  • Added nominal power clipping in FeatureCalcPowerTheoretical.

2.15.1 - 2025-08-07

Authors: Nicole Tometich

Changes:

  • Adjustment on constants so the CalculationHandler can recognize the FeatureCalcSolarClippingState logic.

2.15.0 - 2025-08-07

Authors: Nicole Tometich

Changes:

  • Implementation of a new subclass FeatureCalcSolarClippingState to calculate the feature ClippingState_5min.REP for the inverters.

2.14.4 - 2025-08-05

Authors: Nicole Tometich

Changes:

  • Improvement on SolarEnergyLossStrings logic to always consider the period starting at 00:00 and ending at 23:59 to perform the calculation of down daily strings correctly.

2.14.3 - 2025-07-23

Authors: Nicole Tometich

Changes:

  • Improvement on SolarEnergyLossStrings logic to avoid having negative energy loss values.

2.14.2 - 2025-07-22

Authors: Nicole Tometich

Changes:

  • Improvement on SolarEnergyLossStrings logic to optimize calculation performance.

2.14.1 - 2025-07-22

Authors: Nicole Tometich

Changes:

  • Minor adjustment on mkdocs documentation.

2.14.0 - 2025-07-22

Authors: Nicole Tometich

Changes:

  • Implementation of a new subclass: SolarEnergyLossStrings to calculate the loss due to open strings.

2.13.9 - 2025-07-14

Authors: Nicole Oska

Changes:

  • Minnor bug fixed on ge_power_up.

2.13.8 - 2025-07-14

Authors: Bruno Macedo

Changes:

  • Added option to ignore calculation of certain features per object based on disabled_calculations object attribute.

2.13.7 - 2025-07-12

Authors: Bruno Macedo

Changes:

  • Changed build backend to uv_build for better packaging and deployment.

2.13.6 - 2025-07-09

Authors: Bruno Macedo

Changes:

  • Removed more dependencies on echo-postgres and echo-baze < 2.0.

2.13.5 - 2025-07-06

Authors: Bruno Macedo

Changes:

  • Removed FEATURE_ORDER from CalculationHandler and moved it to database settings.
  • Added support for predictive models that output multiple features in FeatureCalcPredictiveModel.

2.13.4 - 2025-07-01

Authors: Nicole Tometich

Changes:

  • Implementation of two new classes regarding Advanced Solar Monitoring project: SolarEnergyLossCalculator and SolarEnergyLossResource
  • SolarEnergyLossCalculator is empty for now. But it will be useful in the future to implement similar logic to different losses types
  • SolarEnergyLossResource has all the logic to calculate and save loss/gain related to the irradiance and module temperature during the requested period.

2.13.3 - 2025-06-17

Authors: Bruno Macedo

Changes:

  • Bug fix related to creation of distributed generation SPEs.

Version 2.13.2 - 2025-06-08

Authors: Bruno Macedo

Changes:

  • Fixes due to removal of method key in round_timestamps.

Version 2.13.1 - 2025-06-06

Authors: Nicole Tometich

Changes:

  • Minor adjustment on echo-baze point.series.get() function on 'feature_calc_power_theoretical_solar'

Version 2.13.0 - 2025-06-05

Authors: bruno Macedo

Changes:

  • Added FeatureCalcTimeseriesAmplitude class to calculate the amplitude of a timeseries.

Version 2.12.2 - 2025-06-04

Authors: Nicole Tometich

Changes:

  • Adjustment on how data in treated when there is no ReactivePower_5min.AVG on 'feature_calc_power_theoretical_solar'.

Version 2.12.1 - 2025-05-22

Authors: Nicole Tometich

Changes:

  • Minor adjustment on documentation format

Version 2.12.0 - 2025-05-22

Authors: Nicole Tometich

Changes:

  • Implementation of FeatureCalcPowerTheoreticalSolar class to calculate solar power production using the trained predictive model.
  • Adjustments on feature_calc_core and calculation_requirement_features to get the correct bazefield features / objects

Version 2.11.15 - 2025-04-22

Authors: Bruno Macedo

Changes:

  • Minor bug fixes.

Version 2.11.14 - 2025-04-21

Authors: Bruno Macedo

Changes:

  • Allows for Numpy 2.0.

Version 2.11.13 - 2025-04-08

Authors: Bruno Macedo

Changes:

  • Optimizations when getting attributes of features and objects, reducing load on database and overhead on calculations.
  • JobInstances now allow to skip test jobs (ones with test in it's description).

Version 2.11.12 - 2025-03-18

Authors: Bruno Macedo

Changes:

  • Removed version specifier for kaleido as it was rewritten and current version works well.

Version 2.11.11 - 2025-02-19

Authors: Bruno Macedo

Changes:

  • Added TeleassistCommOk_5min.MOD to default calculated features.

Version 2.11.10 - 2025-01-29

Authors: Bruno Macedo

Changes:

  • Fixes related to feature name changes in the database to match Bazefield feature names.

Version 2.11.9 - 2024-01-22

Authors: Nicole Tometich

Changes:

  • Minor bug fix in 'calculation_requirement_features.py'

Version 2.11.8 - 2024-01-21

Authors: Nicole Tometich

Changes:

  • Included documentation regarding Bazefield tags defined on eval expression as "_b#"
  • Included a turn around when a dataframe is nearly empty after curtailment filter on yaw analysis
  • Included a condition to disconsider periods when points are concentrated only in a wind speed range during the selected period on yaw analysis
  • Minor changes on yaw misalignment logic.

Version 2.11.7 - 2024-01-10

Authors: Nicole Tometich

Changes:

  • Major changes in yaw.py
  • Added filter on pitch range depending on wind turbine model range defined on perfdb
  • Adjustment on power curve fit to "smoother" curve
  • Adjustment on echo_postgres and echo_baze functions from legacy version to the new one

Version 2.11.6 - 2024-01-08

Authors: Nicole Tometich

Changes:

  • Minor change on yaw.py regarding tag nomenclature in bazefield. From "WindDirection" to "WindDirectionRelative"

Version 2.11.5 - 2024-01-07

Authors: Nicole Tometich

Changes:

  • Added resources on calculation_requirement_features to perform calculations using bazefield features. It has to be defined as 'bazefield_feature_b#' syntax on evaluating expression.

Version 2.11.4 - 2024-12-10

Authors: Bruno Macedo

Changes:

  • Added pd back to feature_calc_common to avoid break expression evaluation.
  • Fixed typo of aggregation in FeatureCalcObjectAggregation.

Version 2.11.3 - 2024-12-10

Authors: Bruno Macedo

Changes:

  • Minor bug fixes in alarm calculators related to Polars concatenation and end date handling.

Version 2.11.2 - 2024-12-09

Authors: Bruno Macedo

Changes:

  • AlarmCalculator now raises an error if it's trying to insert alarms with zero duration.
  • Added option to return on CalculationHandler per object.

Version 2.11.1 - 2024-12-09

Authors: Bruno Macedo

Changes:

  • Forced AlarmCalculator to delete alarms before inserting.

Version 2.11.0 - 2024-12-09

Authors: Bruno Macedo

Changes:

  • Added AlarmCalculator base class for handling alarms calculated in the server and implemented AlarmCalcThreshold for alarms based on thresholds.
  • Added JobInstance base class for handling jobs and implemented JobAlarmCalc for jobs related to alarms.
  • Added JobHandler class to handle job calculations from multiple JobInstance classes.
  • Added polars as a dependency for faster data manipulation.
  • Documentation pending for the new classes.

Version 2.10.1 - 2024-11-22

Authors: Bruno Macedo

Changes:

  • Minor bug fix in CalculationHandler regarding regex matching.

Version 2.10.0 - 2024-11-20

Authors: Bruno Macedo

Changes:

  • Splitted CalculationRequirement classes into multiple files for better organization.
  • Added RequiredVibrationData and RequiredVibrationFrequencies classes.
  • Added FeatureCalcSpectrumAmplitude class.
  • Added support for passing features as regex to CalculationHandler.
  • Changed FEATURE_ORDER to specify features using regex.
  • Added vibration features (cms) to FEATURE_ORDER.

Version 2.9.0 - 2024-11-17

Authors: Bruno Macedo

Changes:

  • Added extensive documentation using mkdocs.
  • Removed remaining references to echo-postgres 1.0 from calculation requirements and feature calculators.
  • Deprecated FeatureCalcMonthlyAggregation as it was not being used anymore and has outdated code.

Version 2.8.3 - 2024-08-01

Authors: Nicole Oska

Changes:

  • Changed predicted_feature to update power curve in bazefield due an error.

Version 2.8.1 - 2024-07-14

Authors: Bruno Macedo

Changes:

  • Changed time columns to remove _local due to database changes.

Version 2.8.1 - 2024-07-12

Authors: Bruno Macedo

Changes:

  • Added lost_power features as default for SPE calculations.

Version 2.8.0 - 2024-07-09

Authors: Bruno Macedo

Changes:

  • Upgraded to python 3.12.
  • Migrated power curve functionality to echo-calcmodels.

Version 2.7.2 - 2024-06-30

Authors: Bruno Macedo

Changes:

  • calc_electrical_losses_curve now upgraded to remove dependency on legacy echo-postgres.
  • FeatureCalcPowerCP upgraded to change curve attribute name from wtg_cp to asset_cp.

Version 2.7.1 - 2024-06-25

Authors: Bruno Macedo

Changes:

  • Changed order of default calculations for wind farm to calculate wind_speed_turbine_avg before than wind_speed_reference.
  • Added last source of data to wind_speed_reference considering wind_speed_turbine_avg in case met mast data was not enough.

Version 2.7.0 - 2024-06-15

Authors: Bruno Macedo

Changes:

  • Upgraded almost entire library to use newer version of echo-postgres. Still missing the migration of time series related queries to Bazefield.
  • Performance improvements.

Version 2.6.16 - 2024-06-15

Authors: Bruno Macedo

Changes:

  • Removed lost power allocations from default wind turbine features. It is not being used anymore. Class RequiredBazefieldAllocations was also removed, including all its references.

Version 2.6.15 - 2024-05-23

Authors: Bruno Macedo

Changes:

  • Changed default allocations category type in FeatureCalcLostPowerAlloc.

Version 2.6.14 - 2024-05-15

Authors: Bruno Macedo

Changes:

  • Bug fix in update_power_curves related to Bazefield upload and model saving.
  • Bug fix in FeatureCalcWFReferenceWS related to pandas combine_first bug.
  • Adjusted test to use new object names.
  • Refactor according to ruff and sourcery suggestions.

Version 2.6.13 - 2024-05-15

Authors: Nicole Tometich

Changes:

  • Minor bug fix in 'PcNNModel' regarding temp filepath extension.

Version 2.6.12 - 2024-05-02

Authors: Bruno Macedo

Changes:

  • Bug fix in FeatureCalcPowerCP related to SPE naming.

Version 2.6.11 - 2024-03-15

Authors: Nicole Tometich

Changes:

  • Minor change regarding Bazefield TAG nomenclature in yaw.py

Version 2.6.10 - 2024-03-13

Authors: Bruno Macedo

Changes:

  • Changed installation to pyproject.toml.
  • Bug fix in FeatureCalcPowerTheoretical related to relative wind direction too high when turbine is stopped.

Version 2.6.9 - 2024-02-28

Authors: Lucas Costa

Changes:

  • Convert only data involved in the filter to float in std_filter
  • Index reset after deleting indexes with insufficient amount of data in function get_binned_df

Version 2.6.8 - 2024-02-07

Authors: Bruno Macedo

Changes:

  • Bug fix in FeatureCalcPowerCP when there is no data in all CS SMFs (due to a substation shutdown, for example).

Version 2.6.7 - 2024-02-01

Authors: Nicole Tometich

Changes:

  • Minor bug fix in get_filtered_turbines_data() of 'ge_power_up.py' caused by recent updates in pandas and how it handles parse_dates in pd.read_sql().

Version 2.6.6 - 2024-01-23

Authors: Bruno Macedo

Changes:

  • Bug fix in update_power_curves() caused by changes in echo-postgres related to pyarrow and calc_models.

Version 2.6.5 - 2024-01-05

Authors: Bruno Macedo

Changes:

  • Improvements when loading Keras model to speed up the process and avoid memory issues.

Version 2.6.4 - 2024-01-05

Authors: Bruno Macedo

Changes:

  • More bug fixes in CalculationHandler related to freeing up memory.

Version 2.6.3 - 2023-01-04

Authors: Bruno Macedo

Changes:

  • Minor improvements on yaw.py.
  • Removed prints of freed up memory as this was taking a significative amount of time.
  • Changed FeatureCalcPredictiveModel to only calculate if the input data is not empty. otherwise return an empty result.

Version 2.6.2 - 2024-01-04

Authors: Bruno Macedo

Changes:

  • Changes in CalculationHandler to reduce memory usage when doing large calculations using save_method="end".

Version 2.6.1 - 2024-01-03

Authors: Bruno Macedo

Changes:

  • Changed FeatureCalcPredictiveModel to allow for getting lagged timestamps when calculating.
  • Changed RequiredFeatures and CalculationHandler to support getting lagged timestamps when calculating.

Version 2.6.0 - 2023-12-27

Authors: Bruno Macedo

Changes:

  • Added FeatureCalcPredictiveModel class.
  • Moved constants like FEATURE_CALC_CLASS_MAPPING and FEATURE_ORDER to constants.py.
  • Moved some attributes of CalculationRequirement and FeatureCalculator to the class instead of the instance.
  • Changed most validation of dicts to use jsonschema.
  • Added type hints to yaw.py.

Version 2.5.1 - 2023-12-22

Authors: Nicole Tometich

Changes:

  • Fine-tune yaw misalignment calculations
  • Added yaw misalignment summary function get_yaw_misal_degrees

Version 2.5.0 - 2023-12-21

Authors: Nicole Tometich

Changes:

  • Added yaw.py for yaw misalignment calculations

Version 2.4.24 - 2023-12-08

Authors: Bruno Macedo

Changes:

  • Significative adjustments in FeatureCalcObjectAggregation, allowing for resample and shift.
  • Added more default features to spe and ons_site object types.

Version 2.4.23 - 2023-12-01

Authors: Max Daniel

Changes:

Version 2.4.22 - 2023-11-30

Authors: Max Daniel

Changes:

  • Added FeatureCalcObjectAggregation to feature_calc_common.py. This is a more generic version of the FeatureCalcSpeAggregation class on the same file, and it can also scale features to some attribute if necessary.

Version 2.4.21 - 2023-11-24

Authors: Bruno Macedo

Changes:

  • Changed FeatureCalcPowerTheoreticalVestas to correctly acquire data from MetMasts, avoiding one missing timestamp in the calculation.
  • Changed this file to contain most recent changes on top.

Version 2.4.20 - 2023-11-17

Authors: Bruno Macedo

Changes:

  • Changed FeatureCalcPowerTheoreticalVestas to also consider PPC limitation as partial availability.

Version 2.4.19 - 2023-10-30

Authors: Nicole Tometich

Changes:

  • Minor bug fix in power_curve due to how get_objects in echo-baze was returning the DataFrame columns. For this code to work you need to update echo-baze to 1.3.13

Version 2.4.18 - 2023-10-06

Authors: Bruno Macedo

Changes:

  • Bug fix in ge_power_up due to Pandas changing how dates are saved to SQLite after version 2.1.0. For this code to work after this version, you need to update Pandas to 2.1.1 or higher.

Version 2.4.17 - 2023-09-28

Authors: Max Daniel

Changes:

  • Small hotfix that had to be made because of the Bazefield 10.1 update. The only change is the removal of any mention to the friendly_name property.

Version 2.4.16 - 2023-09-18

Authors: Bruno Macedo

Changes:

Version 2.4.15 - 2023-08-02

Authors: Bruno Macedo

Changes:

  • Added logging of wrong timestamps to FeatureCalcPowerCP.

Version 2.4.14 - 2023-07-26

Authors: Bruno Macedo

Changes:

  • Bug fix in curve_fit.py.

Version 2.4.13 - 2023-07-11

Authors: Bruno Macedo

Changes:

  • Bug fix in calc_ge_contractual_curtailment_loss due to change in structure of the database.

Version 2.4.12 - 2023-07-10

Authors: Bruno Macedo

Changes:

  • Added feature_compare.scale_wf_to_wtg() method.

Version 2.4.11 - 2023-07-09

Authors: Bruno Macedo

Changes:

  • Minor bug fix in PcNNModel.predict().
  • Better type hints.
  • Improvements on power_curve._calculate_metrics() to avoid absurd number when near zero.
  • Bug fix in PcNNModel.train() when values where not provided as float (pyarrow issue).
  • Chart improvements for OSA.

Version 2.4.10 - 2023-07-07

Authors: Bruno Macedo

Changes:

  • Added FeatureCalcExample to be used as an example of how to create a new feature calculator.

Version 2.4.9 - 2023-06-29

Authors: Bruno Macedo

Changes:

  • Improvements on calc_electrical_losses_curve to allow for calling the function passing the data as a parameter, avoiding the need to query the database.
  • Fixed std_filter incompatibility with pyarrow.

Version 2.4.8 - 2023-06-26

Authors: Bruno Macedo

Changes:

  • Minor bug fixes to solve erros related to changing parent_object hierarchy in the database.

Version 2.4.7 - 2023-06-23

Authors: Bruno Macedo

Changes:

  • Improvements on ge_power_up.operation_period_calc().

Version 2.4.6 - 2023-06-15

Authors: Bruno Macedo

Changes:

  • Refactored ge_power_up.py to stop using echo-sqlite package. All interactions with SQLite are now done using echo-connhandler package.

Version 2.4.5 - 2023-06-14

Authors: Bruno Macedo

Changes:

  • Changed FeatureCalcPowerCP to avoid raising an error when the power meter does not have a parent meter. This occurred for CP meters and others like the ones at the transformer in SdM. Now the code is checking for power_meter_location and will only raise an error if parent_meter is not defined and power_meter_location is "collecting substation".
  • Fixed error messages in _get_requirement_data().

Version 2.4.4 - 2023-06-09

Authors: Bruno Macedo

Changes:

  • Improvements to flatline_filter().
  • Added infer_input_shape argument to PcNNModel.

Version 2.4.3 - 2023-06-04

Authors: Bruno Macedo

Changes:

  • Changed power_curve.py to be compatible with echo-meteo 2.0.0.

Version 2.4.2 - 2023-06-01

Authors: Bruno Macedo

Changes:

  • Bug fix in FeatureCalcPowerTheoretical and FeatureCalcPowerTheoreticalVestas. _adjust_features method was filtering curtailment data wrong.

Version 2.4.1 - 2023-05-25

Authors: Bruno Macedo

Changes:

  • Removed lines in init that disable GPU for TensorFlow.

Version 2.4.0 - 2023-05-11

Authors: Bruno Macedo

Changes:

  • Major refactoring use PgSqlHandler in a with statement to avoid connection issues.

Version 2.3.4 - 2023-05-11

Authors: Bruno Macedo

Changes:

  • Better handling of postgresql connections, avoiding too many connections to be created.
  • Major bug fixed in CalculationHandler that caused it to fail if two objects of different types had the same feature mapped to different types of calculations.

Version 2.3.3 - 2023-05-10

Authors: Bruno Macedo

Changes:

  • Added wind_farm to default calculation order in calculation_handler.py.
  • Major bug fix in FeatureCalcEvalExpression that caused the exec results to not be returned, making the expression useless.
  • Added power_curve_offset_filter to filter data based on contractual power curve.

Version 2.3.2 - 2023-05-09

Authors: Bruno Macedo

Changes:

  • Logging improvements.

Version 2.3.1 - 2023-05-08

Authors: Bruno Macedo

Changes:

  • Changed CalculationHandler.from_type_defaults() to return a list of CalculationHandler if "infer" is used.

Version 2.3.0 - 2023-05-07

Authors: Bruno Macedo

Changes:

  • Added FeatureCalcPowerCP.
  • Added default calculation order for power_meter object type in calculation_handler.py.
  • Changed default reindex behavior of RequiredFeatures.get_data() to "infer".

Version 2.2.0 - 2023-05-05

Authors: Bruno Macedo

Changes:

  • Fixed major bug in PcNNModel that caused save and load don't work when using different python versions. Now it is using default TensorFlow save and load methods, which fix the issue.
  • Added train_period argument to PcModel.
  • Added "infer" option to from_type_defaults in CalculationHandler.

Version 2.1.1 - 2023-04-22

Authors: Bruno Macedo

Changes:

  • Made CalculationHandler return None instead of raising an error when no features where specified.
  • Corrected bug in CalculationHandler.from_calc_types when specifying more than one calculation type.
  • Fixed bug in FeatureCalcChildAggregation and FeatureCalcMonthlyAggregation when using feature_eval_expression.

Version 2.1.0 - 2023-04-18

Authors: Bruno Macedo

Changes:

  • Fixed issue that caused creation of too many clients in postgresql.
  • Improved error handling of FeatureCalcLostPowerAlloc.
  • Added requirement class for alarms called RequiredAlarms.
  • Added feature calculator class FeatureCalcAlarmActive.
  • Updated FEATURE_ORDER in CalculationHandler.
  • Added new class method from_calc_types to CalculationHandler.

Version 2.0.0 - 2023-04-17

Authors: Bruno Macedo

Changes:

  • Major refactoring of code to work with object oriented approach. Below some highlights.
    • Added FeatureCalculator abstract class and all its subclasses, including FeatureCalcChildAggregation, FeatureCalcEvalExpression, FeatureCalcLostPowerAlloc, FeatureCalcMonthlyAggregation, FeatureCalcPowerTheoreticalVestas, FeatureCalcPowerTheoretical and FeatureCalcWFReferenceWS.
    • Added CalculationHandler class to deal with all types of calculation routines.
    • Added CalculationRequirement abstract class and all its subclasses, including RequiredBazefieldAllocations, RequiredCalcModels, RequiredFeatureAttributes, RequiredFeatures and RequiredObjectAttributes.
  • Added automatic tests using pytest.

Version 1.2.3 - 2023-03-24

Authors: Bruno Macedo

Changes:

  • Minor bug fixes in electrical losses calculations.

Version 1.2.2 - 2023-03-21

Authors: Bruno Macedo

Changes:

  • Minor bug fix in ge_power_up, changing feature nacelle_position to nacelle_direction.

Version 1.2.1 - 2023-03-17

Authors: Bruno Macedo

Changes:

  • Fixed bug in power_curve module that caused the power curve to yield a value of zero if it was trained with fixed conditions (happened if you used a period without some features to train).
  • Fixed bug in turbine_feature_calc.calc_active_power_theoretical that caused the function to fail if there was no valid timestamps for initial step.

Version 1.2.0 - 2023-02-14

Authors: Bruno Macedo

Changes:

  • Changed calc_active_power_theoretical to use PcNNModel instead of simple power curve.
  • Changed PcModel.load() to be a class method.

Version 1.1.4 - 2023-02-14

Authors: Bruno Macedo

Changes:

  • Changed how curtailments are handled in calc_active_power_theoretical_contract_vestas.

Version 1.1.3 - 2023-01-27

Authors: Bruno Macedo

Changes:

  • Minor improvements in common_feature_calc and windfarm_feature_calc.

Version 1.1.2 - 2023-01-16

Authors: Bruno Macedo

Changes:

  • Changed calc_active_power_theoretical to skip wind speeds <= 0.

Version 1.1.1 - 2023-01-11

Authors: Bruno Macedo

Changes:

  • Changed PcModel to be an abstract class.
  • update_power_curves now fills default values for x features if they are not present. This avoids errors when using the same model for different turbines that might not have some of the features. Not recommended but it's a workaround for some bugs at the moment.

Version 1.1.0 - 2022-12-21

Authors: Bruno Macedo

Changes:

  • Removed message from TensorFlow that was printed whenever the package was imported.
  • Added power_curve.update_power_curves.
  • Removed function curve_fit.fit_turbine_power_curves as its functionality is replaced by the above function.

Version 1.0.4 - 2022-12-06

Authors: Bruno Macedo

Changes:

  • Changed version control to version.py.
  • Fixed error related to timestamps with negative losses in electrical_loss.calc_cp_power.
  • Updated electrical_loss to accept DateTimeRange.

Version 1.0.3 - 2022-11-15

Authors: Bruno Macedo

Changes:

  • Added operation_period_calc to ge_power_up.
  • Added support to DateTimeRange to ge_power_up.
  • Moved version control to init.py.

Version 1.0.2 - 2022-11-02

Authors: Bruno Macedo

Changes:

  • Fixed time percentage in turbine_feature_calc.calc_lost_power_allocations that caused absurd values when allocation was shorter than 10 min.

Version 1.0.1 - 2022-10-30

Authors: Bruno Macedo

Changes:

  • Fixed electrical_loss.calc_cp_power to invalidate timestamps where CP power is lower than CS power. This usually happens when there are missing Meters in performance_db.

Version 1.0.0 - 2022-10-21

Authors: Bruno Macedo

Changes:

  • Major improvements, specially in the power curve fitting functionality.
  • Created new module power_curve.
  • Neural Network power curve models introduced in power_curve module.
  • Removed aux_functions.
  • Updated electrical_loss to consider a start of operation from each wind farm.
  • Added mahalanobis_cluster_filter to filters. It's a filter that uses K means and mahalanobis distance to remove outliers, having better results than standard STD filter.

Version 0.1.21 - 2022-10-06

Authors: Bruno Macedo

Changes:

  • Changed FeatureCalcPowerTheoreticalVestas to also consider PPC limitation as partial availability.

Version 0.1.20 - 2022-09-28

Authors: Max Daniel

Changes:

  • Small hotfix that had to be made because of the Bazefield 10.1 update. The only change is the removal of any mention to the friendly_name property.

Version 0.1.19 - 2022-09-18

Authors: Bruno Macedo

Changes:

Version 0.1.18 - 2022-09-06

Authors: Bruno Macedo

Changes:

  • Bug fix in ge_power_up due to Pandas changing how dates are saved to SQLite after version 2.1.0. For this code to work after this version, you need to update Pandas to 2.1.1 or higher.

Version 0.1.17 - 2022-07-17

Authors: Bruno Macedo

Changes:

  • Added function_thresh_filter and timeseries_diff_filter to filters.py.

Version 0.1.16 - 2022-07-01

Authors: Bruno Macedo

Changes:

  • Fixed bug when passing DataFrame with all NaN column to flatline_filter.

Version 0.1.15 - 2022-06-30

Authors: Bruno Macedo

Changes:

  • Moved calc_eval_expression_feature to common_feature_calc.
  • Added calc_child_aggregation_feature to common_feature_calc.
  • Added module to calculate wind farm features.

Version 0.1.14 - 2022-06-29

Authors: Bruno Macedo

Changes:

  • Added logging.
  • Added Bazefield upload option to most turbine feature calculation functions.
  • Fixed final check in turbine calc that warned for not calculated timestamps where they should be ignored.

Version 0.1.13 - 2022-06-15

Authors: Bruno Macedo

Changes:

  • Added calculation of Gamesa and ge active_power_theoretical_contract.
  • Added type hints to curve_fit functions.

Version 0.1.12 - 2022-06-06

Authors: Bruno Macedo

Changes:

  • Fixed some errors in calc_active_power_theoretical and calc_active_power_theoretical_contract_vestas that made calculation skip neighbor turbines.

Version 0.1.11 - 2022-06-03

Authors: Bruno Macedo

Changes:

  • Added verbose option in turbine feature calc.

Version 0.1.10 - 2022-05-31

Authors: Bruno Macedo

Changes:

  • Added option to fill values on left or right side of the fitted curve in fill_value_ext on fit_curve function

Version 0.1.9 - 2022-05-25

Authors: Bruno Macedo

Changes:

  • Added option to filter bins with a minimum of points in get_binned_df.

Version 0.1.8 - 2022-05-17

Authors: Bruno Macedo

Changes:

  • Added option to ignore certain turbine features when calculating.

Version 0.1.7 - 2022-05-17

Authors: Bruno Macedo

Changes:

  • Added calculation of lost_power_downtime.

Version 0.1.6 - 2022-05-04

Authors: Bruno Macedo

Changes:

  • Fixed calc_cp_power to use SMF2 data when SMF1 is null.

Version 0.1.5 - 2022-05-01

Authors: Bruno Macedo

Changes:

  • Added calc_lost_power_allocations.

Version 0.1.4 - 2022-05-01

Authors: Bruno Macedo

Changes:

  • Fixed calc_lost_power_curtailment to only consider a curtailment loss if iec_operation_state > 1.

Version 0.1.3 - 2022-05-01

Authors: Bruno Macedo

Changes:

  • Added calc_lost_power_curtailment.

Version 0.1.2 - 2022-05-01

Authors: Bruno Macedo

Changes:

  • Added calculation of active_power_theoretical_contract_vestas and completed active_power_theoretical.

Version 0.1.1 - 2022-04-27

Authors: Bruno Macedo

Changes:

  • Added calculation of active_power_theoretical (still some parts to finish)

Version 0.1.0 - 2022-04-26

Authors: Bruno Macedo

Changes:

  • Added turbine_feature_calc with calculation of iec_operation_state and curtailment_state.

Version 0.0.8 - 2022-04-18

Authors: Bruno Macedo

Changes:

  • Fixed bug where calc_electrical_losses_curve code would brake if there's no data for a specific SPE.

Version 0.0.7 - 2022-04-17

Authors: Bruno Macedo

Changes:

  • Added option to calculate electrical losses from wtg to function calc_electrical_losses_curve.

Version 0.0.6 - 2022-03-18

Authors: Bruno Macedo

Changes:

  • Added application names to pg connections fore better view in pgAdmin dashboards.

Version 0.0.5 - 2022-03-18

Authors: Bruno Macedo

Changes:

  • Fixed bug caused when pg connection was not closed.

Version 0.0.4 - 2022-03-07

Authors: Bruno Macedo

Changes:

  • Fixed bug when calculating energy @cp using electrical losses curve.

Version 0.0.3 - 2022-03-06

Authors: Bruno Macedo

Changes:

  • Fixed bug when trying to calculate power at cp using saved loss curve for Voltalia or Elawan SPEs.

Version 0.0.2 - 2022-03-06

Authors: Bruno Macedo

Changes:

  • Added calculation of power at connection point using electrical losses curves when there's data missing from at least one power meter.

Version 0.0.1 - 2022-03-06

Authors: Bruno Macedo

Changes:

  • Initial release of the package. Contais main functions for calculating electrical losses. Calculation of electrical losses from WTG still needs to be implemented.