Pattr commited on
Commit
1be00cd
·
verified ·
1 Parent(s): a733190

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -36
app.py CHANGED
@@ -3,54 +3,51 @@ import pandas as pd
3
  import numpy as np
4
  from prophet import Prophet
5
  from mysql import connector
 
 
6
 
 
 
 
 
 
 
 
 
7
 
8
 
9
 
10
- def findProvince(Province):
11
- if Province == 'Bangkok':
12
- name = list(Station[Station[6]=='กรุงเทพมหานคร'][0])[0]
13
- return name
 
 
 
14
 
15
- def get_weather_forecast(Province,Activity,Purpose,Year,Month,Date):
16
- name = findProvince(Province)
17
- p_df = df.rename(columns={'Date_time':'ds',str(name):'y'})
18
- rain_df = p_df[p_df['mode']=='Rain'][['ds','y']]
19
- rain_model = Prophet(interval_width=0.95)
20
- rain_model.fit(rain_df)
21
- date_time = pd.Series(pd.to_datetime(f'{Year}-{Month}-{Date}',format = '%Y-%m-%d'),name='ds')
22
- date_time = pd.DataFrame(date_time)
23
- forecast = rain_model.predict(date_time)
24
 
 
 
 
 
 
 
 
 
25
 
26
- if float(forecast['yhat'][0]) >= 6:
27
- WeatherCon = 'SUNNY'
28
- txt = 'น้อย'
29
- else:
30
- WeatherCon = 'RAIN'
31
- txt = 'สูง'
32
- if Activity == 'Indoor':
33
- IsIndoor = 'Y'
34
- else:
35
- IsIndoor = 'N'
36
-
37
- place = place_df[place_df['Purpose']==Purpose]
38
- place = place[place['IsIndoor']==IsIndoor]
39
- place = place[place['Province']==Province]
40
- if WeatherCon != 'SUNNY':
41
- place = place[place['WeatherCon']==WeatherCon]
42
- place = place['LocationName']
43
- #random = random.randrange(len(place))
44
- place = list(place)[0]
45
- return f'มีโอกาสฝนตก{txt} สถานที่ที่แนะนำคือ: {place}'
46
 
 
 
 
47
 
48
  iface = gr.Interface(
49
  fn = get_weather_forecast,
50
  inputs = [
51
 
52
  gr.Dropdown(
53
- ["Bangkok"], label="Province", info="Will add more later!"
54
  ),
55
 
56
  gr.Dropdown(
@@ -58,11 +55,11 @@ iface = gr.Interface(
58
  ),
59
 
60
  gr.Dropdown(
61
- ["Entertainment","Culture",'Shop','Science'], label="Purpose"
62
  ),
63
 
64
  gr.Dropdown(
65
- [2023], label="Year", info="Will add more later!"
66
  ),
67
 
68
  gr.Dropdown(
 
3
  import numpy as np
4
  from prophet import Prophet
5
  from mysql import connector
6
+ import json
7
+ from prophet.serialize import model_from_json
8
 
9
+ province_dict = {
10
+ "Bangkok":"กรุงเทพฯ",
11
+ 'Nakohn Pathom':'นครปฐม',
12
+ 'Pathum Thani':'ปทุมธานี',
13
+ 'Nakohn Nayok':'นครนายก',
14
+ 'Nonthaburi':'นนทบุรี',
15
+ 'Samut Songkhram':'สมุทรสงคราม'
16
+ }
17
 
18
 
19
 
20
+ def weather_forcast(year,month,date):
21
+ _date = pd.to_datetime(f'{year}-{month}-{date}')
22
+
23
+ _df = pd.DataFrame({'ds':[_date]})
24
+
25
+ _prediction = _model.predict(_df)
26
+ _prediction = _prediction['yhat']
27
 
28
+ _israin = False if(_prediction<0.5) else True
29
+ return _israin
 
 
 
 
 
 
 
30
 
31
+ def get_advice(province,activity,purpose,year,month,date):
32
+ _province = province_dict[province]
33
+ with open('prophet_model.json', 'r') as fin:
34
+ _model = model_from_json(json.load(fin)
35
+ _purpose = purpose.lower()
36
+ _day = pd.to_datetime(f'{year}-{month}-{date}').day_name()
37
+ _activity = 'indoor' if(weather_forcast(year,month,date)) else activity.lower()
38
+
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
+ return f'มีโอกาสฝนตก{txt} สถานที่ที่แนะนำคือ: {place}'
42
+
43
+
44
 
45
  iface = gr.Interface(
46
  fn = get_weather_forecast,
47
  inputs = [
48
 
49
  gr.Dropdown(
50
+ ["Bangkok",'Nakohn Pathom','Pathum Thani','Nakohn Nayok','Nonthaburi','Samut Songkhram'], label="Province", info="Will add more later!"
51
  ),
52
 
53
  gr.Dropdown(
 
55
  ),
56
 
57
  gr.Dropdown(
58
+ ["Shopping","Relax",'Education','Culture','Nature'], label="Purpose"
59
  ),
60
 
61
  gr.Dropdown(
62
+ [2024], label="Year", info="Will add more later!"
63
  ),
64
 
65
  gr.Dropdown(