File size: 1,598 Bytes
803efd8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8ac19e7
803efd8
 
5bf138b
803efd8
ad2f2a4
debb5dc
8ac19e7
 
509b561
803efd8
ad2f2a4
803efd8
17bb76d
ad2f2a4
17bb76d
 
803efd8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import gradio as gr
import hopsworks
import joblib
import pandas as pd
import numpy as np
import json
import time
from datetime import timedelta, datetime


from functions import *


project = hopsworks.login()
fs = project.get_feature_store()
	

def air_quality(city):
    air_quality_df = pd.DataFrame()
    weather_df = pd.DataFrame()
    for i in range(8):
        weather_data = get_weather_df([get_weather_data((datetime.now() + timedelta(days=i)).strftime("%Y-%m-%d"))])
        weather_df = weather_df.append(weather_data)

        quality_data= get_air_quality_df([get_air_quality_data(city)])
        air_quality_df=air_quality_df.append(quality_data)
        print(air_quality_df)
        print(weather_df)
        
    weather_df = weather_df.drop(columns=["feelslikemin", "feelslikemax","precipprob", "snow", "snowdepth", "uvindex", "date","city","conditions"]).fillna(0)
	    
    mr = project.get_model_registry()
    model = mr.get_model("gradient_boost_paris_model", version=1)
    model_dir = model.download()
    model = joblib.load(model_dir + "/model.pkl")
	    
    preds = model.predict(weather_df)
	
    predictions = ''
    for k in range(7):
        predictions += "Predicted AQI on  " + (datetime.now() + timedelta(days=k)).strftime('%Y-%m-%d') + ":      " + str(int(preds[k]))+"\n"
	        
        print(predictions)
    return predictions
	
    
demo = gr.Interface(fn=air_quality, title="Air quality predictor",
description="Input a value to get next weeks AQI prediction for Malmo", inputs="text", outputs="text")
	

	    
if __name__ == "__main__":
	demo.launch()