Skip to content

Latest commit

 

History

History
144 lines (133 loc) · 7.78 KB

File metadata and controls

144 lines (133 loc) · 7.78 KB

1.0.0rc1 (July 6, 2020)

This is the first 1.0 release candidate.

API Changes

  • Added :pysolarforecastarbiter.reference_forecasts.utils.check_persistence_compatibility to check if a pair of Forecast and Observation objects are compatible for making a persistence forecast (478)
  • Added :pysolarforecastarbiter.validation.tasks.validate_daily_defaults to validate all observations using the immediate validation function along with stale and interpolated flags (482) (453)
  • Added :pysolarforecastarbiter.validation.tasks.apply_immediate_validation, :pysolarforecastarbiter.validation.tasks.apply_daily_validation, and :pysolarforecastarbiter.validation.tasks.apply_validation convience functions (482)
  • The dailyvalidation command of the CLI has been renamed to validate and a new --only-missing/--not-only-missing flag may be used to run validation only for periods that have not been previously validated (484)
  • Added :pysolarforecastarbiter.api.APISession.get_observation_values_not_flagged to find days where an observation is not flagged with a given flag (484)
  • Removed validation.tasks.immediate_observation_validation, validation.tasks.daily_single_observation_validation, and validation.tasks.daily_observation_validation in favor of :pysolarforecastarbiter.validation.tasks.fetch_and_validate_observation and :pysolarforecastarbiter.validation.tasks.fetch_and_validate_all_observations (484)
  • Added support for probabilistic persistence forecasts with :pysolarforecastarbiter.reference_forecasts.persistence.persistence_probabilistic and :pysolarforecastarbiter.reference_forecasts.persistence.persistence_probabilistic_timeofday (195) (434)
  • :pysolarforecastarbiter.reports.figures.plotly_figures.timeseries_plots now returns a third element to represent the probability vs. time plot if needed, otherwise this element is None. (467)
  • Added capability to import reference data from the EIA Open Data API in the :pysolarforecastarbiter.io.reference_observations.eia module. (431) (485)
  • Added :pysolarforecastarbiter.datamodel.ConstantCost, :pysolarforecastarbiter.datamodel.TimeOfDayCost, :pysolarforecastarbiter.datamodel.DatetimeCost, :pysolarforecastarbiter.datamodel.ErrorBandCost, and :pysolarforecastarbiter.datamodel.Cost and added :pysolarforecastarbiter.metrics.deterministic.cost, and added costs kwarg to :pysolarforecastarbiter.metrics.preprocessing.process_forecast_observations to support calculating deterministic cost metrics (487)
  • Added a cost parameter and removed cost_per_unit_error from :pysolarforecastarbiter.datamodel.ForecastObservation, :pysolarforecastarbiter.datamodel.ForecastAggregate, and :pysolarforecastarbiter.datamodel.ProcessedForecastObservation and added the costs parameter to :pysolarforecastarbiter.datamodel.ReportParameters to support calculating cost metrics in reports (487)
  • Removed :pysolarforecastarbiter.metrics.valuation (487)
  • Add :pysolarforecastarbiter.reference_forecasts.make_latest_probabilistic_persistence_forecasts to generate reference probabilistic persistence forecasts (490)
  • :pysolarforecastarbiter.io.api.get_probabilistic_forecast_values now returns a DataFrame with string column names. It previously returned a DataFrame with floats for column names. For example, if the columns were previously described by Float64Index([25.0, 50.0, 75.0], dtype='float64') they are now described by Index(['25.0', '50.0', '75.0'], dtype='object'). (496)
  • :pysolarforecastarbiter.io.utils.serialize_timeseries and :pysolarforecastarbiter.io.utils.deserialize_timeseries can now handle DataFrames in addition to Series. (495, 496)
  • :pysolarforecastarbiter.reference_forecasts.utils.get_data_start_end now requires an issue_time argument (497)
  • Added a forecast_fill_method parameter to :pysolarforecastarbiter.datamodel.ReportParameters (423) (493)
  • Added :pysolarforecastarbiter.metrics.preprocessing.apply_fill that drops or fills missing or numpy.nan values with the last valid value or with a float. (423) (493)
  • Added new arguments forecast_fill_method, start, and end to :pysolarforecastarbiter.metrics.preprocessing.process_forecast_observations (423) (493)

Enhancements

  • Support parsing of Site climate zones from the API (481)
  • Reapply validation to Observation data when fetched for a Report (376)
  • Added the 'DAILY VALIDATION APPLIED' quality flag to ensure daily validation is applied to all observation values (377) (484)
  • :pysolarforecastarbiter.validation.tasks.fetch_and_validate_observation and :pysolarforecastarbiter.validation.tasks.fetch_and_validate_all_observations can make use of :pysolarforecastarbiter.api.APISession.get_observation_values_not_flagged in order to only validate periods that have not yet had daily validation applied (377) (484)
  • Reference probabilistic forecasts provided using the Persistence Ensemble (PeEn) method. (195) (434)
  • Reports can be created for probabilistic forecasts. (266, 467)
  • Added net load reference observations from the US ISOs/RTOs: CAISO, ERCOT, ISO-NE, MISO, NYISO, PJM, and SPP. (431) (485)
  • Implemented the calculation deterministic cost metrics in reports, including a constant cost factor, a time-of-day varying factor, a datetime varying factor, and a cost that depends on the magnitude of the error. (487) (501) (126) (492)
  • Allow daily persistence forecasts to start at anytime instead of restricted to midnight UTC (497) (471)
  • Added support for filling missing and numpy.nan data for forecasts. (423) (493)

Bug fixes

  • Check if a Forecast and Observation are compatible for generating a persistence forecast before creating reference persistence forecasts (472) (478)
  • When applying validation, only the 'USER FLAGGED' flag is preserved instead of all previous flags (484)
  • Drop NaN before computing histogram when applying :pysolarforecastarbiter.validation.validator.detect_clipping (484)
  • Fixed an issue where data for object pairs with forecast_type of event caused an AttributeError in the :pysolarforecastarbiter.io.api module. (486, 489)
  • Fix ambiguity in forecast issue time of day (497)
  • Fix data start/end for day of week net load persistence (497)
  • Fix issue with inability to create ProbabilisticForecast and ProbabilisticForecastConstantValue from Forecast.from_dict. (502, 503)
  • Fix missing cells in validation, preprocessing, and metrics tables when an object did not contain the relevant data, and ensure correct ordering in PDF tables. (504, 512, 513)
  • Fix bug where long forecast names were cut off when used as x axis labels on total metrics plots. (515)

Contributors

  • Will Holmgren (wholmgren)
  • Leland Boeman (lboeman)
  • Cliff Hansen (cwhanse)
  • Tony Lorenzo (alorenzo175)
  • Justin Sharp (MrWindAndSolar)
  • Aidan Tuohy
  • Adam Wigington (awig)
  • David Larson (dplarson)