1.0.0rc4 (October 29, 2020)¶
This is the fourth 1.0 release candidate.
API Changes¶
- Changed
validation.validator.check_irradiance_day_night
tovalidation.validator.check_day_night()
. This function is now only recommended for instantaneous values. See new functionvalidation.validator.check_day_night_interval()
for non-instantaneous values. (GH465, GH577, GH579) validation.validator.check_ac_power_limits()
andvalidation.validator.check_dc_power_limits()
now accept a Series of day/night bools instead of a Series of solar zenith. This allows for a more careful calculation of day/night bools for non-instantaneous intervals without complicating the AC/DC limit functions. (GH577, GH579)datamodel.QualityFlagFilter
has two new keyword arguments:discard_before_resample
andresample_threshold_percentage
that control how the filter will be applied when resampling. (GH556, GH580)- New functions
metrics.preprocessing.filter_resample()
,metrics.preprocessing.align()
, andmetrics.preprocessing.check_reference_forecast_consistency()
replace functionsmetrics.preprocessing.apply_validation
,metrics.preprocessing.exclude
, andmetrics.preprocessing.resample_and_align
. (GH556, GH580) - Added new_index argument to
utils.compute_aggregate()
to define an index for the computed aggregate. (GH587)(GH590) - Added
solarforecastarbiter.io.reference_observations.bsrn
to initialize reference data from the BSRN network (GH541) (GH604) - Removed
preprocessing.VALIDATION_RESULT_TOTAL_STRING
andpreprocessing.UNDEFINED_DATA_STRING
. - Added CRPS skill score metric
metrics.probabilistic.crps_skill_score()
(GH494) (GH605) - Added
reports.template.build_summary_stats_json()
,metrics.calculator.calculate_summary_statistics()
, andmetrics.calculator.calculate_all_summary_statistics()
to support adding summary statistics to reports (GH355, GH606)
Enhancements¶
- Add
validation.validator.check_day_night_interval()
for determining day/night status for non-instantaneous intervals. (GH577, GH579) - Allow users to render reports without full access to the time series data of
the report’s forecasts and observations. Users with limited permissions on a
report may need to instantiate a
datamodel.Report
object from an api response from the/reports
endpoint manually. (GH585) - Add seasons to metrics category options. (GH552, GH592)
- Allow setting
uncertainty=None
ondatamodel.Observation
to indicate an unknown uncertainty (GH591) - Update
io.utils.ensure_timestamps()
to raise a descriptive TypeError for missing arguments to the underlying function (GH498)(GH595) - Interval label, interval value type, and aggregate type are now validated when creating datamodel objects (GH213) (GH596)
- Add the automatically generated constant_value_units attribute to
datamodel.ProbabilisticForecast
anddatamodel.ProbabilisticForecastConstantValue
(GH470) (GH598) - Enable downloading the forecast/observation metadata and the resampled timeseries from a HTML report (GH354) (GH601)
- Add
io.api.APISession.chunk_value_requests()
for requesting large amounts of data. (GH573)(GH600) - Restructured and rewrote report data preprocessing text to account for new filter/resample pattern and clarify the processes. Added a table that summarizes the filter combinations applied in the report. (GH589, GH602, GH607)
- Added summary statistics for resample and aligned observations, forecasts, and reference forecasts to reports (GH355, GH606)
Bug fixes¶
- Night time validation flag for non-instantaneous data is now calculated based on the percentage of night time points in the interval, rather than the night time flag at the interval label. (GH577, GH579)
- Irradiance limit flags and clear sky exceeded flag for non-instantaneous data now use average solar position over the interval, rather than the solar position at the interval label. (GH579)
- Filtering on flags such as NIGHTTIME may now be applied after resampling so that interval averages are still calculated correctly. (GH556, GH580)
- Allow for scaling of x axis tick frequency on report metric plots to avoid crowding for date category. (GH578) (GH581)
- Fix spacing of plot titles to avoid long names running out of container and Plotly toolbar overlap. (GH577) (GH581)
- Dynamically calculate plot height to avoid truncating long forecast names in total metric plots. (GH576) (GH581) (GH582)
- Fix GEFS file fetching for upgraded model (GH544) (GH584)
- Fixed issue with overlapping table entries for report metric, validation, and preprocessing tables. Tables are now horizontally scrollable to avoid overlap of columns. (GH418) (GH588)
- Fixed bug causing KeyError to be raised when computing an aggregate outside an included observation’s effective_from and effective_until. (GH587)(GH590)
- Fixed bug in process management when fetching NWP files which caused the script to hang indefinitely if a process were killed by the OS (GH343) (GH594)
- Stop errors generated in the report process from being sent to sentry (GH329) (GH597)
- Avoid stacking of forecasts errors in the Total plots in reports and show the full forecast name on hover (GH463) (GH599)
Contributors¶
- Will Holmgren (@wholmgren)
- Leland Boeman (@lboeman)
- Cliff Hansen (@cwhanse)
- Tony Lorenzo (@alorenzo175)
- Justin Sharp (@MrWindAndSolar)
- Aidan Tuohy
- Adam Wigington (@awig)
- David Larson (@dplarson)