From e9021a6e409b34b0abf4422b51d6dcec9c56d240 Mon Sep 17 00:00:00 2001 From: Frauke Albrecht Date: Tue, 4 Jun 2024 14:02:21 -0300 Subject: [PATCH] Tryolabs hourly predictions (#125) * quartz_solar_forecast/weather/open_meteo.py * hourly predictions adapt dates * hourly time freq * add image model comparison * change method name * filter possible negative model output to 0 * change example image in readme --- README.md | 6 ++++-- images/model_data_comparison_hr.png | Bin 0 -> 106721 bytes quartz_solar_forecast/forecast.py | 4 ++-- quartz_solar_forecast/forecasts/v2.py | 6 ++++-- quartz_solar_forecast/weather/open_meteo.py | 8 ++++---- tests/test_forecast_no_ts.py | 7 ++++--- 6 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 images/model_data_comparison_hr.png diff --git a/README.md b/README.md index bbcf78f5..54295e22 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # Quartz Solar Forecast + [![All Contributors](https://img.shields.io/badge/all_contributors-17-orange.svg?style=flat-square)](#contributors-) + The aim of the project is to build an open source PV forecast that is free and easy to use. @@ -131,7 +133,7 @@ To use this model specify `model="xgb"` in `run_forecast(site=site, model="xgb", The following plot shows example predictions of both models for the same time period. Additionally for the Gradient Boosting model (default) the results from the two different data sources are shown. -![model comparison](images/model_data_comparison.png) +![model comparison](images/model_data_comparison_hr.png) _Predictions using the two different models and different data sources._ ## Known restrictions @@ -139,7 +141,7 @@ _Predictions using the two different models and different data sources._ - The model is trained on [UK MetOffice](https://www.metoffice.gov.uk/services/data/met-office-weather-datahub) NWPs, but when running inference we use [GFS](https://www.ncei.noaa.gov/products/weather-climate-models/global-forecast) data from [Open-meteo](https://open-meteo.com/). The differences between GFS and UK MetOffice could led to some odd behaviours. - Depending, whether the timestamp for the prediction lays more than 90 days in the past or not, different data sources for the NWP are used. If we predict within the last 90 days, we can use ICON or GFS from the open-meteo Weather Forecast API. Since ICON doesn't provide visibility, this parameter is queried from GFS in any case. If the date for the prediction is further back in time, a reanalysis model of historical data is used (open-meteo | Historical Weather API). The historical weather API doesn't't provide visibility at all, that's why it's set to a maximum of 24000 meter in this case. This can lead to some loss of precision. - The model was trained and tested only over the UK, applying it to other geographical regions should be done with caution. -- When using the XGBoost model, only predictions within the last 90 days are available for data consistency. +- When using the XGBoost model, only hourly predictions within the last 90 days are available for data consistency. ## Evaluation diff --git a/images/model_data_comparison_hr.png b/images/model_data_comparison_hr.png new file mode 100644 index 0000000000000000000000000000000000000000..d10b13417518f3c24f6def464d0ea524584dd32e GIT binary patch literal 106721 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�Hu)Bnq{zp{c&;6w&OeZYi=MH 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

ViN&v!ml{K1(i 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 Lu15ZaI}iQ~a?fp9 literal 0 HcmV?d00001 diff --git a/quartz_solar_forecast/forecast.py b/quartz_solar_forecast/forecast.py index 6c923c80..6b4f389a 100644 --- a/quartz_solar_forecast/forecast.py +++ b/quartz_solar_forecast/forecast.py @@ -51,10 +51,10 @@ def predict_tryolabs( # set start and end time, if no time is given use current time if ts is None: start_date = pd.Timestamp.now().strftime("%Y-%m-%d") - start_time = pd.Timestamp.now().round("15min") + start_time = pd.Timestamp.now().round(freq='h') else: start_date = pd.Timestamp(ts).strftime("%Y-%m-%d") - start_time = pd.Timestamp(ts).round("15min") + start_time = pd.Timestamp(ts).round(freq='h') end_time = start_time + pd.Timedelta(hours=48) start_date_datetime = datetime.strptime(start_date, "%Y-%m-%d") diff --git a/quartz_solar_forecast/forecasts/v2.py b/quartz_solar_forecast/forecasts/v2.py index 20b59d78..f3643271 100644 --- a/quartz_solar_forecast/forecasts/v2.py +++ b/quartz_solar_forecast/forecasts/v2.py @@ -124,7 +124,7 @@ def get_data( weather_service = WeatherService() - weather_data = weather_service.get_15_minutely_weather( + weather_data = weather_service.get_hourly_weather( latitude, longitude, start_date, end_date ) @@ -220,7 +220,9 @@ def predict_power_output( predictions_df = pd.DataFrame(predictions, columns=["prediction"]) final_data = cleaned_data.join(predictions_df) # set night predictions to 0 - final_data.loc[final_data["is_day"]==0, "prediction"] = 0 + final_data.loc[final_data["is_day"] == 0, "prediction"] = 0 + # set negative output to 0 + final_data.loc[final_data["prediction"] < 0, "prediction"] = 0 df = final_data[[self.DATE_COLUMN, "prediction"]] df = df.rename(columns={"prediction": "power_wh"}) return df diff --git a/quartz_solar_forecast/weather/open_meteo.py b/quartz_solar_forecast/weather/open_meteo.py index d3c743ec..f5082440 100644 --- a/quartz_solar_forecast/weather/open_meteo.py +++ b/quartz_solar_forecast/weather/open_meteo.py @@ -43,7 +43,7 @@ def _build_url( str The URL for the OpenMeteo API. """ - url = "https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&minutely_15={variables}&start_date={start_date}&end_date={end_date}&timezone=GMT".format( + url = "https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&hourly={variables}&start_date={start_date}&end_date={end_date}&timezone=GMT".format( latitude=latitude, longitude=longitude, variables=",".join(variables), @@ -99,11 +99,11 @@ def _validate_date_format(self, start_date: str, end_date: str) -> None: f"Invalid date format or range. Please use YYYY-MM-DD and ensure end_date is greater than start_date. Error: {str(e)}" ) - def get_15_minutely_weather( + def get_hourly_weather( self, latitude: float, longitude: float, start_date: str, end_date: str ) -> pd.DataFrame: """ - Get 15 minutely weather data ranging from 3 months ago up to 15 days ahead (forecast). + Get hourly weather data ranging from 3 months ago up to 15 days ahead (forecast). Parameters ---------- @@ -150,7 +150,7 @@ def get_15_minutely_weather( ] url = self._build_url(latitude, longitude, start_date, end_date, variables) response = requests.get(url) - data = response.json()["minutely_15"] + data = response.json()["hourly"] df = pd.DataFrame(data) df["time"] = pd.to_datetime(df["time"]) diff --git a/tests/test_forecast_no_ts.py b/tests/test_forecast_no_ts.py index 49adfc00..241db1f6 100644 --- a/tests/test_forecast_no_ts.py +++ b/tests/test_forecast_no_ts.py @@ -8,8 +8,9 @@ def test_run_forecast_no_ts(): site = PVSite(latitude=51.75, longitude=-1.25, capacity_kwp=1.25) current_ts = pd.Timestamp.now().round("15min") + current_hr = pd.Timestamp.now().round(freq='h') - # run ocf model with no ts + # run gradient boosting model with no ts predications_df = run_forecast(site=site, model="gb") # check current ts agrees with dataset assert predications_df.index.min() == current_ts @@ -18,10 +19,10 @@ def test_run_forecast_no_ts(): print(f"Current time: {current_ts}") print(f"Max: {predications_df['power_wh'].max()}") - # run tryolabs model with no ts + # run xgb model with no ts predications_df = run_forecast(site=site, model="xgb") # check current ts agrees with dataset - assert predications_df.index.min() == current_ts + assert predications_df.index.min() == current_hr print(predications_df) print(f"Current time: {current_ts}")