0.はじめに
Network File System:NFS
複数のネットワークパソコン内のホームディレクトリのデータを自由に読み書きできるようにできるシステム
Network Information System:NIS
ホストサーバーに必要な情報を自動的に提供するためのシステム
この事に関しては,近々やります.
参考:
(
NFSの設定 )
(
Nagano Solution )
1.GRASSの設定
サーバーがeosmerからeosmaiに変更されました.
それに伴い,GRASSもvar6.0からvar.6.2にアップグレードされました.
そこで,新しく[biwa]を作り直し,再出発します.
そのため,一部,前回までの作業と重複するところがあります.
ホームディレクトリでリスト[ls]をとって,ディレクトリ[GRASS],[Biwa]がない人はコマンド[mkdir]を使って,[GRASS],[Biwa]を作成してください.
cd Biwa
先生のディレクトリから必要なデータをコピーします.
cp /home/kaoru/GIS/Biwa/* .
では,GRASS6.2を立ち上げます.
grass62
すると,新しいウィンドウが開きます.
まず,GRASSの初期設定をします.
ウィンドウの上の方に[GIS Data Directory]という欄がありますが,初期設定では[/home/ユーザー名]となっていると思います.
ここで,[ユーザー名]はそれぞれのログイン名のことです.
この[GIS Data Directory]を以下のように変更してください.
GIS Data Directory: /home/ユーザー名/GRASS
2.ロケーションの設定
1.に続いて,ウィンドウの左下あたりに[Projection values]というボタンをクリックしてください.
この[Projection values]がGRASS6.0での[Create New Location]に相当します.
すると,コマンドラインで[LOCATION],[MAPSET],[DATABASE]の入力画面が表示されます.
これには,以下のように設定してください.
LOCATION: Biwa
MAPSET: ユーザー名
DATABASE: /home/ユーザー名/GRASS
続いて,[yes]もしくは[no]を選択していきますが,特に記述がない場合は全て[yes]を選択してください.
今回選択する座標系は「緯度経度座標系(B)」ですので,Bを入力します.
ロケーションの一言説明を入力します.
一言説明のすぐ後の[yes/no]は[no]を選択してください.
すると,回転楕円体(ellipsoid)は[bessel]を選択してください.
ベッセル楕円体は日本測地系で作られた地図に採用されていました.
今回使用する琵琶湖周辺のデータは日本測地系に沿って作られているので,ベッセルを選択します.
また,世界測地系で作られた地図の場合は,[wgs84]という回転楕円体が採用されています.
(参照:
世界測地系移行の概要 )
続いて,範囲や解像度の設定を行います.
下のように入力してください.
[DEFINE THE DEFAULT REGION] North: 36N South: 34:40N West: 135E East: 137E
[GRID RESOLUTION] East-West: 0:0:11.25 North-South: 0:0:07.5
3.GRASSへのデータの取り込み方とマスクの取り付け・取り外し方
ロケーション[Biwa]に入ったら,まずモニターを立ち上げます.
d.mon start=x0
モニターは同時に7個まで立ち上がりますので,必要に応じて必要な数だけ使ってみてください.
では,データをGRASSに取り込みます.
r.in.bin -b in=dem_sem.bin out=dem250 byte=2 n=36N s=34:40N w=135E e=137E r=640 c=640
g.list rast
確認のために,コマンド[g.list]を用いて,GRASSに取り込んだラスターデータの一覧を見てみましょう.
先ほど作成した[dem250]があればOKです.
しかし,[dem250]は陸域の標高データです.
なので,海域の標高をnull(no data)にしたいと思います.
そのために,まず,海域の標高がいくつになっているのかを知ります.
d.what.rast
このコマンドを用いると,マウスで左クリックした位置の値が表示されます.
海域の標高は[-1000]でしたので,これをnullにします.
r.null map=dem250 setnull=-1000
すると,プログラムミスで一部の海域がnullになっていません.
再び,[d.what.rast]を行い,[r.null]を用いて,これをnullにしてください.
r.null map=dem250 setnull=-999
d.rast dem250
今度は,琵琶湖の位置を記したラスターデータをGRASSに取り込みます.
r.in.bin in=biwa.bin out=biwa byte=2 n=36N s=34:40N w=135E e=137E r=640 c=640
[d.what.rast]を用いると,赤い部分が[1],黄色の部分が[0]である事がわかりました.
この数値を変えます.
[1]を[null],[0]を[1]に変更します.
r.reclass in=biwa out=biwa_mask
1 = NULL
0 = 1
end
d.rast biwa_mask
では,作成した[biwa_mask]をマスクとしてかけてみます.
g.copy rast=biwa_mask,MASK
d.rast dem250
今度はマスクをはずします.
方法としては,ラスターのMASKを削除するという事になります.
g.remove rast=MASK
同じように,今度は陸域だけのマスクを作成します.
r.reclass in=dem250 out=dem_mask
-1 thru 1651 = 1
end
さらに,陸域であり,かつ琵琶湖ではないマスクを作成します.
そのために,[biwa_mask]と[dem_mask]を掛け算しましょう.
r.mapcalc
ここで,(作るデータ) = (データA) * (データB) という形になることに注意してください.
mapcalc> dem_biwa_mask = dem_mask * biwa_mask
mapcalc> end
d.rast dem_biwa_mask
g.copy rast=dem_biwa_mask,MASK
d.rast dem250
4.流域解析
では流域解析を行ってみましょう.
まず,対象領域が大きすぎるので,[d.zoom]を用いて一部の地域を選択します.
だいたい,分水嶺が見れるぐらいの大きさが良いので,琵琶湖の1/3~1/2ぐらいの広さを対象にします.
以降では,例として,琵琶湖の北部を対象としてみます.
まず,標高データ[dem250]から,流域と川を作成します.
r.watershed el=dem250 th=100 ba=ba100 st=st100
ここで,オプション[th]とは計算する際の細かさを表したもので,この値が大きいほど多くのセルを用いて計算する事になります.
d.rast ba100
d.rast st100
ba100とst100を両方見るために,モニターをもう一つ立ち上げます.
d.mon start=x1
複数モニターを立ち上げる場合は,どちらのモニターが選択されているのかに注意する必要があります.というのは,選択されたモニターに画像が表示されるからです.
モニターの名前はモニターウィンドウに書いてあるので,それを参照してみてください.
方法は,
d.mon select=x0
です.
川というのは本来線ですので,[st100]をベクターに変換します.
まず,再線化を行い,ラインをまとめます.
r.thin in=st100 out=st100t
d.rast st100t
再線化する前の[st100]と比べてみてください.
r.to.vect in=st100t out=st100
d.vect st100
以上のようにして,ベクターデータに変換できました.
しかし,カテゴリや属性など,選択できていないデータも多く,完全なベクターデータとは言えません.
そこで,よりよいベクターデータを作成するために,まずベクターデータのデジタイズして,琵琶湖に流れ込む川だけを残します.
デジタイズする前に,失敗したときのためのバックアップをつくっておきます.
g.copy vect=st100,st100_org
デジタイズする際に,データは自動で保存されますので,もし間違えたと思った場合は[g.remove]と[g.copy]を用いて,もう一度デジタイズし直してください.
では,デジタイズします.
v.digit
新しくウィンドウが表示されます.
[Name of vecter map:]の下にアイコンがありますので,それをクリックします.
そして,st100を選択してください.
続いて,[Display commands to be used for canvas backdrop]の下の欄に
d.rast biwa_mask
と入力して,[Run]をクリックしてください.
また,[Display categories]をクリックし,適当にラインをクリックしても,何も表示されません.
そこで,ひとまずカテゴリを追加してみようと思います.
[v.category]を用いると,簡単なカテゴリを作ってくれます.
v.category in=st100 out=st100c
作成した[st100c]をデジタイズしてみます.
v.digit
[Name of vecter map:st100c]
それでは,ここで宿題です.
宿題:琵琶湖に流れ着いていないラインを消す
消し方:アイコンの右下[Delete point,line,...]をクリックし,消すラインを左クリックで選択(このとき,選択されるとラインが黄色になる)し,もう一度左クリックすると消えます.[Delete]の上にある[Save and exit]をクリックすると,変更を保存し,[v.digit]が終了されます.
最終更新:2007年05月22日 18:19