ä»å¹Žã®å€ãéåžžã«æãã§ããæãã®ã¯äœæããŠåãã£ãŠããã®ã§ããã50幎åãšæ¯ã¹ãŠã©ã®ãããæããªã£ãã®ãæ¯ã¹ãŠã¿ãããªããŸãããïŒæ°è±¡åºãéå»ã®æ°æž©ããŒã¿ããªãŒãã³ããŒã¿ãšããŠé ä»ããŠããŸãã®ã§ããããå©çšããŠç倿¥ãšçææ¥ãã«ãŠã³ãããŠã°ã©ããæç»ããŠã¿ãŸãããã
50幎åãšæ¯ã¹ãŠã©ã®ãããæãã®ã調ã¹ãŠã¿ãã
å°çæž©æåãšèšãããŠä¹ ãããå¹Žã æããªã£ãŠããŸãããšã¯èšããã50幎åãšæ¯èŒããŠã©ã®ãããæããªã£ããã ãããããšæ°ã«ãªããŸããããæ°ã«ãªã£ãããšã¯ãµã¯ããšããã°ã©ã ãäœã£ãŠèª¿ã¹ãŠèŠãŸããããèªåã§çŽåŸã§ãããŸã§ã調ã¹ãŠèŠããšæ°ããªçºèŠãããããšã§ãããã
éœåãè¯ãããšã«ãæ°è±¡åºããéå»ã®æ°æž©ããŒã¿ããªãŒãã³ããŒã¿ãšããŠé ä»ãããŠããŸãããã®ãããå°éå®¶ã§ãªããŠããæ°è»œã«èª¿æ»ã§ããŸããæ¶ã ãšæããšæŠãã ãã§ã¯ãªããéå»ã®ããŒã¿ããäœãããã®ç¥èŠãåŸãããªãã調ã¹ãŠã¿ãŸããããã¡ãªã¿ã«ããªãŒãã³ããŒã¿ããšã¯ãæ¿åºãäŒæ¥ãç ç©¶æ©é¢ãªã©ãç¡åã§é ä»ããŠããããŒã¿ã®ããšã§ãã誰ã§ãèªç±ã«å©çšã§ããããŒã¿ã§ãã
æ°è±¡åºããéå»ã®æ°æž©ããŒã¿ãããŠã³ããŒãã§ãã
æ°è±¡ããŒã¿ã¯ããã¡ãã®æ°è±¡åºã®Webãµã€ãããCSV圢åŒã§ããŠã³ããŒãã§ããããã«ãªã£ãŠããŸãã
ãã®Webãµã€ãã®è¯ããšããã¯ãåçŽã«å€§éã®éå»ã®æ°è±¡ããŒã¿ãããŠã³ããŒãã§ããã ãã§ã¯ãªããå¿ èŠãªããŒã¿ãéžæããŠãå¿ èŠãªããŒã¿ã ããCSV圢åŒã§ããŠã³ããŒãã§ããããã«ãªã£ãŠããç¹ã«ãããŸãã
äœ¿ãæ¹ã¯åçŽã§ããå°ç¹ããéžãã åŸã§ãæ°æž©ãéæ°Žéãªã©å¿ èŠãªããŒã¿ã®é ç®ãéžã³ãæåŸã«ãæéããéžãã§ç»é¢å³åŽã«ãããCSVãã¡ã€ã«ãããŠã³ããŒãããã¿ã³ãæŒãã ãã§ãã
50幎åã®æ°æž©ããŒã¿ãããŠã³ããŒãããã
æ°è±¡åºã®éå»ã®æ°è±¡ããŒã¿é ä»ãµã€ãã§ãããè€æ°ã®å°ç¹ãéžã¹ãããã«ãªã£ãŠãããã®ã®ãäžåã«ããŠã³ããŒãã§ããããŒã¿ãµã€ãºãå¶éãããŠããŸããããã§ãä»åã¯ã1974幎ãã10幎åãã€æ¥å¥å¹³åæ°æž©ãšæé«æ°æž©ã®ããŒã¿ãã5åã«æž¡ã£ãŠããŠã³ããŒãããŠã¿ãŸãããã
ããã§ã¯ã次ã®ããã«éžæããŠããŠã³ããŒãããŸããã
- (1) [å°ç¹] æ±äº¬ â æ±äº¬ãéžæ
- (2) [é
ç®] æ¥å¥å€ â æ°æž© â ãæ¥å¹³åæ°æž©ããšãæ¥æé«æ°æž©ããéžæ
- (3) [æé] é£ç¶ããæé â 1974幎1æ1æ¥ããæ°å¹Žåããšã«ç¹°ãè¿ãããŠã³ããŒã
ãã ããçè ãæ°æ¥ã«æž¡ã£ãŠè©Šãããšãããé »ç¹ã«ãã¢ã¯ã»ã¹ãéäžããŠããããšè¡šç€ºããããšã©ãŒãåºãŠããŠã³ããŒãã§ããªãããšãå€ããããŸãããããã§ãçè ãããŠã³ããŒããã1974幎ãã2024幎7æ8æ¥ãŸã§ã®CSVãã¡ã€ã«ãããã¡ãããããŠã³ããŒãã§ããããã«ããŸãããããŸãããŠã³ããŒãã§ããªãæ¹ã¯ãã®ããŒã¿ãå©çšããŠãã ããã
ãªã§ãã3ã®ã³ãã³ãã©ã€ã³çãColabã§äœ¿ãã
ãšããã§ãæ¬é£èŒã®äž»åœ¹ããªã§ãã3ãã«ã¯ãå®è¡ç°å¢ããšã«ç°ãªãã©ã³ã¿ã€ã ãçšæãããŠããŸããWebãã©ãŠã¶äžã§å®è¡ãããã©ãŠã¶ç(wnako)ã«å ããŠãããŒã«ã«PCäžã§å®è¡ããã³ãã³ãã©ã€ã³ç(cnako)ãçšæãããŠããŸãããã©ãŠã¶çã§ã¯ã»ãã¥ãªãã£ã®é¢ä¿äžããŒã«ã«ãã¡ã€ã«ã®æäœãå¶éãããŠããŸããããã§ãã³ãã³ãã©ã€ã³ç(cnako)ã䜿ããšããã¡ã€ã«ã®èªã¿æžããã³ãã³ãã®å®è¡ãªã©ãããªãèªç±ãªæäœãå¯èœãšãªããŸãã
èªåã®ããœã³ã³ã«ããªã§ãã3ã®ã³ãã³ãã©ã€ã³çãã€ã³ã¹ããŒã«ããã®ããªã¹ã¹ã¡ãªã®ã§ãããä»åã¯ãGoogleãæäŸããŠããPythonã®å®è¡ç°å¢ã§ããColaboratoryäžã§ããªã§ãããäœ¿ãæ¹æ³ã玹ä»ããŸãã
Colaboratory(以åŸãColabãšç¥ããŸã)ã«ã¯ææçããããŸãããåºæ¬çã«ã¯Googleã¢ã«ãŠã³ãããããã°ãç¡æã§å©çšã§ããŸããGoogleã®æäŸããã¯ã©ãŠããã·ã³äžã§ãããã°ã©ã ãå®è¡ã§ãããããèªåã®ããœã³ã³ã®ç°å¢ã«äœãã€ã³ã¹ããŒã«ããå¿ èŠããªããWebãã©ãŠã¶ããããã°ããã°ã©ã ãåããããšãã§ããã®ãç¹åŸŽã§ãããªããColabã¯Pythonã®å®è¡ç°å¢ã§ãããã¡ãã£ãšãã工倫ã§ããªã§ããã®ã³ãã³ãã©ã€ã³çãåããããšãã§ããŸãã
ïŒæé 1ïŒColabã«ã¢ã¯ã»ã¹ããŠæ°èŠããŒãããã¯ãäœæããã
ãã¡ãã®Colabã«ã¢ã¯ã»ã¹ããŠãGoogleã¢ã«ãŠã³ãã§ãã°ã€ã³ãããšã次ã®ãããªç»é¢ã衚瀺ãããŸããããã§ãç»é¢å·Šäžã«ããã+ ããŒãããã¯ãæ°èŠäœæããã¿ã³ãã¯ãªãã¯ããŸãã
ïŒæé 2ïŒãªã§ãã3ãå©çšããã³ãã³ããå®è¡ããã
Colabã§ã¯ãããŒãããã¯ã«è¡šç€ºãããããã¹ãããã¯ã¹ã«ããã°ã©ã ãèšè¿°ããããã¹ãããã¯ã¹ã®å·ŠåŽã«ãããâ¶ãã®å®è¡ãã¿ã³ãæŒãããšã§ãããã°ã©ã ãå®è¡ãããŸããæ¬¡ã®å³ã®ããã«ïŒ1ïŒã®éšåã«ããã°ã©ã ãèšè¿°ããïŒ2ïŒã®ãã¿ã³ãæŒããŸãã
ããã§ãæåã«ããªã§ãã3ã®ã³ãã³ãã©ã€ã³çãã€ã³ã¹ããŒã«ããŠãæè»œã«ããã°ã©ã ãå®è¡ããããã®é¢æ°ãå®çŸ©ããŸãããã以äžã®ããã°ã©ã ãã³ããŒããŠãããã¹ãããã¯ã¹ã«è²Œãä»ããŠå®è¡ããŸãã
# ãªã§ãããå®è¡ããæºåãè¡ã
! npm install -g nadesiko3
import subprocess
def run(src):
# ããã°ã©ã ã1床ãã¡ã€ã«ã«ä¿å
with open('input.nako3', 'w') as file:
file.write(src)
# ä¿åãããã¡ã€ã«ãcnako3ã«æž¡ããŠå®è¡ãã
result = subprocess.run(['cnako3', 'input.nako3'], text=True, capture_output=True)
print("---------------")
print(result.stdout)
print("---------------")
# ãããŸã§
ãã®ããã°ã©ã ã¯ãã·ã§ã«ã¹ã¯ãªããã§ãªã§ãã3ãã€ã³ã¹ããŒã«ããPythonã®é¢æ°ãå®çŸ©ããŠããªã§ãããå®è¡ãã颿°ãå®çŸ©ãããã®ã§ãããªã§ããã®ç¯å²ãè¶ ããŠããŸãã®ã§è©³ããã¯è§£èª¬ããŸãããããã®ã³ãã³ããæåã«å®è¡ãããšèŠããŠãããŸãããã
ïŒæé 3ïŒãªã§ããã®ããã°ã©ã ãèšè¿°ããŠå®è¡ããã
ãããŠãæé 2ãæ£ããå®è¡ãããåŸã¯ããrun('''ãªã§ããã®ããã°ã©ã ''')ããšèšè¿°ããããšã§ãã³ãã³ãã©ã€ã³çã®ãªã§ãããå®è¡ã§ããŸããç»é¢å·Šäžã«ããã+ ã³ãŒããã®ãã¿ã³ãæŒããŠãããã¹ãããã¯ã¹ã远å ããŠãããã«ããã°ã©ã ãèšè¿°ããŸãããã
äŸãã°ã以äžã®ãããªããã°ã©ã ãèšè¿°ããŠãå®è¡ãã¿ã³ãæŒããŠã¿ãŸãããã
run('''
# --- ããã«ãªã§ããã®ããã°ã©ã ---
ãããã«ã¡ã¯ããšè¡šç€º
''')
ïŒæé 4ïŒ5ã€ã®CSVãã¡ã€ã«ãäžã€ã®ãã¡ã€ã«ã«ãŸãšããã
ããã§ã¯ããããããæ°è±¡åºã®Webãµã€ãããããŠã³ããŒããããã¡ã€ã«ã䜿ã£ãŠåŠçãè¡ããŸããããä»åã¯ãçè ãäºåã«ããŠã³ããŒãããCSVãã¡ã€ã«ãå©çšããŸãã以äžã®ã³ãŒãã貌ãä»ããŠå®è¡ããŸãããã
# ZIPãã¡ã€ã«ãããŠã³ããŒãããŠè§£å
! wget https://github.com/kujirahand/past_temperature_data_japan/archive/refs/tags/v0.0.1.zip
! unzip v0.0.1.zip
! cp past_temperature_data_japan-0.0.1/rawdata/tokyo/* ./
ãããããèªèº«ã§æ°è±¡åºããCSVãã¡ã€ã«ãããŠã³ããŒãããå Žåã«ã¯ãColabã®å·ŠåŽã«ãããµã€ãããŒã®ããã¡ã€ã«ããã¯ãªãã¯ããŠãããã«ãã¡ã€ã«ããã©ãã°ïŒãããããããšãCSVãã¢ããããŒãã§ããŸããäžèšã®ããã«ãColabã®ã«ã¬ã³ããã£ã¬ã¯ããª(/content)ã«ããŠã³ããŒãããCSVãé 眮ãããããã«ããŠãã ããã
次ãã§ã以äžã®ããã°ã©ã ãå®è¡ããŠ5ã€ã«åãããCSVãã¡ã€ã«ãæè»œã«æ±ããããã«1ã€ã«ãŸãšããŸãããã以äžã®ã³ãŒãã貌ãä»ããŠå®è¡ããŠã¿ãŸãããã
# è€æ°ã®CSVãã¡ã€ã«ãçµåããŠãall.csvããäœæãã
run('''ALL=ãã
ã*.csvãã®ãã¡ã€ã«åæ
å埩ïŒ
ãã察象ã衚瀺
ãã察象ãSJISãã¡ã€ã«èªãã§Sã«ä»£å
¥
ããSãæ¹è¡ã§åºåã£ãŠAã«ä»£å
¥
ããAã®0ãã6ãé
ååãåºã # å
é ã®6è¡ã¯ãããã§äžèŠãªã®ã§
ããALLïŒALLïŒæ¹è¡ïŒïŒAãæ¹è¡ã§é
åçµåïŒ
ããALLãããªã ããŠALLã«ä»£å
¥ã
ALLããall_temp.csvãã«ä¿åã
ãOKããšè¡šç€ºã
''')
ããã°ã©ã ãå®è¡ãããšãall|_temp.csvããäœæãããŸããColabã®ãµã€ãããŒã®ããã¡ã€ã«ããèŠããšCSVãã¡ã€ã«ãæ°èŠä¿åãããŠããã®ã確èªã§ããã§ãããããã®ããã°ã©ã ã§ã¯ã次ã ãšShift|_JISã§èšè¿°ãããCSVãã¡ã€ã«ãèªã¿èŸŒãã§ãäžèŠãªåé ã®6è¡ãåé€ãã€ã€ãçµåããŠCSVãã¡ã€ã«ãåºåããŸãã
ïŒæé 5ïŒç倿¥ãšçææ¥ã®æ¥æ°ã調ã¹ãã
次ã«ããall_temp.csvããèªã¿èŸŒã¿ããã®å¹Žããšã®ç倿¥ãšçææ¥ã®æ¥æ°ãã«ãŠã³ãããŠã¿ãŸããããç倿¥ãšã¯æ¥æé«æ°æž©ã30â以äžã®æ¥æ°ã§ãããçææ¥ãšã¯35â以äžã®æ¥æ°ã§ãã以äžã®ã³ãŒãã貌ãä»ããŠå®è¡ããŠã¿ãŸãããã
run('''# ç倿¥ãšçææ¥ã®æ¥æ°ãæ°ãã
# èŸæžåãåæå
Fçææ¥={}
Fç倿¥={}
Yã1974ãã2024ãŸã§ç¹°ãè¿ãïŒ
ããFçææ¥[Y] = 0
ããFç倿¥[Y] = 0
# CSVãéããŠç倿¥ãšçææ¥ãæ°ãã
ALL=ãall_temp.csvããéããŠãCSVååŸ
ALLãå埩ïŒ
ããFå¹Žææ¥ã¯ã察象[0]
ããFå¹³åæ°æž©ã¯ã察象[1]
ããFæé«æ°æž©ã¯ã察象[4]
ããFå¹Žææ¥ãã/ãã§åºåã£ãŠADã«ä»£å
¥
ãã倿°[Y,M,D]=AD
ãããããFæé«æ°æž©>=35ãªãã°ïŒ
ããããFçææ¥[Y] = Fçææ¥[Y]+1
ãããããFæé«æ°æž©>=30ãªãã°ïŒ
ããããFç倿¥[Y] = Fç倿¥[Y]+1
# çµæãCSVã§åºå
åºåçš=ã幎床,çææ¥,ç倿¥{æ¹è¡}ã
Yã1974ãã2023ãŸã§ç¹°ãè¿ãïŒ
ããåºåçšïŒåºåçšïŒã{Y}幎,{Fçææ¥[Y]},{Fç倿¥[Y]}{æ¹è¡}ã
åºåçšããresult.csvãã«ä¿åã
åºåçšã衚瀺
ãOKããšè¡šç€ºã
''')
ãããšãç倿¥ãšçææ¥ãã«ãŠã³ãããŠãresult.csvããšããCSVãã¡ã€ã«ã«åºåããŸãããã®ããã°ã©ã ã§ã¯ãèŸæžåã®å€æ°ãFçææ¥ããšãFç倿¥ããå©çšããŠãæé«æ°æž©ã30床ã35床以äžãªãã°ã«ãŠã³ãã¢ãããããšãããã®ã«ãªã£ãŠããŸãã
(æé 6) Pythonã§ã°ã©ããåºåããã
ããã§çæããCSVãåºã«ããŠæãç·ã°ã©ãã§æç»ããŠã¿ãŸãããããŸãã¯ãPythonã®åãåããŠã°ã©ããæç»ããŠã¿ãŸãããã以äžã®ã³ãŒããèšè¿°ããŠå®è¡ãããšãPythonã®ã©ã€ãã©ãªãmatplotlibãã䜿ã£ãŠã°ã©ããæç»ããŸãã
# ãresult.csvããèªã¿çžŠæ£ã°ã©ããæç»ãã
! pip install matplotlib_fontja
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib_fontja
pd.read_csv('result.csv', index_col=0).plot(kind='line')
plt.show()
å®è¡ãããšãäžèšã®ãããªã°ã©ããæç»ãããŸããã°ã©ããèŠããšå³è©äžããã«ç倿¥ãšçææ¥ãå¢ããŠããããšãåãããŸããã
(æé 7) ãªã§ãããå©çšããŠã°ã©ãæç»ããŠã¿ãã
Colabã®ãµã€ãããŒãéããŠãããã¡ã€ã«ãã¿ãã«ãŠãresult.csvããéžã³ãå³ã¯ãªãã¯ãããšãããŠã³ããŒããã¡ãã¥ãŒãåºãŸãããããã¯ãªãã¯ããŠããŠã³ããŒããããããªã§ãã貯èµåº«ã«ã¢ããããŒãããŠã¿ãŸãããã
# äœæãããresult.csvãã貯èµåº«ã«ã¢ããããŒããããã®
URL=ãhttps://n3s.nadesi.com/image.php?f=535.csvã
# URLãååŸããŠã°ã©ããæç»ãã
URLããHTTPååŸããŠããŒã¿ã«ä»£å
¥ã
ããŒã¿ãCSVååŸããŠç·ã°ã©ãæç»ã
å®è¡ãããšã次ã®ãããªã°ã©ããæç»ããŸããç·ã°ã©ãã®ç·ã«ã«ãŒãœã«ãåããããšãå®éã®æ°å€ã確èªã§ããŸãã
ãŸãšã
以äžãç倿¥ãšçææ¥ãã«ãŠã³ãããããã°ã©ã ãäœã£ãŠã¿ãŸãããã°ã©ãããå°çãå¹Žã æããªã£ãŠããããšãåãããŸããããŸããä»åã¯ããªã§ããã®ã³ãã³ãã©ã€ã³çã䜿ã£ãŠCSVãã¡ã€ã«ã®æäœãããŠã¿ãŸãããæå ã®PCã«ã€ã³ã¹ããŒã«ããŠäœ¿ãã®ã䟿å©ã§ãããä»åã®ããã«ãColabãã¡ãã£ãšå·¥å€«ããããšã§ãæè»œã«ã³ãã³ãã©ã€ã³çã䜿ããŸããããããå¿çšãå©ããŸãã®ã§åèã«ããŠã¿ãŠãã ããã
èªç±åããã°ã©ããŒããããã¯ãã©ã«ãŠãããã°ã©ãã³ã°ã®æ¥œãããäŒããæŽ»åãããŠããã代衚äœã«ãæ¥æ¬èªããã°ã©ãã³ã°èšèªããªã§ããã ãããã¹ã鳿¥œããµã¯ã©ããªã©ã2001幎ãªã³ã©ã€ã³ãœãã倧è³å ¥è³ã2004幎床æªèžãŠãŒã¹ ã¹ãŒããŒã¯ãªãšãŒã¿èªå®ã2010幎 OSSè²¢ç®è ç« åè³ãæè¡æžãå€ãå·çããŠãããçŽè¿ã§ã¯ããã·ãŽããã¯ãã©ã PythonèªååŠçã®æç§æž(ãã€ããåºç)ããããã«äœ¿ãã!æ¥åã§å®è·µã§ãã! Pythonã«ããAIã»æ©æ¢°åŠç¿ã»æ·±å±€åŠç¿ã¢ããªã®ã€ããæ¹ TensorFlow2察å¿(ãœã·ã )ãããã³ã¬ã§ãã£ããåŠã¶Python(ãã€ããåºç)ããªã©ã










