1.0.0rc4 (October 29, 2020)¶
This is the fourth 1.0 release candidate.
API Changes¶
- Changed
validation.validator.check_irradiance_day_nighttovalidation.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.QualityFlagFilterhas two new keyword arguments:discard_before_resampleandresample_threshold_percentagethat 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.bsrnto initialize reference data from the BSRN network (GH541) (GH604) - Removed
preprocessing.VALIDATION_RESULT_TOTAL_STRINGandpreprocessing.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.Reportobject from an api response from the/reportsendpoint manually. (GH585) - Add seasons to metrics category options. (GH552, GH592)
- Allow setting
uncertainty=Noneondatamodel.Observationto 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.ProbabilisticForecastanddatamodel.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)