![]() |
![]() |
![]() |
今回使うファイルは次の3つの水温画像(GRSST)。 ※画像サイズは 141×121 |
本課題の内容 上の図は2012年4月~6月水温画像である。 上記のリンク先から画像データ(4バイトバイナリ)をダウンロードし、前回のスクリプトを応用して春期の平均画像をつくる。 考え方: 4月〜6月、それぞれの2次元のデータを格納するために、3次元の変数 sst(141,121,3)を作る。 sst(*,*,1)には4月のデータ sst(*,*,2)には5月のデータ sst(*,*,3)には6月のデータ が入るようにする。 ![]() 各ピクセル毎に、4〜6月の平均値を計算して、msstという変数に入れる。 1)まず上記リンク先の3つの海面水温画像をダウンロードする. 2)Cygwin 3)「list.dat」というファイルを用意する.やり方は以下のUnixコマンドでOK. ls 2012*.flat >! list.dat ※「cat list.dat」と打って,3つの水温画像のファイル名が端末に出ればOK. 4)フォートランスクリプトの作成.4つの流れに大きく分けられる. @フォートランスクリプトの宣言文:ファイル名のための文字型変数,水温データのための実数型変数を予め用意. character*120 ifl(3) real dum(141,121) <--- とりあえず海面水温画像一枚分のデータを確保する変数.ダミー変数というつもり real sst(141,121,3) <---変数dumからデータを引き継ぎ,海面水温画像3枚分を格納する変数 real msst(141,121) <---最終的に計算する水温の平均画像を格納する変数 Aopen文とDOループで,3)で作ったlist.datを読み込む=変数”ifl”に水温画像のファイル名を入力する BDOループとopen文で,水温画像データを変数"sst"に入力する.このとき,変数"dum"も使う CDOループを用いて,平均値を計算し,絶対温度から通常の摂氏に変換し、変数"msst"に入力する Dopen文,write文を用いて平均画像が入力されたmsstをバイナリ形式で出力する. 出力ファイル名は 2012.spr.msst.141x121.flat にしましょう |
|
注意点: 1)4バイトなので,宣言文ではrealを用いる. 2)データは絶対水温(K)で表されている. 3)データが無い陸上での値は-999. 4)計算したデータのバイナリ形式出力は,基本的にはデータ読み込み部分と同じ. ただし,文番号を変えること,およびread文ではなくwrite文にすること. |
|
出力したデータの確認方法 MATLABで確認する。 計算された画像を描画するMATLABスクリプトはここ。このスクリプトを使用すると以下の図が現れる。 ![]() 先輩達が提出した平均画像をマッピングした結果(緯度経度の範囲・元データは異なります) |
|
補足情報と課題 現在,衛星画像プロダクトもしくは衛星プロダクトを応用したデータはあらゆる所で準リアルタイムで公開されている. 神奈川県水産技術センター 海況図データベース 関東・東海海況速報:海面水温,黒潮 NASA Oceancolour Web L3 browser :MODISの海面水温,海面クロロフィル-a濃度など NASA/JPL PO.DAAC State of the Ocean :海面水温,クロロフィル,海上風など ちょっと毛色が違うが・・ GPV気象予報 ※特に海洋学実習T参加者は,乗船する前に東京湾,相模湾の海況を調べておこう. (課題) 得られた平均海面水温画像 2012.spr.msst.141x121.flat における 緯度方向 d(SST)/d(lon)と経度方向の勾配 dSST/d(lat)を計算して、 勾配が最も大きい海域の緯度・経度情報を抽出しよう。 |