Spaces:
Runtime error
Runtime error
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,})
|