AQI / app.py
wschyfx's picture
Update app.py
1ee8518
import streamlit as st
import hopsworks
import pandas as pd
import numpy as np
from datetime import timedelta, datetime
from branca.element import Figure
import gradio as gr
from functions import decode_features, get_model, get_weather_df, get_weather_data
project = hopsworks.login()
fs = project.get_feature_store()
feature_view = fs.get_feature_view(
name = 'oslo_air_quality_fv',
version = 1
)
model = get_model(project=project,
model_name="air_quality_model",
evaluation_metric="f1_score",
sort_metrics_by="max",
version_name=1)
def pred(name):
str1 = " "
for i in range(8):
target_date = datetime.today() + timedelta(days=i)
target_date = target_date.strftime('%Y-%m-%d')
data_weather = [get_weather_data('oslo',target_date)]
df_weather = get_weather_df(data_weather)
df_weather['conditions'] = df_weather['conditions'].replace(['Rain','Clear','Snow','Partially cloudy','Overcast','Snow, Partially cloudy',
'Rain, Partially cloudy','Rain, Overcast','Snow, Overcast',
'Snow, Freezing Drizzle/Freezing Rain, Overcast','Snow, Rain',
'Snow, Rain, Freezing Drizzle/Freezing Rain, Ice, Overcast',
'Snow, Rain, Freezing Drizzle/Freezing Rain, Overcast','Snow, Rain, Ice, Overcast',
'Snow, Rain, Overcast','Snow, Rain, Partially cloudy'],[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
df_weather = df_weather.drop(columns=["date"]).fillna(0)
df_weather["aqi"] = 0
preds = model.predict(df_weather)
print(preds)
if(i!=0):
str1 += target_date + " predicted aqi:" + str(int(preds))+"\n"
return str1
# next_day_date = datetime.today() + timedelta(days=i)
# next_day = next_day_date.strftime ('%d/%m/%Y')
demo = gr.Interface(fn=pred,title="Predict AQI of Oslo" ,inputs="text", outputs="text")
if __name__ == "__main__":
demo.launch()