File size: 2,127 Bytes
0b2b2dc
d30adf0
fa51aa8
8896740
baa2a05
db9bec1
 
 
6e598b9
6f24fe3
6e598b9
db9bec1
8105114
2784e1a
8105114
0b2b2dc
6f18e1d
3c192d2
40ccda1
 
 
 
bfb22b5
 
40ccda1
 
 
 
7ff5456
40ccda1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4509ea8
fa51aa8
 
6f24fe3
fa51aa8
db9bec1
6bc184e
aadf0ce
6f24fe3
3b498d7
40ccda1
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70

import streamlit as st
import pandas as pd
import numpy as np

astations = [
	["hongkongobservatory","HKO",22.3022566,114.1722662,"Hong Kong Observatory"],
	["kingspark","KP",22.3115408,114.1685675,"Observatory Meteorological Station, King's Park"],
]
astationcolumns = ['akey','astationcode','alatitude','alongitude','atitle',]

acontainer1 = st.empty()
acontainer2 = st.empty()
acontainer3 = st.empty()

def asubmit(aparam):
	adf2 = aparam["adataframe"]
	aselecteditem = adf2.loc[adf2["atitle"]==aparam["aselected"], "astationcode"]

	adf3 = pd.DataFrame(
		[
			[
				adf2.loc[adf2["atitle"]==aparam["aselected"], "alatitude"].values()[0],
				adf2.loc[adf2["atitle"]==aparam["aselected"], "alongitude"].values()[0],
			]
		],
		columns=['lat', 'lon']
	)
	aparam["acontainer"].dataframe(adf3)

	return

	abacklogmax = 10
	atoday = datetime.date.today()
	ayear = int(atoday.strftime("%Y"))-0
	amonth = int(atoday.strftime("%m"))
	amonthday = int(atoday.strftime("%d"))


	csvString = ""
	csvString += (",").join(mytitles)
	adf3 = pd.DataFrame(columns=mytitles)
	for i in range((ayear-abacklogmax),ayear,1):
		alink = ("https://data.weather.gov.hk/weatherAPI/opendata/opendata.php?dataType=CLMTEMP&year={}&rformat=csv&station={}").format(str(i),aselecteditem.values[0])
		adf4 = pd.read_csv(alink, skiprows=[0,1,2], skipfooter=3, engine='python', on_bad_lines='skip')

		adf4 = df.reset_index()  # make sure indexes pair with number of rows
		for index, row in adf4.iterrows():
			if (row[2]!=amonth) or (row[3]!=amonthday):
				continue

			adate = ("{:02d}.{:02d}.{} 00:00:00").format(row[3], row[2], row[1])
			csvString += '\n'+(",").join([adate,str(row[4]),""])
			st.write(row[0],adate)
			adf3 = adf3.append({"Date Time":adate,"T (degC)":(row[4]),}, ignore_index=True)
			break
	adf3 = pd.read_csv(StringIO(csvString), sep=",")
	aparam["acontainer"].dataframe(adf3)

adf = pd.DataFrame(
	astations,
	columns=astationcolumns
)
aoption = acontainer1.selectbox(
	'Which station?',
	adf['atitle']
)
if acontainer2.button("Submit") == True:
	asubmit(aparam={"aselected":aoption,"acontainer":acontainer3,"adataframe":adf,})