「格子データ」の編集履歴(バックアップ)一覧はこちら

格子データ」(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&amp;act=open&amp;pageid=41&amp;file=gri01.jpg"> <img width="400" alt="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;file=gri01.jpg" src="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;file=gri01.jpg" /></a></p> <p> 10分間隔に整理し(下図)、<br /><a href="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;file=gri02.jpg"> <img width="400" alt="" src="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;file=gri02.jpg" /></a><br /> 格子内の平均値を色で表示してみます。<br /> GMT的には格子の中心に、格子と同じ大きさの長方形を書いて、<br /> それにデータに応じた色を塗るという操作をしています。<br /><a href="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;file=gri03.jpg"> <img width="400" alt="" src="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;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&amp;act=open&amp;page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&amp;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&amp;act=open&amp;page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&amp;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&amp;act=open&amp;page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&amp;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&amp;act=open&amp;page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&amp;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&gt; 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 &gt; $output<br /><br /> #陸地を描く<br /><br /> pscoast -R -Jm -Df -W1 -G200 -A500 -Ba2g0.166666666:."grid_data": -P -O -K &gt;&gt; $output<br /><br /> #凡例<br /><br /> psscale -D6/-1/8/0.3h -O -K -C$col -I -B0.2 &gt;&gt; $output<br /><br /> #データが無い地点に×をかく<br /> awk '($3==0 ){print $1,$2}' $data | \<br /> psxy -Jm -Sx0.2 -G0 -W5/0 -R -O &gt;&gt; $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&amp;act=open&amp;pageid=41&amp;file=gri01.jpg"> <img width="400" alt="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;file=gri01.jpg" src="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;file=gri01.jpg" /></a></p> <p> 10分間隔に整理し(下図)、<br /><a href="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;file=gri02.jpg"> <img width="400" alt="" src="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;file=gri02.jpg" /></a><br /> 格子内のデータの平均値を色で表示してみます。<br /> GMT的には格子の中心に、格子と同じ大きさの長方形を書いて、<br /> それにデータに応じた色を塗るという操作をしています。<br /><a href="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;file=gri03.jpg"> <img width="400" alt="" src="http://www19.atwiki.jp/suisan?cmd=upload&amp;act=open&amp;pageid=41&amp;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&amp;act=open&amp;page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&amp;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&amp;act=open&amp;page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&amp;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&amp;act=open&amp;page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&amp;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&amp;act=open&amp;page=%E6%A0%BC%E5%AD%90%E3%83%87%E3%83%BC%E3%82%BF&amp;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&gt; 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 &gt; $output<br /><br /> #陸地を描く<br /><br /> pscoast -R -Jm -Df -W1 -G200 -A500 -Ba2g0.166666666:."grid_data": -P -O -K &gt;&gt; $output<br /><br /> #凡例<br /><br /> psscale -D6/-1/8/0.3h -O -K -C$col -I -B0.2 &gt;&gt; $output<br /><br /> #データが無い地点に×をかく<br /> awk '($3==0 ){print $1,$2}' $data | \<br /> psxy -Jm -Sx0.2 -G0 -W5/0 -R -O &gt;&gt; $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>

表示オプション

横に並べて表示:
変化行の前後のみ表示: