GRASS Seeds

D : 候補地の選定


はじめに

そろそろGRASSの操作に慣れてきたきたことと思います.そこでこのトレーニング・セッションでは,以前より説明を簡略にしようと思いますので,その点を御了承下さい.

GISには一般的に,複数の条件を満たすエリアを探し当てるという機能があります.このトレーニング・セッションでは,下記の条件のもとに架空の候補地(サイト)を選定する練習を行ない,GISでこれを如何に行なうかを調べて見ましょう.

問題設定

屋内遊戯場・運動場・駐車場など様々な施設を完備したレジャーセンターを,開発事業団の提示する条件を満たす区画に建設しようと思います.

以下の条件 :-

1. Shepshedから500m以内の距離で,近郊の地域からのアクセスに便利なこと;

2. AとBクラスの道路から,あるいは自動車道から距離450m以内で,車によるアクセスが容易なこと;

3. 高い工事コストを避けるため,傾斜度が2゜以下の土地であること;

4. 土地購入コスト節約のため,農業適性度(Agricultural Grade)がIIIの土地であること;

5. 総合レジャーセンターとしての様々な施設を完備するためにも,最低2.5 hectares(ヘクタール)の面積を有すること;

6. 出来るかぎり目立たないところ.


GRASSをスタート

前回のトレーニング・セッションに引き続き作業を行う人は,このページを省略し下さい.そうでない場合は,まずGRASSを開いてこれから使用するデータセットの種類を指示します.

GRASSをスタート(grass4.2と入力)してして下さい.以下のような画面が現われると思います.

Display 1 これはGRASSの通常のオープニング画面です.しかし,ロケーション・マップセット・データベースは各々の機種によって異なります.

ここでこれから使用するデータセットを指示します.この最初の画面では,ロケーション,マップセット,データベースのそれぞれの項目に必要な情報を入力して下さい.直前に使用した情報を表示するため変更する必要がない場合が多いです.その場合は<Esc>キーを押してください.

ロケーションは,研究地域の地理的範囲を入力します.このエクササイズではイングランド地方のLeicestershire州の一部のデータを扱います.まず,始めにカーソルがLOCATIONの所になるまでリターンキーを数回押して下さい(最初からある場合は不要です).そして研究地域を指定するために,leicsと入力して下さい.もし範囲を超えた文字数を打ち込んでしまった場合は,スペースバーを押して余った文字を消去すれ大丈夫です.

次に,リターンキーを押してカーソルをMAPSETの項目まで移動させて下さい.ここで覚えておいてほしいのは,GRASSにおけるマップセットとは,現在指定しているLOCATIONの中のユーザー自身のファイル(ディレクトリ)です.従って,ここではあなたのユーザー名を入力して下さい.今後,あなたが作成したファイルを他人が気軽に手を加えることは一切禁じられることとなります.

DATABASEは,leicsのデータを解凍したディレクトリーを指定してください.

全て正しくセットしたら,<Esc>キーを押してスタートして下さい.

GRASSの中のグラフィックを使用する場合は,少なくとも一つのグラフィックウィンドウを開かなければなりません.従って,始める前に,次のように入力して下さい.

Command : d.mon start=x0 select=x0


目標:

このトレーニング・セッションでは,GISの操作に関する基本的な知識をさらに発展させるとともに,特に候補地選定作業のための「ふるい分けマッピング(sieve mapping)」,視線(line of sight)機能,ラスターデータをベクトルデータに変換(ベクトルの機能と概念の説明もあり)などといったGISでよく使われる技術を説明します.

目的:このトレーニング・セッションを完了すると,以下の技術が習得できます:-

Display 2 これから利用するコマンド一覧

Display 3 使用するレイヤー一覧


Step 1:立地条件を満たすエリアの地図レイヤーを準備する.

このステップでは,Display2にリストアップされた地図レイヤーの中から,提示された複数の条件を満たす地図レイヤーをそれぞれ作成するという作業を行います.

この作業に入る前に,研究対象地域を北西四分割地に変えるます.

Command : g.region

Responses :

> 1  (現在の地域を直接変更する)

