バイナリファイル(海底地形)の入出力を行う

バイナリ形式の海底地形データを読んで、エクセルで図を書いてみる。読み込むデータはETOPO5と呼ばれる水深データ。
下図は今回読むデータをマッピングしたもので,クリックすればデータをダウンロードできる.
1.このデータを読み込んで、各ピクセルの緯度経度情報を計算する。
2.その後、自分で決めた条件にあてはまるピクセルでの緯度経度情報を出力する。
3.出力したデータをエクセルで読んで、散布図を書いてみる。
  例えば海岸線・陸地を書きたいときは、水深0mの緯度経度だけを出力すればよい。詳細は以下の通り。

まずは下図をクリックして水深データをダウンロードし,MATLABで描画してみよう.
MATLABのスクリプトはここからダウンロード


ETOPO5(水深データ)をマッピングすると左のようになる.
上記のMATLABスクリプトを使うと描画できる.ちなみに左図はSeaDASというソフトでマッピングしているので,全く同じ図はできません.

※MATLABスクリプトを
左の水深のバイナリデータと同じフォルダにダウンロードして,MATLABのウィンドウを立ち上げる.スクリプトを開いたら,ウィンドウ内の再生ボタンをクリックすればよい.

描画された図も同じように暖色系は水深が浅く,寒色系は水深が深いことを示すようになっているはず.

左図の元ファイルである「BATHY_421x361_4f.flat」については以下に示すとおり.

バイナリの種類:2-byte integer
バイナリデータの詳細:421ピクセル(カラム)x361ピクセル(ライン)
緯度経度の範囲: 25°N - 55°N,120°E - 155°E
解像度:5’メッシュ(つまり1/12°ということ).

このデータを読むスクリプトは以下の通り.ちなみにこのままコピー&ペーストしたら日本語が入ってしまうので,コンパイルできません.あしからず.

c234567
    integer*2 bath(421,361)

    open(10,file="./BATHY_421x361_4f.flat", access="direct",form='unformatted', recl=421*361*2,status="old")
    read(10,rec=1) bath

    close(10)
    end

バイナリにまつわるお話はここをクリック