気象庁 "him sst" 海面水温 を Pythonで読み、作図する (試作版)


気象庁が提供する海面水温データについての概略の情報は、 気象庁のウェブサイトのつぎのページにある。

そこから直接リンクされたページには海面水温の地図画像があるが、 数値データは、 気象庁が国際的にデータを提供しているつぎのウェブサイトにある。

ここでは、そのうちの him_sst_pac_D および him_sst_pac_T というディレクトリにある ファイルをあつかう。

これは、気象衛星ひまわりの観測を主とし、 NOAAなどの極軌道衛星や、船やブイによる現地観測もあわせて 編集された海面水温のデータセットである。 (「him」は「ひまわり」でなく「high resolution merged」とされている。) 対象領域は「北西太平洋」で、赤道から北緯60度、 東経100度から180度までを、緯度経度 0.1度きざみにした 東西 800 × 南北 600 の格子データである。 (緯度・経度のきりのよい値の格子線上でなく、 格子線にはさまれた ます目に対応して値がある。) ただし、陸にあたるます目は欠損あつかいとなる。 海氷におおわれたます目も海面水温としては欠損だが、 陸とは区別された値がはいっている。 期間は、2017年2月1日から、最近までである。 him_sst_pac_D は1日ごと、 him_sst_pac_T は旬ごと (毎月 1-10日、11-20日, 21日-月末) の値である。

hamana および niigata の /raid/jma_him_sst/from_jma/him_sst_pac_D/ に 2026年 2月19日までの日ごとのデータを、 /raid/jma_him_sst/from_jma/him_sst_pac_T/ に 2026年 2月下旬までの旬ごとのデータを、置いた。

このファイルの形式は、テキストファイルである。 上記のそれぞれのディレクトリ内にある Readme_him_sst_pac_D, Readme_him_sst_pac_T というファイル中に英語で説明されている。


形式変換、変換後のファイル

あとの作業のつごう上、 このデータを、月ごとにまとめ、 4バイト浮動小数点型 (下位バイト先行) の バイナリデータに変換した。

変換のプログラム

変換結果のバイナリデータを置くディレクトリ

変換結果のバイナリデータのファイル名 (例: 2016年1月のばあい)

(ファイル名の拡張子部分の最後の字は小文字のエル)。

各ファイルにふくまれた時間ステップ数

空間格子

800×600で、南から北へ、その各緯度ごとに西から東へ 数値がならんでいる。

数値

水温 [℃] である。 ただし、陸のます目は数値の欠損をあらわす NaN になっている。 海氷におおわれたます目は便宜上 -3.0 という値を入れてある。


データを利用するプログラム例

niigata と hamana で、 /home/masudako/ex/jma_him_sst/ に置く。 つぎのようにしてためしてみてほしい。

cp -r /home/masudako/ex/jma_him_sst . (スペースのあとにピリオド)

cd jma_him_sst

emacs map_him_sst_daily.py ... 編集。日時、緯度経度範囲、画像ファイル保存か画面表示か、などを変更

python map_him_sst_daily.py

日ごとの海面水温を地図上に作図

指定した期間 (年は year で1つに固定、 月日は monthstart の daystart から monthend の dayend まで) の 毎日について、それぞれ海面水温を地図上に作図する。

【毎日ではなく、たとえば月の1日、11日、21日だけを作図するならば、 「days = range( ... )」のところを「days = [1, 11, 21] 」と変更する。 旬平均ではないことに注意。】

緯度経度範囲は、lonmin, lonmax, latmin, latmax に与える値で指定する。 現在のプログラム例では、(データセットの全範囲ではなく) 北緯10度から60度、東経110度から170度となっている。 地図の対象とする地球上の領域をせまくするばあいは、 格子線の間隔を指定している dlon (経度間隔)、dlat (緯度間隔) も小さくするとよい。 また、ax.coastlines で指定している海岸線データのくわしさ「'50m'」を「'10m'」にしたほうがよいかもしれない。

色わけは、配列 levels で、区間のさかいめの気温の値をあたえ、 「mappable = ax.contourf( ... )」という実行文の cmap のところでカラーマップを指定している。 現状は、-4℃から34℃まで2℃きざみの区間、'coolwarm' というカラーマップである。 (区間の下限を -4℃としたのは、海氷域に便宜上与えた値を、 陸とも実際の海面水温とも区別された色で表示したかったからである。)

savefig が True のとき図を画像ファイル(png)に保存する。 画像ファイルを置くディレクトリは imagefilepath で指定する。 (プログラム例では、作業ディレクトリの下の image ディレクトリとしている。) False のときは画面(X)表示する。

旬ごとの海面水温を地図上に作図

旬ごとの海面水温の平年値 (normal) を地図上に作図

旬ごとの海面水温の平年値からの偏差 (anomaly) を地図上に作図


2026-03-05, 2026-03-09 増田 耕一 (MASUDA Kooiti)
[計算機を利用した気象分野の実習の教材] [教材目録ページ] [日本語入り口ページ] [ホームページ]
[セミナーのページ]