File size: 2,221 Bytes
0b2b2dc
d30adf0
fa51aa8
baa2a05
db9bec1
 
 
6e598b9
6f24fe3
6e598b9
db9bec1
8105114
2784e1a
8105114
0b2b2dc
6f18e1d
3c192d2
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
71

import streamlit as st
import pandas as pd

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"],
				adf2.loc[adf2["atitle"]==aparam["aselected"], "alongitude"],
			]
		],
		columns=['lat', 'lon']
	)
	aparam["acontainer"].dataframe(adf3)
	adf3 = pd.DataFrame(np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],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,})