Skip to content

Solar Maintenance App

Costas Yiallourides edited this page Jan 20, 2025 · 1 revision

Overview

A project designed to manage and analyze solar energy production data, featuring data fetching, processing, forecasting, and visualisation capabilities.

Architecture

The Solar Maintenance App is organized into several interconnected modules. Below is the architecture diagram to illustrate the relationships between these modules:

solar_maintenance_structure

Modules and Responsibilities

Each module plays a specific role in the workflow:

  • solar_maintenance_app.py: Contains the main entry point for the Solar Maintenance App.
  • config.py: App configurations.
  • data_fetch.py: Fetching weather and reporting data. Reporting data is fetched using frequenz-client-reporting-python.
  • data_processing.py: Data cleaning and preparation.
  • models.py: Prediction models for solar production.
  • plot_manager.py: Provides the PlotManager class for managing the creation, layout, and base styling of figures and axes.
  • plotter_data_preparer.py: Prepares data for visualisations.
  • plotter.py: Generates the visualisations.
  • plotter_config.py: Configuration module for plot data preparation and visualisation.
  • plotter_styles.py: Contains the plot style strategies for the plotter module.
  • translator.py: Enables localisation of plot text.
  • weather_api.py: A separate module that interfaces with frequenz-api-weather.
  • notification_service.py: A separate module that will be integrated in the future to provide alert notifications for system component events.

Project folder structure

frequenz/lib/notebooks/solar/maintenance/
├── config.py
├── data_fetch.py
├── data_processing.py
├── models.py
├── plot_manager.py
├── plot_styles.py
├── plotter.py
├── plotter_config.py
├── plotter_data_preparer.py
├── solar_maintenance_app.py
└── translator.py
Clone this wiki locally