世界の雨のダウンロード
気象庁の世界の天気情報を見られるClimatView ツールというサイトがある。
気象庁|世界の天候データツール(ClimatView 日別値)
ここには、過去5年分程度の速報値が出ているようだが、これをダウンロードしてみた。
※後日談 ここに表示されるデータは、WMOのGTSに基づいてNOAAに収集される世界のデータである。これは、NOAAのHPから、まとめてダウンロードすることができる。その方が、早いだろう。
#!/usr/bin/python import requests from bs4 import BeautifulSoup import sys import datetime from itertools import chain wordsets=list(sys.argv)[1:1000] #-------------------- kikans=[[[2021,9,1],[2021,10,31]] ] #id reg="6" #south-east asia and oseania nfo="jma_world_climate_id.txt" #indonesia #-------------------- #kikans=[[[2018,5,1],[2018,6,30]],[[2020,10,1],[2020,10,31]]] #kh&vt #reg="0" #asia and siberia #nfo="jma_world_climate_khvt.txt" #kambodhia & vietnum #-------------------- #["https://www.data.jma.go.jp/cpd/monitor/dailyview/list.php?r=0&y=2023&m=8&d=21&s=1&e=3&k=1"] def uts(d01): #date_range->uts d0=d01[0] d1=d01[1] s0=datetime.datetime(d0[0],d0[1],d0[2],0,0,0).timestamp() print(s0) s1=datetime.datetime(d1[0],d1[1],d1[2],0,0,0).timestamp() print(s1) ss=list(range(int(s0),int(s1),86400)) return ss def utime2date(ut): #uts->[y,m,d] date=datetime.datetime.fromtimestamp(ut) ymd=[date.year,date.month,date.day] return ymd def ymd2url(ymd): #[y,m,d]->url y,m,d=ymd url="https://www.data.jma.go.jp/cpd/monitor/dailyview/list.php?r="+reg+"&y=" + str(y) +"&m=" + str(m) + "&d=" + str(d) + "&s=1&e=3&k=1" return url uts=chain.from_iterable( map(uts,kikans) ) urls=list(map(ymd2url,map(utime2date,uts))) #-------------------- fo=open(nfo,mode="w") for url in urls: print("ws",url) res = requests.get(url,timeout=(3.0,7.5)) soup = BeautifulSoup(res.content, "html.parser") tbl=list(soup.select("table") )[0] h2=list(soup.select("h2") )[0].text trs=tbl.select("tr") for j,tr in enumerate(trs): #table_rows tds=tr.select("td") if j>=1: #without head st,cntry,tav,tmx,tmn,r=[e.text for e in tds] print(h2,st,cntry,tav,tmx,tmn,r,file=fo,sep="\t")