This is the fourth 1.0 release candidate.
- Changed
validation.validator.check_irradiance_day_night
to :pyvalidation.validator.check_day_night
. This function is now only recommended for instantaneous values. See new function :pyvalidation.validator.check_day_night_interval
for non-instantaneous values. (465
,577
,579
) - :py
validation.validator.check_ac_power_limits
and :pyvalidation.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. (577
,579
) - :py
datamodel.QualityFlagFilter
has two new keyword arguments:discard_before_resample
andresample_threshold_percentage
that control how the filter will be applied when resampling. (556
,580
) - New functions :py
metrics.preprocessing.filter_resample
, :pymetrics.preprocessing.align
, and :pymetrics.preprocessing.check_reference_forecast_consistency
replace functionsmetrics.preprocessing.apply_validation
,metrics.preprocessing.exclude
, andmetrics.preprocessing.resample_and_align
. (556
,580
) - Added new_index argument to :py
utils.compute_aggregate
to define an index for the computed aggregate. (587
)(590
) - Added :py
solarforecastarbiter.io.reference_observations.bsrn
to initialize reference data from the BSRN network (541
) (604
) - Removed
preprocessing.VALIDATION_RESULT_TOTAL_STRING
andpreprocessing.UNDEFINED_DATA_STRING
. - Added CRPS skill score metric :py
metrics.probabilistic.crps_skill_score
(494
) (605
) - Added :py
reports.template.build_summary_stats_json
, :pymetrics.calculator.calculate_summary_statistics
, and :pymetrics.calculator.calculate_all_summary_statistics
to support adding summary statistics to reports (355
,606
)
- Add :py
validation.validator.check_day_night_interval
for determining day/night status for non-instantaneous intervals. (577
,579
) - 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 :py
datamodel.Report
object from an api response from the/reports
endpoint manually. (585
) - Add seasons to metrics category options. (
552
,592
) - Allow setting
uncertainty=None
on :pydatamodel.Observation
to indicate an unknown uncertainty (591
) - Update :py
io.utils.ensure_timestamps
to raise a descriptive TypeError for missing arguments to the underlying function (498
)(595
) - Interval label, interval value type, and aggregate type are now validated when creating datamodel objects (
213
) (596
) - Add the automatically generated constant_value_units attribute to :py
datamodel.ProbabilisticForecast
and :pydatamodel.ProbabilisticForecastConstantValue
(470
) (598
) - Enable downloading the forecast/observation metadata and the resampled timeseries from a HTML report (
354
) (601
) - Add :py
io.api.APISession.chunk_value_requests
for requesting large amounts of data. (573
)(600
) - 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. (
589
,602
,607
) - Added summary statistics for resample and aligned observations, forecasts, and reference forecasts to reports (
355
,606
)
- 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. (
577
,579
) - 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. (
579
) - Filtering on flags such as NIGHTTIME may now be applied after resampling so that interval averages are still calculated correctly. (
556
,580
) - Allow for scaling of x axis tick frequency on report metric plots to avoid crowding for date category. (
578
) (581
) - Fix spacing of plot titles to avoid long names running out of container and Plotly toolbar overlap. (
577
) (581
) - Dynamically calculate plot height to avoid truncating long forecast names in total metric plots. (
576
) (581
) (582
) - Fix GEFS file fetching for upgraded model (
544
) (584
) - Fixed issue with overlapping table entries for report metric, validation, and preprocessing tables. Tables are now horizontally scrollable to avoid overlap of columns. (
418
) (588
) - Fixed bug causing KeyError to be raised when computing an aggregate outside an included observation's effective_from and effective_until. (
587
)(590
) - Fixed bug in process management when fetching NWP files which caused the script to hang indefinitely if a process were killed by the OS (
343
) (594
) - Stop errors generated in the report process from being sent to sentry (
329
) (597
) - Avoid stacking of forecasts errors in the Total plots in reports and show the full forecast name on hover (
463
) (599
)
- Will Holmgren (
wholmgren
) - Leland Boeman (
lboeman
) - Cliff Hansen (
cwhanse
) - Tony Lorenzo (
alorenzo175
) - Justin Sharp (
MrWindAndSolar
) - Aidan Tuohy
- Adam Wigington (
awig
) - David Larson (
dplarson
)