0.イントロ

目的.点のデータを面のデータにする。

→ポイントを面のデータとするなど、色々用途がある。
→用途として高さ毎の分布などがある。
どういうレゾリューションでデータを分解するかを考える。
地形を断面で見る必要がある。

数回に分けて、このあたりのデータについて調べる
v.surfによる3次元の表示やvolumeによる体積の調査など
→krigingを行う

GRASS単体では行うことが出来ないので、Rも利用する。
Geostatitics(統計学)

krigingとは・・・
http://en.wikipedia.org/wiki/Kriging(wiki)

1.作業準備

プログラムの利用
まず、ktermを立ち上げる
ls -al/DATA/Meteo/
色々なデータが保存されていることがわかる。
今回はnormal_amedasを利用

先生のディレクトリからルビーのスクリプトを自分のディレクトリのisebayにコピーします
カレントディレクトリの移動
cd /R_test/Isebay
データコピー
cp /home/kaoru/GIS/AMeDAS/amedas_normal.rb .
※このページにもスクリプトを添付しておきます

2.今回使用するスクリプトの説明

ここでは記述内容に付いて説明します

どのようにデータを変換するか

今回はv.in.asciiでデータをインポート使いたいので、
そのように書式を変換する必要がある。
どのように書けばいいか、調べてみる。
まず、ブラウザを立ち上げ、GRASSのオフィシャルページのマニュアルのページに飛ぶ。
http://grass.itc.it/gdp/manuals.php
次に、コマンドの内容を確認する
v.in.ascii
コマンドのオプション説明に加え、下に例があるので見ておくと良い

それらの例を参考にデータを以下のように変換する。
  • 経度|緯度|高度|1月2月3月|・・・|12月|年|ID|名前

アメダスのデータを調べる

ls -al/DATA/Meteo/normal_amedas/monthly
をみると
エリアごとにデータが分けられている。
ここではエリア53を見てみる。
ls -al/DATA/Meteo/normal_amedas/monthly/area53/
中にはcsvのデータがあることがわかる。
lessを使って中身を見て確認すると良い。


スクリプトの流れ

1~3行目は基本設定の部分(ファイルの位置、欲しい座標の位置情報)を表している

9行目にcsvファイルを読み込む指示があるが、
ここでは観測所(ステーション)のデータを読み込んでいる。
csvをlessもしくはemacsを使って中身を見てみる
less /DATA/Meteo/normal_amedas/amedas_station_index.csv
emacs /DATA/Meteo/normal_amedas/amedas_station_index.csv
日本語の部分は文字化けを起こしているが、大体の内容は読むことが出来る。

11行目からステーションごとの箱を開く
15行目から28行目までが必要なステーションを探す作業
18行目から@fで定義されたファイルを順に読んでいく
18~26行目で指定されたエリア内か確認し、正しければ格納していく。
20行目で座標を度分秒に変換する
24行目gsubで空白を削除している
34行目はステーションごとの月単位の降雨量のデータを作成している。
38行目の4000というのはcsvデータ内に雨があるという意味を表す。
この数値があれば、データ内に雨のデータがあることがわかる。
(例えば、雪山であれば、冬季に雨量が観測されることはないので。)
39行目ではsplitでコンマごとに配列に代入してしまう。ちなみにタブ区切りなら("\t")になる。
40行目で1つのステーション毎にrainという箱をつくっている
41行目でrainの中にデータを入れていく作業を行う.
53行目のwはデータ書き込みを行うの意
57行目で位置を記入
58行目で雨量データを12か月分を記入
59行目で年平均、id、観測所名を記入 
69行目で前の観測所のデータのリセットがかかる。

以上スクリプトの内容説明

3.データの処理

シェルスクリプトをコピーする
→シェルスクリプトとは命令を一つずつ打ち込んで処理せず、
 一辺に処理してもらう為の命令書のようなもの
cp /home/kaoru/GIS/AMeDAS/cat* .

2.でコピーしてきたrubyを起動します
ruby amedasu_normal.rb
ファイルが作成されたことをlsで確認しましょう

GRASSを立ち上げます
いつもと同じIsebayを選択してください
モニタを立ち上げます
d.mon x0

リージョンの入れ替え

これから対象地域が増えるに従い、いくつもリージョンを準備しておく必要があります。
そこで、リージョンの作成・保存・切り替えについて練習します。
まず、リージョンを確認しておく
g.region -p
前のリージョンに戻す
g.region -d
g.region -pで確認してみると前のリージョンに戻っていることが分かる
リージョンを新規に作成します
g.region n=35:30N s=33:20N w=135E e=137E ns=0:0:15 ew=0:0:22.5
リージョンを保存します
g.region save=500m
リージョンの呼び出しをします
g.region region=500m
リージョンのリストを確認します
g.list region

cat2dの中身を確認する
less cat2d

上記のデータを使ってみましょう。
cat2dの内容を実行する
sh cat2d
ノード(点)が93個出来ていると思います

出来上がったデータ(ベクタ)を表示しましょう
d.vect precip_2D
中身(情報)を見てみましょう
v.info precip_2D -c

ラスタを作成します
  • v.surf.rst precip_2D elev=precip_annual zcol=annual segmax=700
precip_annualが出来たことを確認します
g.list rast
precip_annualを表示します
d.rast precip_annual

今回の作業は以上です

タグ:

+ タグ編集
  • タグ:
最終更新:2007年12月12日 12:51
添付ファイル