Fill in the `form' as follows:

           North Edge 322000

    West edge 444000    East Edge 449750

           South Edge 316000

           GRID RESOLUTION

           East-West   50

           North-South  50

<Esc>    (Escキーを打つ)

rows 120,columns 115 になっていることを確認.

Command : d.frame -e

最初から2つ目までの条件を満たす地図レイヤーに関しては,練習Bでバッファーゾーンを作った時の操作方法で作成することが出来ます.ある点・線・形態から一定の距離内のゾーンを作成する操作はGISではよく使われることをおぼえておいてください.


条件 1. Shepshedから500m以内のエリアを定義する.

Shepshedから500m以内に含まれる地域(セル)を示す地図レイヤーを作成する必要があります.この作業は次の2段階分かれます.まず第1に,r.bufferを使ってShepshedとそこから500m以内のゾーンを表示する地図レイヤーを作成します.次に,r.reclassコマンドで,バッファーゾーン(要するに中心から500m以内のエリア)のみを1(またはTRUE),bufferの外側は0(FALSE)と定義して下さい.

Command : r.buffer urban distances=500 output=urbanbuf

Command : r.reclass

Responses : Enter name of the layer to be reclassified

> urbanbuf

Enter name of the NEW RECLASSIFIED map

> urbanbuf2

<Esc>    (Escキーを打つ)

レイヤーを以下のように再分類して下さい.

CATEGORY LABEL          OLD VAL   NEW VAL

distances from these locations   1      0

500m                2      1

TITLE: 500 metre buffer around urban areas

(市街地周辺500m以内のバッファーゾーン)


条件 2.自動車道およびA/Bクラスの道路から450m以内のエリアを定義する.

この条件を満たすバッファーゾーン作成の操作は,urbanbuf2レイヤーを作成した時とほぼ同じ方法(r.buffer コマンド)で行ないます.しかし,この場合は,r.bufferコマンドを使う前に,まず自動車道(Motorway)とA/Bクラスの道路('A'roads'B'roads)のみを含む地図レイヤーを作成しなければいれません.

Command : r.reclass

Responses : Enter name of the layer to be reclassified

> roads

Enter name of the NEW RECLASSIFIED map

> main_roads

<Esc>    (Escキーを打つ)

カテゴリーは以下を除いてすべてゼロを与えて下さい.

CATEGORY LABEL          OLD VAL   NEW VAL

Motorway              3      1

'A' roads              9      1

'B' roads             11      1

TITLE: Main Roads (Motorway, A and B roads)

自動車道とA/Bクラスの道路を引き出した後は,新たなレイヤーに含まれる道路周辺のバッファーゾーンの作成に移りましょう.

Command : r.buffer main_roads distance=450 output=main_roadbuf

Command : r.reclass

Responses : Enter name of the layer to be reclassified

> main_roadbuf

Enter name of the NEW RECLASSIFIED map

> main_roadbuf2

<Esc>    (Escキーを打つ)

レイヤーを以下のように再分類し,そのレイヤーにふさわしいタイトルとカテゴリーの分類名を与えて下さい.

CATEGORY LABEL          OLD VAL   NEW VAL

distances from these locations   1      0

450m                2      1

d.rastを使って,以上の操作の結果をチェックしてみましょう.


条件 3.傾斜が2度以下のエリアを定義する.

この条件をのために,まずtopoファイル(地形データ)から傾斜度を示す地図レイヤーを新たに作成します.ここで使用するコマンドは練習Cの時と同じものですが,今回は斜面方位ではなく,傾斜度であるという点が異なっています.

Command : r.slope.aspect elevation=topo slope=slope1

次は,r.reclassを使って傾斜が2度以下のエリアには値1を付け,それ以外のエリアはゼロと定義した新しい地図レイヤーを作成します.

Command : r.reclass

Responses : Enter name of the layer to be reclassified

> slope1

Enter name of the NEW RECLASSIFIED map

> flat

<Esc>    (Escキーを打つ)

カテゴリーは以下を除いてすべてゼロを与えて下さい.

CATEGORY LABEL          OLD VAL   NEW VAL

0 degrees              1      1

1 degrees              2      1

3 degrees              3      1

TITLE: Flat areas (slope <= 2 degrees)

再び,d.rastを使って以上の操作の結果を表示してみましょう.


条件 4.農業適性度IIIの土地を特定する.

このような条件の指定は本来簡単に行えます.r.reclassコマンドを使って農業適性度IIIのエリアを選択するという作業のみです.しかし,与えられた地図レイヤーに,農業適性度を表わすものがありません.ここでは,この解決策として,土地利用図(landcov)を用いてその中の牧草地(Pasture)と雑木林(Scrub)を農業適性度IIIのエリアと同等のものであるとみなすことにしましょう.

Command : r.reclass

Responses : Enter name of the layer to be reclassified

> landcov

Enter name of the NEW RECLASSIFIED map

> gradeIII

<Esc>    (Escキーを打つ)

カテゴリーは以下を除いてすべてゼロを与えて下さい.

CATEGORY LABEL          OLD VAL   NEW VAL

Pasture(牧草地)          6      1

Scrub(雑木林)           7      1

TITLE: Grade III agricultural land

再度,d.rastを使って以上の操作の結果を表示してみましょう.

Discussion GISの操作では,ほしいデータが直接利用できない場合が多く,その代わり「代理」のデータを使わなければならないことがよくあります.この代理のデータはほとんどの場合,実際のデータとほぼ内容的に同じものを提示してくれることは事実ですが,いずれにしてもデータから結論を下す時はある程度慎重に考慮した上で行って下さい.


Step 2:"sieve mapping(ふるい分けマッピング)"により合成地図を構成する.

ここでは今まで新たに作成した4つ条件を満たす各地図レイヤー(urbanbuf2main_roadbuf2flatgradeIII)を1つに合成し,4つの条件を全て満たすエリアのセルのみを示す地図レイヤー(sites)作成します

マッピングの処理は,それぞれの地図レイヤーを掛け合わせると手軽に行うことが出来ます.その理由がなぜか思い出せない人は,再び練習Bを参照して下さい.

Command : r.mapacalc

Responses :

mapcalc> sites = urbanbuf2 * main_roadbuf2 * flat * gradeIII

mapcalc> <Enter> (Enterキーを打つ)


Step 3:条件5. 面積2.5ヘクタール以上のエリアを探す.

次は,sitesレイヤーの中でも,さらに5番目の条件で提示されている敷地として最低限必要な面積をもつエリアを選び出します.それにあたっては,まず同じ属性コード値がつながっているブロックのセルを探してみましょう.

Command : r.clump sites output=sites2

Command : d.rast sites2

Discussion これで,それぞれのブロックのグループを形成したセルはそれぞれに新しいコード値が与えられました.これより各ブロックの面積を計測することが出来ます.

Command : r.report sites2 units=hect

ここで得られた面積が2.5ヘクタール以上のエリア(背景(back ground)を除いて)のカテゴリー名を書き留めておきましょう.

Display 4.2.5ヘクタール以上のカテゴリー

この情報から,r.reclassコマンドを用いて,当初提示された複数の条件を全て満たすレジャーセンターの候補地を指定します.それぞれの可能性のあるサイトは別々に分類する必要があります.

Command : r.reclass

Responses : Enter name of the layer to be reclassified

> sites2

Enter name of the NEW RECLASSIFIED map

> sites3

<Esc>    (Escキーを打つ)

新しい地図レイヤーをさらに再分類します.面積2.5ヘクタール以上と思われるエリアのカテゴリーを個別に123…とし,2.5ヘクタール以下のエリアは0と分類して下さい.

また,"Potential site 1", "Potential site 2"というように,各カテゴリーに適切なラベルを与えて下さい.

さらに,この地図レイヤーに適切なタイトルを与えてください.


Step 4: 条件6 最も目立たない場所を選ぶ.

建設予定のレジャーセンターには,駐車場,何種類かの運動場,高さ10mの体育館などの施設が作られることになっています.中でも体育館は使用面積がかなり広いと予想されます.そこで建築基準法と折り合いをつけるためにも,その体育館は出来るだけ人目につかない場所に建設することが望ましいとします.

体育館は,レジャーセンターのほぼ中心部に設置される予定です.そこで,それぞれの候補地における中心部のグリッド座標を調べます.

候補地は,輪郭と位置から成る歴然とした一つの空間ではありますが,sites3地図レイヤーのラスターデータ構造にこの空間の全ての情報が隈なく記録されるというわけではありません.

GRASSはラスターデータと同様に,ベクトル型のデータ構造もサポートします.このベクトルデータでは,点・線(あるいは弧)・面(あるいは多角形)のデータをその属性に従って詳細に保管出来ます.

GRASSでは,ラスターデータをベクトルデータに変換する(あるいはその逆)ことが可能です.また,GRASSのベクトル機能なら,各エリアの中心点の座標を正確に求められます.

Command : r.poly input=sites3 output=vect_sites

r.polyコマンドを用いて,ラスターマップsites3を入力し,ベクトルマップvect_sitesに変換・出力します.出力後のvect_sitesマップには,点と線のみの情報だけで,必要とされている幾何学的情報は含まれていません.ここで,v.supportを使ってvect_sitesの幾何学的情報を構成してみましょう(接頭のv.はベクトルvector機能を表わします).

Command : v.support map=vect_sites option=build

新しくなったvect_sitesを表示してみます.

Command : d.erase

Command : d.vect vect_sites

以上の作業で候補地の中心点を求めるのに必要な準備が整いました.

このvect_sitesは,各多角形の中心点の位置を求めるなどの作業に利用できます.v.areaコマンドを使えば,それぞれの多角形の面積と周囲長と同様に多角形の重心座標を知ることができます.

Command : v.area map=vect_sites

Responses : Buttons:

Left: get area/perimeter

Middle: quit this

Right: get area/perimeter

マウスのポインターを図形の内側のどこかに置き,左右どちらかのボタンをクリックして下さい.すると周囲長や面積に関するデータが数行出るはずです.この中で1番最後の行に ,重心点の座標が記述されています.次に,ここで得たデータを下のDisplay5に記入して下さい.ただし,y軸座標(N)とx軸座標(E)の順番の違いに注意してください.

以上,全ての図形の重心点を出し終えたら,マウスの中央ボタンをクリックして終了して下さい.なお,2ボタンのマウスを利用している方は,左右を同じに押すことで中ボタンをエミュレートしています(動作しなければ,X11の設定に問題があります).

前の作業の際に各サイトに与えたラベル名を忘れたかもしれませんが,これはDisplay5を完全にするために必要な情報です.もしラベル名を忘れてしまった場合は,以下のようにd.what.rastコマンドを使って下さい:

Command : d.what.rast map=sites3

ポインターで図形上を指し,左ボタンをクリックして下さい.するとそのエリアのラベル名が出てきます.

Display 5

Discussion d.what.rastコマンドで,map=のオプションを使えば,ラスター地図が画面に表示されていない時でも,データベースのラスター地図から情報を引き出すことが出来ます.つまり,地理情報システムでは,何か情報を引き出したい時にラスター地図の表示なしでも,地理座標を使うことによってデータベースからその回答を得ることが可能なのです.

最後に,候補地の中で最も目立たないエリアを探します.このためには,r.los (line of sight) コマンドを使います.これにより,高さ10mの体育館から視界に入る半径1km以内のエリアの地図レイヤーを新しく作成します.ただし,r.losコマンドを起動させるには,topoラスター地図に含まれる標高データが必要となります.

先のDisplay5に,体育館建設予定地の候補とされる各区画の中心点のX座標,Y座標を記録しました.次のコマンドラインのX座標・Y座標(coordinate=x,y)部分のx,yを候補地1の実際の座標に変えて実行して下さい.

Command : r.los input=topo output=MASK coordinate=x,y obs_elev=10 max_dist=1000

Discussion 今作成した出力マップはMASKです.以前BでMASKを作成したときは,r.maskコマンドを使用しました.しかし,MASKは通常のラスターと同様の機能で作成することも可能なのです.d.rastコマンドを使って,この操作の中のMASKを見ることができます.

Command : d.rast popln

表示されるのは,体育館から見える範囲内の居住地区のセルです.r.reportを使ってセルの数を計算し,Display6に記録して下さい.その後,MASKを消去します.

Command : r.report popln units=cell

Command : g.remove rast=MASK

その他の候補地に関しても同様の作業を繰り返して下さい.そのためには,r.losコマンドのx,yDisplay5に記録した重心の座標をにそれぞれ変えてこれらの作業を行います.Display6にはすべてを記入して下さい.なお,各候補地の作業ごとに必ずMASKを消去することを忘れないで下さい.

Display 6

最後に,r.reclassを使って,sites3ラスターからsiteという新しいラスターを作成してください.このsiteというラスターは,視線中の住居地のセル数が最も少なかったサイトのみが1と分類されものとします.また,適切なタイトルとカテゴリーラベルを与えて下さい.


Step 5:完成図を表示する.

さて,以上の操作でレジャーセンターの建設地として最も適したサイトを選定することができました.あとは,道路網や市街地などの良く知られた目じるしと比べられるようにすると役に立ちます.この作業は,マップセットの中からどれか地図レイヤーを選び出して,その上に完成したsiteマップを重ねるという操作によって行われます.

必要ならば,まずg.listコマンドを使って保管されている地図レイヤーの種類を調べて下さい.次に,d.rast -oコマンドで,複数の地図レイヤーのイメージを重ねて一つにします.そして最後に,siteレイヤーをその合成地図の上に重ね合せます.

これ以外にも,完成図を表示するコマンドとして,d.his, d.grid, d.label, d.scaleなどがあります.

これらのコマンドは対話的に,あるいはコマンドラインからも使えます,一度試してみてください.

g.manualコマンドでその他の表示コマンドのリストを見ることもできます.

その他にもr.poly (エリア),r.line (線),r.contour (topoラスター地図からベクトル等高線図を作成)などのコマンドを使って,ベクトル地図レイヤーを作成してみましょう.最初にv.supportでそれらのトポロジーを構築することを忘れないでください.

最後に.GRASSにはこの初心者用のレッスンで使ったものよりはるかに多くのコマンドが含まれています.


強化エクササイズ

(1) ふるい分けマッピングの操作の後,サイズを問わず,いくつの区画が残りましたか?

 どのような操作によってこれを調べることが出来るでしょうか?

(2) 完成図をもう一度吟味して下さい.レジャーセンターは理想的な場所にありますか?もう修正を加える必要はありませんか?

(3) Step2に戻って,乗法演算ではなく,r.mapcalcの加算演算を使って,同じ作業をもう一度試して見て下さい.そしてこの結果を表示して下さい.これら様々なセルのカテゴリーの度合はどの様になりますか?

(4) ふるい分けマッピングにおけるBoolean論理は,「適/不適」以外に,より細かな適正の度合を定義する性能に欠けるとして,一部非難の声も上がっています.従って,もし提示される条件に些細な変更が加えられたとしたら,これまでの結果も顕著に変化してしまう可能性があります.

市街地の周囲1000mのバッファーゾーンから場所の選定を行ってみて下さい.この場合,いったい幾つの候補地が挙げられますか?


整理

この章で作成したラスター地図レイヤーは,今後必要ありません.これらの地図レイヤーをすべて消去することによってディスクの空きを確保することができます.ただし,この作業は十分慎重に行って下さい.まず最初にg.listコマンドを入力し,現在ディスクに保管されている地図レイヤーを全て再確認して下さい.ここで覚えておいてほしいのは,今行っている作業はPERMANENTマップセットのファイルではなく,自分自身のマップセットで作成したファイルを消去するということです.

GRASSを終了するためには,まずこのセッションの間に開いたウインドウを全て閉じなければいけません.

Command : d.mon stop=x0

最後に,GRASSを終了して下さい.

Command : exit

Responses : Shall the mapset <username> be saved? y/n [y]

      <Enter> (もし,ファイルを保存する必要のない場合はn

      Do you wish to selectively remove data files? y/n [n]

      <Enter> (もし,消したいファイルがある場合はy

      (ここでyを選択した場合は次のようになる)

      Please select type of file to be removed.

        1. Raster file

       : (省略)

      (ファイルタイプの番号を入れ,ファイル名を指示する)

      GOOD BYE from GRASS !


戻る