GMTサンプルスクリプトページ@東京海洋大学
HOME | sample.1 | sample.2 | sample.3 | sample.4 | sample.5 | sample.6 | sample.7 | sample.8 | sample.9 | sample.11 |
11. netCDFをバイナリに落とすまで・・ | ||
久々にNetCDFで混乱したので記念かきこみ。 @GEBCOからDLしたnetCDFがFerretで読めない、というより規格が違うのでCOADS規格へ変換してやる。 →データが大きすぎて、Ferretが読み込み中に死亡する AFerretで無理矢理set memory/size=200(←もうこの数字でさえ正しいのかわからん)で読み込み、バイナリにダンプ BMATLABでバイナリを読み込み、低解像度にする。 CFerretで読むときは、緯度経度情報を再定義してやる |
||
@まずはGMTコマンド、grd2xyzでバイナリに変換 #1. Original GEBCO is converted by using GMT command # 1-D to 2-D grd2xyz gebco_1min_-180_-90_180_0.nc -ZTLf > gebco.bin AFerretで読んでみる(確認) #2. Using Ferret, GRID is defiend set memory/size=200 use gebco4fer.cdf define axis/x=-180:180:0.0166666 x1 define axis/y=-90:0:0.01667 y1 define grid/x=x1/y=y1 x1y1 file/var=geb/grid=x1y1/format=stream gebco.bin sh d BMATLABで反転+低解像度へ #3. Using Matlab 'fliplr' dir fid=fopen('gebco.bin','r'); dat=fread(fid,[21601 5401],'float'); % ←1minメッシュ(GEBCOデータに限らず)は南半球でこの大きさ dat2=fliplr(dat); fid2=fopen('gebco-rev.bin','w'); fwrite(fid2,dat2,'float'); fclose(fid) fclose(fid2) CFerretで読むときは緯度経度をDEFINE関数で再定義 #4. using Ferret, making sure GEBCO data 2161x541 set memory/size=200 define axis/x=-180:180:0.166666 x1 define axis/y=-90:0:0.1667 y1 define grid/x=x1/y=y1 x1y1 file/var=geb/grid=x1y1/format=stream gebco-rev.bin contour/lev=(-500,-50,50,-1)/x=80:180/y=-70:-30 GEB contour/over/color=1/size=0.15/sigdig=1000/lev=(-4000,-1000,1000)/x=80:180/y=-70:-30 GEB |
||