|
import gradio as gr |
|
import torch, numpy as np, pandas as pd |
|
import skimage |
|
import pickle |
|
|
|
default_columns = [ |
|
'Wind', |
|
'Max Temperature', |
|
'Min Temperature', |
|
'Precipitation', |
|
] |
|
|
|
options = [ |
|
'drizzle', |
|
'fog', |
|
'rain', |
|
'snow', |
|
'sun', |
|
] |
|
|
|
with open("model.pkl", "rb") as f: |
|
model = pickle.load(f) |
|
|
|
|
|
def predict(wind, max_temp, min_temp, precipitation): |
|
f_wind = float(wind) |
|
f_max_temp = float(max_temp) |
|
f_min_temp = float(min_temp) |
|
f_precipitation = float(precipitation) |
|
|
|
default = [ |
|
f_wind, |
|
f_max_temp, |
|
f_min_temp, |
|
f_precipitation, |
|
] |
|
|
|
df = pd.DataFrame([default], columns=default_columns) |
|
|
|
prediction = model.predict(df) |
|
|
|
return options[prediction[0]] |
|
|
|
iface = gr.Interface( |
|
fn=predict, |
|
title="Weather Prediction", |
|
allow_flagging="never", |
|
inputs=[ |
|
gr.inputs.Slider(0, 100, default=50, label="Wind"), |
|
gr.inputs.Slider(0, 100, default=50, label="Max Temperature"), |
|
gr.inputs.Slider(0, 100, default=50, label="Min Temperature"), |
|
gr.inputs.Slider(0, 100, default=50, label="Precipitation"), |
|
], |
|
outputs=[ |
|
gr.outputs.Label(label="Weather"), |
|
], |
|
) |
|
|
|
iface.launch() |