{"id":16393320,"url":"https://github.com/olucaslopes/energygenforecaster","last_synced_at":"2026-05-08T15:49:30.061Z","repository":{"id":154479281,"uuid":"631666807","full_name":"olucaslopes/EnergyGenForecaster","owner":"olucaslopes","description":"Time Series Forecasting app that predicts solar energy generation potential for homeowners across all 5570 Brazilian cities based on historical solar irradiation data","archived":false,"fork":false,"pushed_at":"2023-04-30T13:06:28.000Z","size":9484,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-04T00:49:06.793Z","etag":null,"topics":["autogluon","brazil","energy","forecasting","geopy","ibge","machine-learning","nominatim","open-data","pandas","python","requests","solar","streamlit","streamlit-webapp","time-series","time-series-forecasting"],"latest_commit_sha":null,"homepage":"https://energygenforecaster.streamlit.app","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olucaslopes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-04-23T18:32:30.000Z","updated_at":"2023-05-03T00:16:33.000Z","dependencies_parsed_at":"2023-07-03T20:31:00.020Z","dependency_job_id":null,"html_url":"https://github.com/olucaslopes/EnergyGenForecaster","commit_stats":{"total_commits":28,"total_committers":2,"mean_commits":14.0,"dds":0.1428571428571429,"last_synced_commit":"5c9a1cb66a718793906ed14440df9b7a910b105a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olucaslopes%2FEnergyGenForecaster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olucaslopes%2FEnergyGenForecaster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olucaslopes%2FEnergyGenForecaster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olucaslopes%2FEnergyGenForecaster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olucaslopes","download_url":"https://codeload.github.com/olucaslopes/EnergyGenForecaster/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240252537,"owners_count":19772121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autogluon","brazil","energy","forecasting","geopy","ibge","machine-learning","nominatim","open-data","pandas","python","requests","solar","streamlit","streamlit-webapp","time-series","time-series-forecasting"],"created_at":"2024-10-11T04:52:56.565Z","updated_at":"2026-05-08T15:49:29.998Z","avatar_url":"https://github.com/olucaslopes.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Energy Generation Forecaster\n\n[![Open in Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://energygenforecaster.streamlit.app/)\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://energygenforecaster.streamlit.app/\"\u003e\u003cimg src=\"img/cover.png\" width=\"80%\" align=\"center\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nEnergy 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.\n\n## Features\n\n- Predicts the solar energy generation potential for homeowners across Brazil\n- Uses historical solar irradiation data from open-meteo API\n- Uses IBGE Localidades API to convert lat and lon to a city's ibge code\n- Uses Nominatim and OpenStreetMap API to convert an address to lat and lon\n- Calculates the potential energy generated and the savings per kilowatt-hour (kWh)\n- Provides monthly energy generated and savings estimates based on the user's inputs\n\n## Getting Started\n\nTo run the app locally, please follow these steps:\n\n1. Clone the repository\n\n```\ngit clone https://github.com/olucaslopes/EnergyGenForecaster.git\n```\n\n2. Install the required packages\n\n```\npip install -r requirements.txt\n```\n\n3. Run the app\n\n```\nstreamlit run app.py\n```\n\n## How to Use\n\n1. Type your address or change your location by clicking the `Alterar` button.\n\n2. Enter the total area in square meters of your solar panels, the average efficiency percentage, and the average energy price per kilowatt-hour (kWh).\n\n3. The app will automatically calculate and show the potential energy generated and savings based on the historical solar irradiation data for the selected location.\n\n4. The monthly energy generated and savings estimates will be displayed.\n\n## Architecture\n\n```mermaid\nflowchart TB\n    subgraph one[\"User Input\"]\n    loc_input[\"📌 Location\"]\n    area_input[\"📐 Panel Area\"]\n    efic_input[\"💱 Panel Efficiency\"]\n    energy_price[\"💵 Energy Price\"]\n    end\n\n    loc_input-- \"Address\" --\u003enominatim[\"📍 Nominatim OpenStreetMap API\"]\n    nominatim-- \"Latitude and Longitude\" --\u003eibge[\"🗺️ IBGE Localidades API\"]\n    ibge -- \"City Code\" --\u003e ml[\"🔍 Machine Learning Model\"]\n    ml -- \"Predicted Irradiation\" --\u003e calc[\"⚡ Energy\"]\n    area_input --\u003e calc\n    efic_input --\u003e calc\n\n    subgraph two[\"Historical Data\"]\n    database[\"🗃️ Cloud Database\"]\n    meteo[\"🌦️ OpenMeteo API\"]\n    meteo -- \"City Irradiation Data\" --\u003e ml\n    database -- \"Historical Data from \u003cbr\u003eall Cities for Training\" --\u003e ml\n    end\n\n    subgraph three[\"Calculations\"]\n    calc -- \"Predicted Energy\" --\u003e savings[\"💲 Savings\"]\n    energy_price --\u003e savings\n    end\n\n```\n\n## APIs Used\n\n- IBGE Localidades API: used to convert lat and lon to a city's ibge code\n- Open-Meteo API: used to get the historical irradiation data for the respective city (or county)\n- Nominatim and OpenStreetMap API: used to convert an address to lat and lon\n\n## Contact\n\nIf you have any questions or suggestions, please feel free to [contact me on LinkedIn](https://www.linkedin.com/in/o-lucas-lopes).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folucaslopes%2Fenergygenforecaster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folucaslopes%2Fenergygenforecaster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folucaslopes%2Fenergygenforecaster/lists"}