表データの条件にあてはまる行を抽出 -- 緯度経度が指定範囲内の地点を抽出

データが縦横の表の形であたえられ、 縦の列はそれぞれちがった意味をもつが、横の行の順序はとくに意味をもたない、という形式がよくつかわれる。 これは、データベースの代表的形式である関係データベース (relational database) の 表 (table) の形式でもある。 Python では Pandas というパッケージのデータフレーム (DataFrame) という形式で、 このような表データをあつかうことができる。 このような表が、CSV 形式のファイル (コンマ区切りのテキストファイル) になっていれば、 Pandas の read_csv() でファイルからデータを読み、to_csv() でファイルに書きだすことができる。

Pandas の DataFrame の query() というメソッドで、検索条件を指定すれば、 検索条件にあてはまる行だけをぬきだして、もうひとつのデータフレームとすることができる。

地点表から緯度経度が指定範囲にふくまれる地点をえらぶ

ぬきだしの例として、各地点の緯度・経度の情報をふくむ地点表のファイルを読んで、 緯度・経度が指定範囲の内にある地点だけをぬきだして別のファイルに書きだすことをしてみる。

入力データの例として、気象庁のAMeDASをふくむ地上観測の地点のうち、 関東7都県と福島、新潟、長野、静岡、山梨県にある地点のリスト ([気象観測データによる風の空間分布の作図 (Python による試作)] の「第2回試作」のところでつくった amedas_stn_near_kanto.csv )をつかうことにする。 このファイルには、いちばん上の行 (Python の表現では第0行) に列名がはいっていて、 経度、緯度の列名がそれぞれ lon, lat となっている。

(この例で、CSVデータの文字コードを Shift_JIS にしたのは、 わたしがつかっている Excel 2013 日本語版が CSVファイルを読み書きする際に Shift_JIS を想定しているからである。 Python では UTF-8 が標準なので、 Excel のもっと新しいバージョンをつかっていて、そこでは UTF-8 が想定されるか、 文字コードを指定して読み書きすることができるのならば、 UTF-8 にしたほうがよいだろう。)


2021-12-08
増田 耕一 (MASUDA Kooiti)
[計算機を利用した気象分野の実習の教材]
立正大学用 [卒論指導のページ] [3年生セミナーのページ]