[2023-06-07] 格子点データをめぐって


空間分布する量の表現

格子点データのはじまり

格子点 (grid point) の値か、ます目 (grid box) の値か? (grid registration vs. pixel registration)

地球上の位置の表現

(球面の表示装置もできてはきたが) 通常は、平面の紙面や画面に表示するので、地図投影が必要。

格子データをどのような座標軸のもとでつくるかと、表示の座標軸とは、かならずしも同じではない。

わたしの教材はいまのところ、格子データも表示も、経度を横軸、緯度を縦軸にとったもの。 地図投影としては「正距円筒図法」、俗に「方眼図法」。英語では Plate Carree (フランス語起源)。

その他の地図投影

[地図投影 (map projection) (地理情報学教材 2000年]

鉛直は、気象では、p座標がつかわれることが多く、等間隔でないことが多い。

3次元の表現は2次元の表現ほど発達していない。 また、大気は連続体で、雲なども明確な 3次元立体の表面をもたないので、 いわゆる3次元グラフィックスよりも、平面をふくむ 2次元断面 で見たほうがよいことが多い。

気象モデルの格子

差分モデルでは、その差分計算方式の必要性できめられる。たとえば風の東西成分と南北成分の位置をたがいちがいにとる。

スペクトルモデルでは、ルジャンドル陪関数の値がゼロになる緯度 (ガウス緯度) にとる (NCEP再解析のモデル格子データはこれ)。 さらに、高緯度では経度間隔を等しくすると距離間隔が狭くなるので、経度方向の点の数をまびくことがある (JRA55やJRA3Qのモデル格子はこれ)。 気象モデルに深入りしないデータ解析のためには、緯度・経度等間隔の格子に内挿してつかうことが多い。 (ただし緯度間隔と経度間隔はかならずしも同じではない。)

レーダー観測

オリジナルデータの位置は (距離、方位角、仰角) → 複数のレーダーをあわせてつかうときは緯度・経度・高さへ

衛星観測 (画像型センサー) のオリジナルデータ

オリジナルデータの位置は、衛星からみえた視野内の (x, y) → 地球の位置へは幾何変換が必要。

Registration: 格子点 (grid point) の値なのか、ます目 (grid box) の値なのか?


格子点データの計算機上でのもちかた

数値の順序と地球上の位置との関係

まわりかたは、(((東西), 南北), 上下) のことが多い。 Fortran の配列添え字は (lo, la, lev) となるが、Python では逆に [lev, la, lo] となる。

数値のバイナリ表現と圧縮

実数の値をとる数量の近似値は、32ビット (4バイト) または 64ビット (8バイト) の浮動小数点型であらわされることが多い。 仮数部の有効数字は、32ビット浮動小数点数ならば、21ビット程度。

実際の有効数字がもっとすくなければ、もっとすくないビット数で表現できるはず。

データ欠損をあらわす値の問題


個別メタデータをどのようにもつか

メタデータ ... データについての情報。 ここでは臨時に、個別のファイルに何がふくまれているか (変数名、単位、日時、格子点番号と緯度経度の対応など) を「個別メタデータ」とよぶ。

単純バイナリファイルは、 個別メタデータ情報をファイル内にもたない。 かろうじてファイル名にふくめることができる。

個別メタデータ情報をファイル内にふくむ形式が提案されてきた。 それを解読するのには特殊なプログラムが必要になるが、よくつかわれる形式には対応できるプログラムが多く開発される。

GRIB (Grid Binary)

わたしは、GrADSで単純バイナリに変換してそれをPython (numpy) でよむことが多い。

解析雨量と全国合成レーダーについては、ウェブ上にPythonで解読している例文をみつけたので、それを応用して自まえで numpy の配列に入れている。

NetCDF (CDFはもともとは common data format)

Python には netcdf4 というライブラリがつかわれてきたが、わたしは numpy との連携がしやすい xarray をつかっている。

[NetCDFとCF規約 (メモ 2010年)]


格子点データによる数量の2次元分布の表現

等値線

等値線間の段彩

格子点間隔がじゅうぶんこまかければ、等値線をひかず、画面を格子にくぎってそれぞれを色わけすればよい。 そのたぐいで、Cartopy で緯度経度で格子位置を指定してやる方法 (GrADS の set gxout grfill に相当) を、わたしはまだみつけておらず、 contourf にたよっている。 (imshow は画素の大きさが画面上で一定でないばあいには対応できないようだ。)

数値として内挿してはいけない定性的なデータの色分け表示

いまのところ、plot で marker をならべる方法

ベクトルの矢印表示

風ベクトルの矢羽根表示

格子点でないデータの等値線

[空間内挿 (地理情報学教材 2000年)]


4次元時空間をいろいろな2次元で見る、フーリエ変換して振動数・波数領域で見る


気象庁の地上観測の「記事」の雷の記録についてのコメント

定型文字列の処理。 (わたしが必要にせまられたら Awk でやるが、Python でもできるはず。 「自然言語処理」よりもビジネス応用が参考になるか?)


(更新) 2023-06-07
増田 耕一 (MASUDA Kooiti)
増田の個人サイトでの [この授業の入り口ページ] [立正大学の授業用の教材ページ] [教材目録ページ] [日本語入り口ページ] [ホームページ]