Solar Forecast Arbiter Design
The Solar Forecast Arbiter is an open source framework for the evaluation of solar irradiance, solar power and net-load forecasts. It is comprised of three software components: The API, Dashboard and Core library.
Solar Forecast Arbiter Dashboard
The Dashboard is a website providing a graphical user interface for the Solar Forecast Arbiter framework. It provides webforms for exchanging data with the API and requesting analysis. It leverages the Core library to create visualizations for uploaded data and reports. The Dashboard is a Python Flask application that makes extensive use of Jinja2 templates.
Alpha Version: https://dashboard.solarforecastarbiter.org/
Solar Forecast Arbiter Core:
The Core library contains definitions for the data structures used throughout the framework. It also contains all of the data acquisition, data processing, analysis, and visualization code to be used by the other components of the framework. The core library is written in Python and makes extensive use of libraries such as pvlib python, pandas, xarray, and bokeh.
Solar Forecast Arbiter API
The API is a HTTP REST API for programatically exchanging data with the Solar Forecast Arbiter. The API handles all user authentication and database interaction. To handle requests, the API adds to a queue of tasks to be performed by worker processes. Because the API is closely tied to the Database and Queue, it contains code for initializing these services. The API is a Python Flask application that makes extensive use of sqlalchemy, rq(Redis Queue), and marshmallow.
Alpha Version/Documentation: https://api.solarforecastarbiter.org/
The alpha release of the Solar Forecast Arbiter is hosted on a server running CentOS at a datacenter at the University of Arizona. The components are run on an OKD (Origin Kubernetes Distribution) cluster and depend on a separate MYSQL server for data storage. The infrastructure of the Solar Forecast Arbiter is documented in detail in our Systems Layer Setup document.