{% extends base_template %} {% import "macros.j2" as macros with context %} {% set report_name = report.report_parameters.name %} {% block body %} {% block report_title %}

{{ report_name }}

{% endblock %} {% block report_description %}

This report of solar forecast accuracy was automatically generated using the Solar Forecast Arbiter. Please see our GitHub repository for known issues with the reports or to create a new issue.

{% endblock %} {% block download %}{% endblock %} {% block toc %} {% endblock %} {% block errors %} {% if report.raw_report.messages| length > 0 %}
{% for mesg in report.raw_report.messages %}
{{ mesg.message }}
{% endfor %}
{% endif %} {% endblock %} {% block reportmetadata %}

Report Metadata

{% set costs = report.report_parameters.costs %} {% if costs | length > 0 %}

Cost Parameters

{% for cost in costs %}
{{ cost.to_dict() | pretty_json }}
{% endfor %} {% endif %} {% endblock %} {% block data %}

Data

This report includes forecast and observation data available from {{ report.report_parameters.start }} to {{ report.report_parameters.end }}. {% endblock %} {% block obsandfx %}

Observations and Forecasts

{% include "obsfx_table.html" %} {% if timeseries_spec is defined %}

The plots below show the realigned and resampled time series of observation and forecast data as well as the distribution of forecast vs observation data.

Controls to pan, zoom, and save the plot are shown on the right. Clicking on an item in the legend will hide/show it.

{% if includes_distribution %}

For forecasts parameterized symmetrically around the 50th percentile, brighter colors indicate percentiles farther from the 50th percentile and darker colors indicate percentiles closer to the 50th percentile. For forecasts parameterized asymmetrically around the 50th percentile, brighter colors indicate smaller percentiles and darker colors indicate larger percentiles. Use the hover tool to determine the percentile.

{% endif %}
{% endif %} {% if timeseries_prob_spec is defined %}

The plot below shows probability vs. time for probabilistic forecasts with axis='x'.

{% endif %} {% endblock %} {% block datavalidation %}

Data Validation

{% include "data_validation_pre_text" %} {% for filter in report.report_parameters.filters %} {% if filter.__class__.__name__ == 'QualityFlagFilter' %} {% set valtable = True %} {{ macros.validation_table(report.raw_report.processed_forecasts_observations, filter.quality_flags) }}
{% endif %} {% endfor %} {% if valtable | default(False) %}
No filters applied
{% endif %} {% include "data_validation_post_text" %} {% endblock %} {% block dataresampleandalign %}

Data Resampling and Alignment

{% include "data_resampling_preamble" %} {{ macros.preprocessing_table(report.raw_report.processed_forecasts_observations) }}
{% include "data_resampling_postamble" %} {% endblock %} {% block metrics %}

Metrics

{% include "metrics_meta_table.html" %}

A table of metrics over the entire study period and figures for the selected categories are shown below. Metrics may be downloaded in CSV format by clicking here.

{{ macros.metric_table_fx_vert(report.raw_report.metrics, "total", report.report_parameters.metrics) }}
{% for category in report.report_parameters.categories %}

{{ human_categories[category].title() }} Analysis

{% if category_blurbs is defined %}

{{ category_blurbs[category] }}

{% endif %}
{% for metric in report.report_parameters.metrics %} {% for rep_fig in report.raw_report.plots.figures %} {% if rep_fig.category == category and rep_fig.metric == metric %} {% set plot_id = (category+'_'+metric+'_'+rep_fig.name) | figure_name_filter %}
{% endif %} {% endfor %} {% endfor %} {% endfor %}
{% include "load_metrics.html" %} {{ macros.download_csv_script () | safe }} {% endblock %} {% block versions %}

Versions

{% include "versions.html" %} {% endblock %} {% endblock %}