Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/olucaslopes/energygenforecaster
Time Series Forecasting app that predicts solar energy generation potential for homeowners across all 5570 Brazilian cities based on historical solar irradiation data
https://github.com/olucaslopes/energygenforecaster
autogluon brazil energy forecasting geopy ibge machine-learning nominatim open-data pandas python requests solar streamlit streamlit-webapp time-series time-series-forecasting
Last synced: 28 days ago
JSON representation
Time Series Forecasting app that predicts solar energy generation potential for homeowners across all 5570 Brazilian cities based on historical solar irradiation data
- Host: GitHub
- URL: https://github.com/olucaslopes/energygenforecaster
- Owner: olucaslopes
- Created: 2023-04-23T18:32:30.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-04-30T13:06:28.000Z (over 1 year ago)
- Last Synced: 2024-01-29T07:37:08.669Z (9 months ago)
- Topics: autogluon, brazil, energy, forecasting, geopy, ibge, machine-learning, nominatim, open-data, pandas, python, requests, solar, streamlit, streamlit-webapp, time-series, time-series-forecasting
- Language: Python
- Homepage: https://energygenforecaster.streamlit.app
- Size: 9.04 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Energy Generation Forecaster
[![Open in Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://energygenforecaster.streamlit.app/)
Energy Generation Forecaster is a time series forecasting app that predicts solar energy generation potential for homeowners across all 5570 Brazilian cities based on historical solar irradiation data. This project was developed to help homeowners accurately predict the energy they could generate and the savings they could have by installing solar panels on their property.
## Features
- Predicts the solar energy generation potential for homeowners across Brazil
- Uses historical solar irradiation data from open-meteo API
- Uses IBGE Localidades API to convert lat and lon to a city's ibge code
- Uses Nominatim and OpenStreetMap API to convert an address to lat and lon
- Calculates the potential energy generated and the savings per kilowatt-hour (kWh)
- Provides monthly energy generated and savings estimates based on the user's inputs## Getting Started
To run the app locally, please follow these steps:
1. Clone the repository
```
git clone https://github.com/olucaslopes/EnergyGenForecaster.git
```2. Install the required packages
```
pip install -r requirements.txt
```3. Run the app
```
streamlit run app.py
```## How to Use
1. Type your address or change your location by clicking the `Alterar` button.
2. Enter the total area in square meters of your solar panels, the average efficiency percentage, and the average energy price per kilowatt-hour (kWh).
3. The app will automatically calculate and show the potential energy generated and savings based on the historical solar irradiation data for the selected location.
4. The monthly energy generated and savings estimates will be displayed.
## Architecture
```mermaid
flowchart TB
subgraph one["User Input"]
loc_input["π Location"]
area_input["π Panel Area"]
efic_input["π± Panel Efficiency"]
energy_price["π΅ Energy Price"]
endloc_input-- "Address" -->nominatim["π Nominatim OpenStreetMap API"]
nominatim-- "Latitude and Longitude" -->ibge["πΊοΈ IBGE Localidades API"]
ibge -- "City Code" --> ml["π Machine Learning Model"]
ml -- "Predicted Irradiation" --> calc["β‘ Energy"]
area_input --> calc
efic_input --> calcsubgraph two["Historical Data"]
database["ποΈ Cloud Database"]
meteo["π¦οΈ OpenMeteo API"]
meteo -- "City Irradiation Data" --> ml
database -- "Historical Data from
all Cities for Training" --> ml
endsubgraph three["Calculations"]
calc -- "Predicted Energy" --> savings["π² Savings"]
energy_price --> savings
end```
## APIs Used
- IBGE Localidades API: used to convert lat and lon to a city's ibge code
- Open-Meteo API: used to get the historical irradiation data for the respective city (or county)
- Nominatim and OpenStreetMap API: used to convert an address to lat and lon## Contact
If you have any questions or suggestions, please feel free to [contact me on LinkedIn](https://www.linkedin.com/in/o-lucas-lopes).