メソ領域をランベルト座標で描画する(上級者向け)

GrADSでは、コントロールファイルの設定によってメソ領域のデータを描画することができます(右上図)。しかしながら、ランベルト座標系のまま直接描画することはできず、等緯度経度座標に変換されて出力されます。


これをランベルト座標系のまま長方形の領域で描画し、地図を重ねることができるようにしました(右下図)。

入力は、テキスト(経度 緯度 値)またはグリッドデータが可能です。

なお、描画できるのは、ランベルト座標(正確には割円錐型のランベルト正角円錐座標)で基準緯度は北緯30度と60度、基準経度は東経140度の場合のみです。いわゆる MSM 領域で、2013年の領域拡張の前後に対応しています。


準備#0

環境変数GASCRPに設定されているディレクトリに GrADS_Scripts.tar.gz を展開する。(右クリックして保存。うまく展開できない場合)

環境変数GASCRPを設定していない場合 >>



使い方(1) テキストデータの場合

準備#1:入力データの作成

テキストで [ 経度  緯度  値 ] をタブ区切りor空白区切りで1行ずつ並べます。カンマ区切り(CSV形式)のデータは扱えませんので要注意!

並びが異なる場合(例えば [ 緯度  経度  値 ] の並びの場合)は、描画時に -xyz 2 1 3 などとオプションをつけることで読み込みのカラムの位置(列)を設定できます。

改行コードは「LF」にしてください。(「CR+LF」の場合は行末にスペースを入れると上手く動くかも?)



使用例

使用したいファイル名が tcpw.txt だとします。

> dmeso tcpw.txt

と入力すると、単にforground colorでプロットされます。

!注意 デフォルトでは縦横比が正しくありません。

デフォルトの領域設定では68:55なので、set parea で描画領域を指定します。

> set parea 1 9.036 1 7.5

> dmeso tcpw.txt

横の長さが 8.036、縦の長さが 6.5 で、約 68:55 となっています。

色々設定して、値に応じて色が変化するように描画したりなどもできます。

詳細は dtextの解説ページ をご参照ください。

> set parea 1 9.036 1 7.5

> dmeso tcpw.txt -lev 0 60 -bar 0.9 1 9.5

領域を拡張前の旧領域にするには、 -ext off のオプションを使います。

縦横比が異なる(5:4)ので、parea の設定も異なります。

> set parea 1 9.125 1 7.5

> dmeso tcpw.txt -lev 0 60 -bar 0.9 1 9.5 -ext off


以下、set parea の記述は省略します。

全領域ではなく部分領域を指定するときには、dtext と同じように -area のオプションを使います。座標系は、北から 1,2,... と並んでいるものとして、10km 解像度の時のグリッド(409×331)を元に指定します。なお、異なる解像度で考える場合は -dels オプションを使います。

たとえば、デフォルト領域の南西4分の1を指定する場合は、以下のようになります(ついでに点の大きさを大きくしています)。

> dmeso tcpw.txt -lev 0 60 -bar 0.9 1 9.5 -mark 3 0.1 -area 1 205 166 331

経緯線のスタイルを指定するときには、 -grid5 のオプションを使います。

-grid5 線の色 スタイル 太さ となります。

さらに、1度毎の経緯線を追加するには、 -grid1 のオプションを使います。

> dmeso tcpw.txt -lev 0 60 -bar 0.9 1 9.5 -mark 3 0.1 -area 1 205 166 331 -grid5 15 1 6 -grid1 15 3 3

海岸線のスタイルを指定するときには、 -coast のオプションを使います。

1つ目の引数で、解像度を指定します。 c,l,m,h の順に細かくなります。デフォルトは c です。

2〜4番目の引数で、線の色、スタイル、太さを指定します。

> dmeso tcpw.txt -lev 0 60 -bar 0.9 1 9.5 -mark 3 0.1 -area 1 205 166 331 -grid5 15 1 6 -grid1 15 3 3 -coast h 6 1 6


使い方(2) グリッドデータの場合

ここでは 15km の解像度の場合(273×221)で考えます。

準備#2.1:入力データの作成

ランベルト座標のグリッドのまま、X×Y(×Z×要素×時刻)で出力させれば問題ありません。

Y座標は北から並んでいるのをデフォルトとします。そうでない場合にも出力を並び替える必要は無く、ctlファイルで options yrevとしておけばよいです。


準備#2.2:ctlファイルの作成

フツーに元の座標のまま、

xdef 273 linear 1 1

ydef 221 linear 1 1

とすればよいです。273,221 の値は適宜変えてください。他の部分も適宜作成してください。


(参考)通常のGrADSのpdefを使う場合は例えば以下のようになります。

pdef 273 221 lcc 30 140 189 73 30 60 140 15000 15000

xdef 571 linear 102 0.1

ydef 351 linear 16 0.1


使用例

使用するファイル名が rain.ctl、変数名が rain だとします。

> open rain.ctl

> set parea 1 9.036 1 7.5

> set gxout shaded

> dmeso -set

> d rain

> close 1

> dmeso -map

dmeso -set で幾つかの設定が行われ、(重要)描画後にファイルを閉じ、dmeso -map で地図を描画します。

ファイルを毎回閉じないと、地図を正しく描画できないのでご注意ください。


d コマンドではなく、このサイトで公開しているsmcolで描画することもできます。右の図はカラーパレットを利用した例です。

> smcol rain -cpt rain.cpt -bar 1 1 9.5 -ebar off

部分領域で描画するときには、set x, set y での指定と、地図描画時の指定の2つが必要となります。

> open rain.ctl

> set parea 1 9.036 1 7.5

> set gxout grfill

> dmeso -set

> set x 1 137

> set y 110 221

> smcol rain -cpt rain.cpt -bar 1 1 9.5 -ebar off

> close 1

> dmeso -map -coast l 0 -dels 15000 -area 1 137 110 221

-dels で解像度を指定する必要があります。


さらにテキストデータを重ねる場合は、dmeso -map の代わりに、テキストと同時に地図描画します。

> dmeso tcpw.txt -dels 15000 -area 1 137 110 221 -coast l 0 -lev 0 60 -bar 0.53 1 10.4 -99 0.13 0.14 2 -int 10 -mark 3 0.1


ご不明な点やご要望などありましたら、掲示板にお願いいたします。10日以内の対応を目指しています。
緊急の場合は某所にこっそり書いてあるメールでお願いします。


By T. Egawa <2014.05.14>
トップに戻る