気象観測データ (1地点) の基本的な統計処理: 1時間降水量
[2025-07-25] このページは作成途中です。
地上観測の1時間降水量について、基本的な統計処理をする例文をあつめておきたい。
つかうデータ
データとしては、日本の気象庁の 気象官署等 および アメダスのものをつかう。
- 2010-2019年の10年間については、「気象観測月報」という1か月ごとのCD-ROMがつくられている。
- hamana および niigata では、/raid/jma_kansoku_geppo/ に置いた。
- このCDに収録されたデータの形式は、バイナリデータで、バイト単位で読む必要がある。
日別値および時別値の (すべてではないが) おもな気象要素について、増田が変換し、
10年の全期間について、地点別・月別にわけた csvファイルにした。
そのうち 1時間降水量は、/raid/jma_kansoku_geppo/preciphourly/ に、
たとえば熊谷 (アメダス地点番号 43056) の 2010年1月の値ならば、
preciphourly201001_43056.csv というファイル名にした。
見出し行なしの3列で、左から、日時、降水量、flag である。
flag は 0 または 1 が正常値、その他は異常値 (データ欠損をふくむ)である。
- 観測点リストは、2019年12月のCDにあったものを編集し、
/home/masudako/ex/ex9/ に、amedas_stnlist.csv (ASCIIコードの項目のみ)、
amedas_stnlist_ja_sjis.csv (日本語文字の項目をふくむ) として置いた。
- このデータは、2025年度 B,F,G 合同セミナー 実習教材 [第9課 アメダス時別値の風、気温、降水量、日照時間の地図上表示]
でつかっており、そのページに説明を書いた。
- 2020年以後については、気象庁ウェブサイトの「各種データ・資料」の
「過去の気象データ・ダウンロード」のウェブサイトからダウンロードした csv ファイルをつかう。
(ファイル名は data.csv から気象要素・地点・期間がわかる形にかえておく。
例では hourly_precip_kumagaya_2022.csv のようにしている。)
- ダウンロードの作業手順については、
2025年度 B,F,G 合同セミナー 教材 [気象庁の観測データを取得する] のページに説明を書いた。
(ただしそこでの例は日別値のばあいである。)
- csv ファイルに収録される気象要素の順序や地点の順序は、
ウェブページで指定したときの順序になっているようで、
気象要素や地点の組み合わせが同じであっても、同じになるとはかぎらないことに注意が必要である。
- ここでの実行例では、
地点「熊谷」について、1時間降水量だけを、1年ごと (それぞれ1月1日から12月31日まで) に
ダウンロードしたものをつかう。
この地点は「気象官署等」なので「現象なし情報」の列がある。
普通のアメダス地点のばあいはその列がないので、
プログラム例の「dfread = pd.read_csv( ... 」の「names=()」のカッコ内の「'x_precip',」をけずればよい。
- 2009年以前については、CD-ROM でとりよせたものがあり、
アメダスはその開始から、気象官署等は1961年からあるようだが、解読作業がこれからであり、
どの地点のどの気象要素があるかの確認もまだできていない。
csvファイルを読み、データフレームを連結する
気象観測値の csv ファイルは、数のそろった行と列からなり、
列は同じ気象要素の観測値の時系列をあらわしている。
このような構造のものは、Python のパッケージ pandas の「データフレーム」 (DataFrame) という
構造変数に、pandas の read_csv 関数をつかって読みこむのがよい。
期間ごとにわかれて同じ形式でダウンロードされた複数の csv ファイルがあるときは、
pandas の concat 関数をつかってつなぐことができる。
ここから下にあげる事例の大部分 (全部ではない) でこの機能をつかっている。
しきい値以上の値がある日時をぬきだす
- [geppo] /home/masudako/jma201x/histo/check_precip_hourly.py
- [jmacsv] /home/masudako/ex/jmacsv_histo/check_precip_hourly.py
ぬきだされた日時のリストを値の大きい順に整列 (sort) する
pandas の DataFrame の rank メソッド、sort_values メソッドをつかう。
- [jmacsv, geppo 共通] /home/masudako/ex/jmacsv_histo/sort_extremes_precip.py
主要な順位統計量を書き出す
pandas の DataFrame の describe メソッド をつかう。
- [geppo] /home/masudako/jma201x/histo/describe_precip.py
- [jmacsv] /home/masudako/ex/jmacsv_histo/describe_precip.py
ヒストグラムにあたる階級別頻度リストを数字で得る (準備中)
numpy の histogram 関数をつかう。
ヒストグラムを作図する (準備中)
matplotlib の ax の hist をつかう。
2025-07-25
増田 耕一 (MASUDA Kooiti)