This is the first 1.0 release candidate.
- Added :py
solarforecastarbiter.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 :py
solarforecastarbiter.validation.tasks.validate_daily_defaults
to validate all observations using the immediate validation function along with stale and interpolated flags (482
) (453
) - Added :py
solarforecastarbiter.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 tovalidate
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 :py
solarforecastarbiter.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 :py
solarforecastarbiter.validation.tasks.fetch_and_validate_observation
and :pysolarforecastarbiter.validation.tasks.fetch_and_validate_all_observations
(484
) - Added support for probabilistic persistence forecasts with :py
solarforecastarbiter.reference_forecasts.persistence.persistence_probabilistic
and :pysolarforecastarbiter.reference_forecasts.persistence.persistence_probabilistic_timeofday
(195
) (434
) - :py
solarforecastarbiter.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 :py
solarforecastarbiter.io.reference_observations.eia
module. (431
) (485
) - Added :py
solarforecastarbiter.datamodel.ConstantCost
, :pysolarforecastarbiter.datamodel.TimeOfDayCost
, :pysolarforecastarbiter.datamodel.DatetimeCost
, :pysolarforecastarbiter.datamodel.ErrorBandCost
, and :pysolarforecastarbiter.datamodel.Cost
and added :pysolarforecastarbiter.metrics.deterministic.cost
, and addedcosts
kwarg to :pysolarforecastarbiter.metrics.preprocessing.process_forecast_observations
to support calculating deterministic cost metrics (487
) - Added a
cost
parameter and removedcost_per_unit_error
from :pysolarforecastarbiter.datamodel.ForecastObservation
, :pysolarforecastarbiter.datamodel.ForecastAggregate
, and :pysolarforecastarbiter.datamodel.ProcessedForecastObservation
and added thecosts
parameter to :pysolarforecastarbiter.datamodel.ReportParameters
to support calculating cost metrics in reports (487
) - Removed :py
solarforecastarbiter.metrics.valuation
(487
) - Add :py
solarforecastarbiter.reference_forecasts.make_latest_probabilistic_persistence_forecasts
to generate reference probabilistic persistence forecasts (490
) - :py
solarforecastarbiter.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 byFloat64Index([25.0, 50.0, 75.0], dtype='float64')
they are now described byIndex(['25.0', '50.0', '75.0'], dtype='object')
. (496
) - :py
solarforecastarbiter.io.utils.serialize_timeseries
and :pysolarforecastarbiter.io.utils.deserialize_timeseries
can now handle DataFrames in addition to Series. (495
,496
) - :py
solarforecastarbiter.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 :py
solarforecastarbiter.metrics.preprocessing.apply_fill
that drops or fills missing ornumpy.nan
values with the last valid value or with a float. (423
) (493
) - Added new arguments forecast_fill_method, start, and end to :py
solarforecastarbiter.metrics.preprocessing.process_forecast_observations
(423
) (493
)
- 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
) - :py
solarforecastarbiter.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
)
- 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 :py
solarforecastarbiter.validation.validator.detect_clipping
(484
) - Fixed an issue where data for object pairs with forecast_type of event caused an AttributeError in the :py
solarforecastarbiter.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
)
- Will Holmgren (
wholmgren
) - Leland Boeman (
lboeman
) - Cliff Hansen (
cwhanse
) - Tony Lorenzo (
alorenzo175
) - Justin Sharp (
MrWindAndSolar
) - Aidan Tuohy
- Adam Wigington (
awig
) - David Larson (
dplarson
)