2017/05/04 (Thu) 11:50:23 成田裕幸 - アメダスの気象観測データのダウンロードに

はじめまして。成田裕幸と申します。大学院生です。
研究で使うために
アメダスの10分値を1年分ほど取得したくて検索していたところ
貴ページにたどり着きました。

プログラムを実行したところ
変換されたcsvファイルの中で
0時10分の行のみ出力されませんでした。
試しに1時間値も取得してみたところ
やはり1時の行のみ出力されませんでした。
たぶん項目行の直下の行が出力されないようです。

こちらの環境の問題?ということも考えましたが
思い切ってお尋ねすることにしました。

OSはWindows 7です。
なにとぞよろしくお願いいたします。

Edit
Delete
2017/05/06 (Sat) 22:28:49 KM

初めまして管理人の森下です。

こちらでも症状を確認しました。
pandasを利用するように書き換えた際に生じたバグのようです。

修正版をアップしましたのでご確認ください。
https://github.com/KatsuhiroMorishita/AMeDAS_downloader/

Edit
Edit
2017/05/12 (Fri) 09:35:34 成田裕幸

おはようございます。
お返事が遅くなりまして,失礼いたしました。
早速使用させていただきたいと思います。
ありがとうございました。

Edit
Edit
2017/05/12 (Fri) 09:39:07 KM

またご感想などお聞かせください。^^

Edit
Edit
2017/05/12 (Fri) 09:40:36 成田裕幸

はいっ,承知いたしました。<(_ _)>

Edit
Edit
2017/05/13 (Sat) 17:11:44 成田裕幸

こんにちは。
修正後のhtml_parser.pyを走らせてみたところ
全データが正常にcsvファイルの中に入りました。
ありがとうございました。

一点,fusionに関して気になったことがありました。
これはfusion.csvがつくられた後に少々手間をかければ解決できることではあるのですが…。
今回,複数年のデータを取得しました。
すると,結果的にはProcessed HTMLフォルダの中の
それぞれの年のフォルダにcsvファイルが格納されるわけですが,
fusionを行うとfusion.csvの中に複数年の全てのデータがひとつづきに入る
ということが起こりました。

具体的に例を挙げると,
2015年から2017年までの各年で1月1日から3月31日までの観測値を取得したときに
2015年フォルダには2015年1月1日から2015年3月31日までの観測値が格納され
2016年フォルダには2016年1月1日から2016年3月31日までの観測値が格納され
2017年フォルダには2017年1月1日から2017年3月31日までの観測値が格納されますが,
fusionすると,fusion.csvの中に
2015年1月1日
2015年1月2日

2015年3月30日
2015年3月31日
2016年1月1日
2016年1月2日

2016年3月30日
2016年3月31日
2017年1月1日
2017年1月2日

2017年3月30日
2017年3月31日
のようにすべてのデータがひとつづきに連結されて入っていました。

fusionする際に各年ののデータが分けられて
2015_fusion.csv,2016_fusion.csv,2017_fusion.csv
となればより便利だなと感じました。

また,これもひとつひとつリネームすれば済むことなのですが,
整理の都合上,
2015_阿蘇乙姫47821_fusion.csv または 2015_47821_fusion.csv
と名前を付けたり,
上書き防止のために年月日を入れる
2015_阿蘇乙姫47821_fusion_17_05_13_17_10.csv
とするとさらに便利になるかなと感じました。

以上,長々と失礼しました。
また何か気付いたことがあれば投稿いたします。
よろしくお願いいたします。

Edit
Edit
2017/10/14 (Sat) 21:07:47 KM

お返事が大変遅くなりました。

うーん。そういった細かいご要望にはちょっと答えられないかなーと思います。
プログラムはオープンソースですので、是非改造にトライされて下さい!

Edit
Edit
2023/08/31 (Thu) 18:46:01 成田裕幸

ご無沙汰しております。
成田裕幸と申します。
日頃からAMeDAS_downloaderを便利に使わせていただいております。

エラーが発生したので報告いたします。
「0281 梁川」の10分値を「download.py 10min」で正常にダウンロードし
csvファイルをつくるために「html_parser.py」を実行したところ
IndexError: list index out of range
が発生し、csvファイルがつくられませんでした。

表示された内容は以下の通りです。なお、OSはWindows11です。

**********
['0281', '梁川']
target file path: Raw HTML\0281_梁川\2022\0281_梁川_2022_05_30.html
--get_data_from_past_format--
Traceback (most recent call last):
File "I:\●●●\AMeDAS_downloader-master\AMeDAS_downloader-master\html_parser.py", line 411, in <module>
main()
File "I:\●●●\AMeDAS_downloader-master\AMeDAS_downloader-master\html_parser.py", line 398, in main
data = get_data(lines, _date)
^^^^^^^^^^^^^^^^^^^^^^
File "I:\●●●\AMeDAS_downloader-master\AMeDAS_downloader-master\html_parser.py", line 316, in get_data
data = get_data_from_past_format(lines)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "I:\●●●\AMeDAS_downloader-master\AMeDAS_downloader-master\html_parser.py", line 167, in get_data_from_past_format
indexes = get_column_names(lines) # 項目名と、項目名が含まれる最後の行番号を取得
^^^^^^^^^^^^^^^^^^^^^^^
File "I:\●●●\AMeDAS_downloader-master\AMeDAS_downloader-master\html_parser.py", line 141, in get_column_names
table = mearge_table(match, table, table_row)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "I:\●●●\AMeDAS_downloader-master\AMeDAS_downloader-master\html_parser.py", line 78, in mearge_table
if table[row][i] is not None:
~~~~~~~~~~^^^
IndexError: list index out of range

**********
なお、「47595 福島」に関しましては
10分値も1時間値もどちらも正常にダウンロードおよびcsvファイルの作成・結合ができているので
アメダスと気象官署の(観測項目数の)違いなのかなと感じています。

以上、よろしくお願いいたします。

Edit
Edit
2023/10/18 (Wed) 15:28:34 KM

気象庁のHPのデータ構造が変わったためのエラーだったようです。

↓たぶん対応しました。確認されてみてください。
https://github.com/KatsuhiroMorishita/AMeDAS_downloader

Edit
Edit
Name URL
Subject
Image Password