AQI_prediction / app.py
Davidkryckan's picture
Update app.py
f785839
import gradio as gr
import numpy as np
from PIL import Image
import requests
import hopsworks
import joblib
project = hopsworks.login()
fs = project.get_feature_store()
mr = project.get_model_registry()
model = mr.get_model("gradient_boost_model", version=1)
model_dir = model.download()
model = joblib.load(model_dir + "/model.pkl")
def greet(AQI):
response = requests.get("https://api.open-meteo.com/v1/forecast?latitude=62.39&longitude=17.31&daily=weathercode,temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,sunrise,sunset,precipitation_sum,rain_sum,showers_sum,snowfall_sum,precipitation_hours,windspeed_10m_max,windgusts_10m_max,winddirection_10m_dominant,shortwave_radiation_sum,et0_fao_evapotranspiration&timezone=Europe%2FBerlin")
data = response.json()
dates = data['daily']['time']
temperature_2m_max = data['daily']['temperature_2m_max']
temperature_2m_min = data['daily']['temperature_2m_min']
apparent_temperature_max = data['daily']['apparent_temperature_max']
apparent_temperature_min = data['daily']['apparent_temperature_min']
precipitation_sum = data['daily']['precipitation_sum']
rain_sum = data['daily']['rain_sum']
showers_sum = data['daily']['showers_sum']
snowfall_sum = data['daily']['snowfall_sum']
precipitation_hours = data['daily']['precipitation_hours']
windspeed_10m_max = data['daily']['windspeed_10m_max']
winddirection_10m_dominant = data['daily']['winddirection_10m_dominant']
shortwave_radiation_sum = data['daily']['shortwave_radiation_sum']
et0_fao_evapotranspiration = data['daily']['et0_fao_evapotranspiration']
a = np.array([temperature_2m_max,temperature_2m_min,apparent_temperature_max,apparent_temperature_min,precipitation_sum,rain_sum,showers_sum,snowfall_sum,precipitation_hours,windspeed_10m_max,winddirection_10m_dominant,shortwave_radiation_sum,et0_fao_evapotranspiration]).T
print(a.shape)
meanParam = np.array([9.18978149,3.14524422,6.35257069,-1.02249357,9.80177378,1.72679949,1.29595116,0.32768638,3.69280206,19.74466581,39.32262211,206.30976864,1.73205013]).reshape(-1,1).T
stdParam = np.array([8.51600177e+01,6.71844311e+01,1.06626080e+02,7.91234272e+01,7.44106845e+01,1.34734399e+01,1.00654528e+01,1.62247909e+00,2.99519019e+01,4.00425872e+01,1.63422522e+02,9.15743361e+03,2.35546925e+00]).reshape(-1,1).T
scaledData = (a-meanParam)/np.sqrt(stdParam)
pred = model.predict(scaledData)
return pred[0], pred[1], pred[2], pred[3], pred[4], pred[5], pred[6]
demo = gr.Interface(
fn=greet,
inputs=["text"],
outputs=["number", "number", "number", "number", "number", "number", "number"],
)
demo.launch()