「格子データ」の編集履歴(バックアップ)一覧はこちら
「格子データ」(2012/02/10 (金) 21:44:31) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<h3><font color="#FF0000">作成途中</font></h3>
<h3>格子データ</h3>
<p>はじめに言っておきますが、<br />
今回のやり方は完全に自己流です。<br />
もう少し効率のいいやりかたがあれば、教えてください…。<br /><br />
今回は点在した調査データを(下図)、<br /><a href="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri01.jpg">
<img width="400" alt="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri01.jpg" src="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri01.jpg" /></a></p>
<p> 10分間隔に整理し(下図)、<br /><a href="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri02.jpg">
<img width="400" alt="" src="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri02.jpg" /></a><br />
格子内の平均値を色で表示してみます。<br />
GMT的には格子の中心に、格子と同じ大きさの長方形を書いて、<br />
それにデータに応じた色を塗るという操作をしています。<br /><a href="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri03.jpg">
<img width="400" alt="" src="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri03.jpg" /></a></p>
<p>この様な図は、プログラムでデータセット作るのが常套手段ですが、<br />
その方法は他で紹介されていると思いますので、<br />
今回はExcelとGMTを使って描いてみます。<br /><br />
今回の手順ですが、</p>
<ol><li><strong>データに10分間隔のラベルを付ける</strong></li>
<li><strong>ピボットテーブルで格子内の平均値を求める</strong></li>
<li><strong>GMTで作図</strong></li>
</ol><p>のような感じで進めていきます。</p>
<h3>1.データに10分間隔のラベルを付ける</h3>
<p>データに整理するために調査点のデータに<br />
10分間隔のラベルを付けます。<br />
こういった場合、ExcelのFLOOR関数を使うと簡単です。</p>
<p>Floor関数は四捨五入に似たようなものなのですが、<br />
任意の間隔で切り捨てしてくれる関数です(うまく説明できてない気が…)。<br />
=floor(緯度or経度, 間隔)<br />
で使用します。</p>
<p>例えば、<br />
北緯36.6度、東経140.6度の位置データに、<br />
10分間隔(10/60)のラベルをつけると、</p>
<p>北緯36.6は<br />
=floor(36.6, 10/60)<br />
=36.5</p>
<p>東経140.6度は<br />
=floor(140.6, 10/60)<br />
=140.5</p>
<p>となります。<br /><a href="http://www19.atwiki.jp/suisan/?cmd=upload&act=open&page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&file=%E6%9E%B6%E7%A9%BA%E3%81%AE%E8%AA%BF%E6%9F%BB%E3%83%87%E3%83%BC%E3%82%BF.xlsx">
詳しくはこちらのシートをどうぞ</a>。<br />
以下の図ようなイメージ<br />
(格子内に点在するデータラベルをつけて、集約する)</p>
<p><img alt="" src="http://www19.atwiki.jp/suisan/?cmd=upload&act=open&page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&file=%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A9%E3%83%99%E3%83%AB.jpg" /><br />
さらに上記のラベルだと、格子上にデータが乗ってしまいます。<br />
そこで5分ずらしてラベルを付けてあげます。</p>
<p>北緯36.6は<br />
=floor(36.4, 10/60)+5/60<br />
=36.5833…</p>
<p>東経140.6度は<br />
=floor(140.2, 10/60)+5/60<br />
=140.5833…</p>
<p>つまりこういうこと<br /><img alt="" src="http://www19.atwiki.jp/suisan/?cmd=upload&act=open&page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&file=%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A9%E3%83%99%E3%83%AB%E7%A7%BB%E5%8B%95.jpg" /></p>
<div>こうしてあげると格子の中心にデータを示すことができます。</div>
<div> </div>
<div>
<h3>2.<strong style="line-height:19px;">ピボットテーブルで格子内の平均値を求める</strong></h3>
<p>floorで作成したデータラベルをもとにピボットテーブルで<br />
データを集約し、格子毎の平均値を算出します。<br /><a style="line-height:19px;" href="http://www19.atwiki.jp/suisan/?cmd=upload&act=open&page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&file=%E6%9E%B6%E7%A9%BA%E3%81%AE%E8%AA%BF%E6%9F%BB%E3%83%87%E3%83%BC%E3%82%BF.xlsx">
こちらのファイルのタブ「格子毎の平均値算出」<br /></a>これで<br /><strong>緯度ラベル、経度ラベル、格子内の平均測定値</strong>の<br />
データが得られます。</p>
<p> </p>
<h3><strong><span style="line-height:19px;">3.GMTで作図</span><br /></strong></h3>
<p><strong><span style="background-color:rgb(255,0,0);">作成中</span></strong></p>
<p><span style="line-height:19px;background-color:rgb(102,102,102);">----------------------------------------------------------</span> <br /><span style="background-color:rgb(255,255,153);">#パラメータ<br />
lat=140/148/38/44.5<br />
col=GMT_grid_col2.cpt<br />
data=grid_color.txt<br />
output=grid_data.eps<br /><br />
#カラーパレット作成<br /><br />
#makecpt -CGMT_grid_col.cpt -T0.01/1.5/0.01> GMT_grid_col2.cptmakecpt<br /><br />
#データファイルから経度、緯度、観測データ平均値を抽出<br /></span><span style="background-color:rgb(255,255,153);">#データの中心に長方形を描く<br />
awk '{print $1,$2,$3,0.24,0.32}' $data | \psxy -Jm -Sr -C$col -P -R$lat -K
> $output<br /><br />
#陸地を描く<br /><br />
pscoast -R -Jm -Df -W1 -G200 -A500 -Ba2g0.166666666:."grid_data": -P -O -K
>> $output<br /><br />
#凡例<br /><br />
psscale -D6/-1/8/0.3h -O -K -C$col -I -B0.2 >> $output<br /><br />
#データが無い地点に×をかく<br />
awk '($3==0 ){print $1,$2}' $data | \<br />
psxy -Jm -Sx0.2 -G0 -W5/0 -R -O >> $output</span><br /><span style="line-height:19px;background-color:rgb(102,102,102);">----------------------------------------------------------</span><span style="line-height:19px;"> </span></p>
<div> </div>
<p> </p>
</div>
<p> </p>
<h3><font color="#FF0000">作成途中</font></h3>
<h3>格子データ</h3>
<p>はじめに言っておきますが、<br />
今回のやり方は完全に自己流です。<br />
もう少し効率のいいやりかたがあれば、教えてください…。<br /><br />
今回は点在した調査データを(下図)、<br /><a href="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri01.jpg">
<img width="400" alt="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri01.jpg" src="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri01.jpg" /></a></p>
<p> 10分間隔に整理し(下図)、<br /><a href="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri02.jpg">
<img width="400" alt="" src="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri02.jpg" /></a><br />
格子内のデータの平均値を色で表示してみます。<br />
GMT的には格子の中心に、格子と同じ大きさの長方形を書いて、<br />
それにデータに応じた色を塗るという操作をしています。<br /><a href="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri03.jpg">
<img width="400" alt="" src="http://www19.atwiki.jp/suisan?cmd=upload&act=open&pageid=41&file=gri03.jpg" /></a></p>
<p>この様な図は、プログラムでデータセット作るのが常套手段ですが、<br />
その方法は他で紹介されていると思いますので、<br />
今回はExcelとGMTを使って描いてみます。<br /><br />
今回の手順ですが、</p>
<ol><li><strong>データに10分間隔のラベルを付ける</strong></li>
<li><strong>ピボットテーブルで格子内の平均値を求める</strong></li>
<li><strong>GMTで作図</strong></li>
</ol><p>のような感じで進めていきます。</p>
<h3>1.データに10分間隔のラベルを付ける</h3>
<p>データに整理するために調査点のデータに<br />
10分間隔のラベルを付けます。<br />
こういった場合、ExcelのFLOOR関数を使うと簡単です。</p>
<p>Floor関数は四捨五入に似たようなものなのですが、<br />
任意の間隔で切り捨てしてくれる関数です(うまく説明できてない気が…)。<br />
=floor(緯度or経度, 間隔)<br />
で使用します。</p>
<p>例えば、<br />
北緯36.6度、東経140.6度の位置データに、<br />
10分間隔(10/60)のラベルをつけると、</p>
<p>北緯36.6は<br />
=floor(36.6, 10/60)<br />
=36.5</p>
<p>東経140.6度は<br />
=floor(140.6, 10/60)<br />
=140.5</p>
<p>となります。<br /><a href="http://www19.atwiki.jp/suisan/?cmd=upload&act=open&page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&file=%E6%9E%B6%E7%A9%BA%E3%81%AE%E8%AA%BF%E6%9F%BB%E3%83%87%E3%83%BC%E3%82%BF.xlsx">
詳しくはこちらのシートをどうぞ</a>。<br />
以下の図ようなイメージ<br />
(格子内に点在するデータラベルをつけて、集約する)</p>
<p><img alt="" src="http://www19.atwiki.jp/suisan/?cmd=upload&act=open&page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&file=%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A9%E3%83%99%E3%83%AB.jpg" /><br />
さらに上記のラベルだと、格子上にデータが乗ってしまいます。<br />
そこで5分ずらしてラベルを付けてあげます。</p>
<p>北緯36.6は<br />
=floor(36.4, 10/60)+5/60<br />
=36.5833…</p>
<p>東経140.6度は<br />
=floor(140.2, 10/60)+5/60<br />
=140.5833…</p>
<p>つまりこういうこと<br /><img alt="" src="http://www19.atwiki.jp/suisan/?cmd=upload&act=open&page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&file=%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A9%E3%83%99%E3%83%AB%E7%A7%BB%E5%8B%95.jpg" /></p>
<div>こうしてあげると格子の中心にデータを示すことができます。</div>
<div> </div>
<div>
<h3>2.<strong style="line-height:19px;">ピボットテーブルで格子内の平均値を求める</strong></h3>
<p>floorで作成したデータラベルをもとにピボットテーブルで<br />
データを集約し、格子毎の平均値を算出します。<br /><a style="line-height:19px;" href="http://www19.atwiki.jp/suisan/?cmd=upload&act=open&page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&file=%E6%9E%B6%E7%A9%BA%E3%81%AE%E8%AA%BF%E6%9F%BB%E3%83%87%E3%83%BC%E3%82%BF.xlsx">
こちらのファイルのタブ「格子毎の平均値算出」<br /></a>これで<br /><strong>緯度ラベル、経度ラベル、格子内の平均測定値</strong>の<br />
データが得られます。</p>
<p> </p>
<h3><strong><span style="line-height:19px;">3.GMTで作図</span><br /></strong></h3>
<p><strong><span style="background-color:rgb(255,0,0);">作成中</span></strong></p>
<p><span style="line-height:19px;background-color:rgb(102,102,102);">----------------------------------------------------------</span> <br /><span style="background-color:rgb(255,255,153);">#パラメータ<br />
lat=140/148/38/44.5<br />
col=GMT_grid_col2.cpt<br />
data=grid_color.txt<br />
output=grid_data.eps<br /><br />
#カラーパレット作成<br /><br />
#makecpt -CGMT_grid_col.cpt -T0.01/1.5/0.01> GMT_grid_col2.cptmakecpt<br /><br />
#データファイルから経度、緯度、観測データ平均値を抽出<br /></span><span style="background-color:rgb(255,255,153);">#データの中心に長方形を描く<br />
awk '{print $1,$2,$3,0.24,0.32}' $data | \psxy -Jm -Sr -C$col -P -R$lat -K
> $output<br /><br />
#陸地を描く<br /><br />
pscoast -R -Jm -Df -W1 -G200 -A500 -Ba2g0.166666666:."grid_data": -P -O -K
>> $output<br /><br />
#凡例<br /><br />
psscale -D6/-1/8/0.3h -O -K -C$col -I -B0.2 >> $output<br /><br />
#データが無い地点に×をかく<br />
awk '($3==0 ){print $1,$2}' $data | \<br />
psxy -Jm -Sx0.2 -G0 -W5/0 -R -O >> $output</span><br /><span style="line-height:19px;background-color:rgb(102,102,102);">----------------------------------------------------------</span><span style="line-height:19px;"> </span></p>
<div> </div>
<p> </p>
</div>
<p> </p>