インドネシアのデータを使用
今回からインドネシアについて、GISを用いて解析していきます。
まず、いつものようにQ-GISを立ち上げて下さい。
インドネシアの範囲を設定する
- GRASSの星印の新規マップセットをクリックする。
- Nextをクリックし、「新しいロケーションを作成」を選択する。
- Indonesiaの名前を入力し、Nextをクリックする。
- 「投影法」をクリックし、WGS84 (EPSG4326, ID3452)を選択し、Nextをクリックする。
北 10
西 90 東 145
南 -15
を入力する(インドネシアの範囲を指定する)。
- 新規マップセットは自分の名前にする。
- finishをクリックする。
次に、boundary.shpをドラッグアンドドロップでQGISのレイヤパネルに持って来る。
同様に、drainage_line.shpもレイヤパネルに持って来る。
今回のデータはGTOPO30の1km-meshの地形を用いている。
GRASS shellで編集
- 左側アイコンの下から三つ目、トンカチのマークの「GRASSツールを開く」をクリックする。
- shell-GRASS-shellと書いている所をクリックしてコマンドプロンプトを立ち上げる。
cd C:\GRASS\環境解析学特論\Indonesia
GRASS内のE060N40, E100N40を保存したフォルダに入る。ここでは「環境解析学特論」のIndonesiaのフォルダの中に保存したので上記のスクリプトとなっているが、別の場所に保存した場合はそのフォルダに入ること(配布データではIndonesia_demのフォルダの中に入っているのでそこに入る)。
r.in.gdal -o in=E060N40.DEM out=e060n40
e060n40をGRASSに入れる。
r.in.gdal -o in=E100N40.DEM out=e100n40
E100N40についても同様に。
r.patch in=e060n40,e100n40 out=dem
くっ付ける作業
g.remove rast=e060n40,e100n40
上記の作業をしたことにより不要になったものを消す。消してしまうと元には戻せないので注意する。
r.colors dem rule=srtm
色を変える。
画面を見易く
- QGISのメインの画面に戻る。
- 左側のアイコンの上から五つ目、新規ラスタレイヤを選択をクリックし、地図名でdemを選んで「了解」をクリックする。demは最下層にすると見易い。
- drainageをもう一段階細くする。
Stationの作成
解析のためにプログラミング知っておく方が良い。次回までにRubyのインストールを済ませること。
IDN_daily_prcp.txtのデータのステーション名、緯度、経度、高度をRubyを用いて抽出したのがStation.txtである。そのスクリプトは以下の通りである。
file = "IDN_daily_prcp.txt": f = open(file) # 入力データのオープン
###################################################################################
# Longitude and Latitude: degree and minute to deg 度・分を度(10進法)に変換
def ddmm2deg(dd.mm)
if dd >= 0
deg = dd + mm/60.0
else
deg = dd - mm/60.0
end
deg
end
###################################################################################
stations = {}
while line = f.gets # ファイルを一行ずつ読みながら
if /^Station/=~ line # 先頭にStationが来れば
station = line[0,30] # 観測地点名の取得
year = line[30,4].to_i # 観測年の取得
# 観測地点の緯度経度の取得; 度・分を度(10進法)に変換
lat_deg = line[34,5].to_f; lat_min = line[39,2].to_f; lat = ddmm2deg(lat_deg,lat_min)
lon_deg = line[41,5].to_f; lon_min = line[46,2].to_f; lon = ddmm2deg(lat_deg,lat_min)
alt = line[48,6].to_i; st_num = line[56,18].strip # 高度と地点番号の取得
# 格納配列の初期化
unless stations[station]
stations[station] = []; years = []
end
years <<year # 年配列格納
stations[station] = [lon,lat,alt,st_num,years] # 各地点属性の格納
end
end
f.close # 入力ファイルを閉じる
out = open("Station.txt","w") # 出力ファイルオープン
# 地点名、経度、緯度、高度を書き出す
out.puts "Station,lon,lat,alt"
stations.each{|station,data| out.printf "%s,%.4f,%d\n", station[8..-1].strip.delete(" "), data
[0], data[1], data[2]}
Stationの表示
- 上方メニューのプラグインをクリックする
- デリミティッドテキストの中のデリミティッドテキストレイヤの追加をクリック
- 区切り文字を,(コンマ)にする。
- 右上のをクリックして、Rain_indonesiaのフォルダにあるStation.txt選ぶ。
- OKをクリックする。
- 画面上に点としてStation(降水量の観測点)が表示される。
今回はここまでです。宿題忘れぬようお願いします。
宿題(再記):次回授業までにRubyのインストールを済ませておくこと。
Rubyのダウンロードの仕方
- http://rubyforge.org/projects/rubyinstaller/にアクセスする。
- One-Click Installerの項目を選ぶ。
- 通常(6月9日現在)はrubyinstaller-1.9.2-p180.exeをクリックしてダウンロードする。
- インストーラーを実行し、画面の指示に従ってRubyのインストールをする。
最終更新:2011年06月09日 19:30