GRASSを用いた地理情報システム入門

 第5回実習です!


 第5回目は,GRASSのデータベース設定とラスターファイルの入力・表示等を行います.いままで,既存のデータを利用して,操作の実習を行ないましたが,ここでは自分でデータベースを作成し,地形データを入力してみます.また,入力した地形データから地形断面図や3次元表示図(鳥瞰図)を作成してみます.


データベースの設定について

 GRASSで作業をするためには,最初にデータベースを作成しなければなりません.データベースの構造は第3回講義で説明した通りですが,ほとんどは自動的に作成されるので,とくに難しいものではありません.データベースの作成には次に示す情報が必要です.

1.LOCATION(地域名)

2.MAPSET(プロジェクト名あるいはユーザー名)

3.DATABASEデータベースを格納するディレクトリ

4.使用する座標系

5.対象地域の範囲を示す位置座標およびグリッド解像度の標準値

6.タイトル

 LOCATIONとして地域名(”osaka”など)を定めます.MAPSETとしては,これから行なう作業の名前(プロジェクト名など),あるいはデータベースを複数の人で共有する場合などを考慮した名前(ユーザー名など)を定めます.DATABASE名はデータベースとして実際にデータを保存するUnixのディレクトリを指定します(このディレクトリはあらかじめ存在する,あるいは作成しておく必要があります).

 座標は種々の座標系で取り扱えるようになっています(UTM座標系がおすすめです).なお,UTM座標系を用いる場合は,UTM座標値やゾーンがわからない場合が多いのですが,その場合は適当な値でテスト的にデータベースを作成するか,あるいは,既存のデータベースを立ち上げます(ここでは,前回利用したleicsでとりあえず立ち上げてください).その後,GRASSのコマンドが利用できる状態になれば,緯度経度からUTM座標値に変換するコマンド(m.ll2u)を用いて正しい座標値とゾーンを求め,その値をもとに再度正確なデータベースを作成します.なお,少し広めに範囲を指定し,後で変更する(g.regionコマンド)ことも可能です.グリッド解像度も基本となるDEMなどの値で設定しておきます.これも,範囲と同様に必要に応じて変更できます.

 タイトルは,実際の利用には何も影響しませんが,LOCATIONをわかりやすく示すものを付けます.

 これらの初期設定の手順を以下に示します.

@GRASSを起動します.”WELLCOME TO GRASS”の画面が表示されるので<Enter>を押します(皆さんは,すでにleicsを利用したので,この画面は出てきません).

grass5.0beta6 <Enterキー>

A下に示した画面になるので,LOCATION,MAPSET,DATABASE名を入力します.なお,Linuxのキーボード設定によっては矢印キーやBS(バックスペース)やDeleteキーを受け付けない場合があります.異常な動作をした場合は,Ctrl+c(コントロールキーを押しながらcのキーを押す)により終了します.カーソルの行間移動はリターンで行い,間違った場合は再度入力します.正しく入力したことを確認し,<ESCキー>,<Enterキー>を押して次へ進みます.

              GRASS 5.0beta6

LOCATION: This is the name of an available geographic location. -spearfish-
     is the sample data base for which all tutorials are written.

MAPSET:  Every GRASS session runs under the name of a MAPSET. Associated
     with each MAPSET is a rectangular COORDINATE REGION and a list
     of any new maps created.

DATABASE: This is the unix directory containing the geographic databases

     The REGION defaults to the entire area of the chosen LOCATION.
     You may change it later with the command: g.region
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

LOCATION:  area1_________       (enter list for a list of locations)
MAPSET:   map1__________       (or mapsets within a location)

DATABASE: /home/grass/test__________________________________

      AFTER COMPLETING ALL ANSWERS, HIT <ESC><ENTER> TO CONTINUE
              (OR <Ctrl-C> TO CANCEL)

<ESCキー>,<Enterキー>

Bここで設定したデータベースは,まだ存在しないので次のような作成するかどうかの確認があります.yを入力し<Enter>キーを押します.

LOCATION <area1> - doesn't exist

Available locations:
----------------------
----------------------

Would you like to create location <area1> ? (y/n) y

また,次のように必要な情報が準備されているかどうかの確認もあります.yを入力し<Enter>キーを押します.

To create a new LOCATION, you will need the following information:

1. The coordinate system for the database
    x,y (for imagery and other unreferenced data)
    Latitude-Longitude
    UTM
    Other Projection
2. The zone for the UTM database
  and all the necessary parameters for projections other than
  Latitude-Longitude, x,y, and UTM
3. The coordinates of the area to become the default region
  and the grid resolution of this region
4. A short, one-line description or title for the location

Do you have all this information for location <area1> ? (y/n) y

Bデータベースの座標系を選択します.

 A.x,y,B.Latitude-Longitude(緯度経度),C.UTM,D.その他の4つの中から選択します(ここでは,CのUTM座標系を選択します).選択後,確認があります(以降,確認は省略します).

Please specify the coordinate system for location <area1>

A  x,y
B  Latitude-Longitude
C  UTM
D  Other Projection
RETURN to cancel

> C

UTM coordinate system? (y/n) [y] y

CLOCATIONに対する1行の説明(タイトル)を入力します(何でもかまいません).

Please enter a one line description for location <area1>

> test area for vuniv2000
=====================================================
test area for vuniv2000
=====================================================
ok? (y/n) [y] y

D調査地域に応じた楕円体の名称やゾーン等を指定します.利用する楕円体は国によって異なりますが,日本でUTMを用いる場合は,”bessel”と入力します.つぎにゾーンを入力します.前述したm.ll2uコマンド等で調べたゾーン(ここでは,53)を入力しましょう.さらに,南半球かどうかを聞いてきますので,nを入力します([n]とデフォルトが設定されているので,<Enter>のみでも結構です).

Please specify ellipsoid name
Enter 'list' for the list of available ellipsoids
Hit RETURN to cancel request
>bessel

Enter Zone: 53

Is this South Hemisphere (y/n) [n] n

E北端・南端・西端・東端の座標値および東西・南北各方向の解像度を入力します(座標系により単位や与え方が異なります,UTM座標系の場合はm単位です).<Enter>キーで各項目を移動できます.設定終了後<Escキー><Enterキー>を押してください.

           DEFINE THE DEFAULT REGION

         ======= DEFAULT REGION =======
         | NORTH EDGE:3990241.996   |
         |               |
    WEST EDGE |               |EAST EDGE
    500000___ |               |506090_____
         | SOUTH EDGE:3983551.996   |
         ===============================

    PROJECTION: 1 (UTM)            ZONE: 53

             GRID RESOLUTION
               East-West:   30________
               North-South:  30________

    AFTER COMPLETING ALL ANSWERS, HIT <ESC><ENTER> TO CONTINUE
            (OR <Ctrl-C> TO CANCEL)

次に,確認の画面が表示されます.これでLOCATIONの作成が終了します.

 projection:  1 (UTM)
 zone:     53
 north:    3990241.996
 south:    3983551.996
 east:    506090
 west:    500000

 e-w res:   30
 n-s res:   30

 total rows:       223
 total cols:       203
 total cells:     45,269


Do you accept this region? (y/n) [y] > y
LOCATION <area1> created!

Hit RETURN -->

FAの画面が再表示されるので<ESCキー><Enterキー>を押します.新しいmapsetを作成するかどうかの確認があるので,作成します.

Mapset <<map1>> is not available

Mapsets in location <area1>
----------------------
 
(+)PERMANENT

note: you only have access to mapsets marked with (+)
----------------------

Would you like to create < map1 > as a new mapset? (y/n) y

 以上でデータベースの作成が終了し,次のような画面が表示されます.

Welcome to GRASS 5.0beta6 (February 2000)

Geographic Resources Analysis Support System (GRASS) is Copyright,
1999 by the GRASS Development Team, and licensed under terms of
the GNU General Public License (GPL).

This new release of GRASS is coordinated and produced by the GRASS
Development Team Headquartered at Baylor University with development
sites located at the University of Hannover and University of Illinois.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.

This version running thru the C Shell (/bin/csh)
Help is available with the command:   g.help
See the licence terms with:        g.version
Start the graphical user interface with: tcltkgrass&
When ready to quit enter:         exit

コマンド入力の前の行には,Location名とMapset名が表示されます.

Mapset <map1> in Location <area1>
GRASS 5.0beta6 >

 一度作成したデータベースに関してはB以降の操作を繰り返し行なう必要はありません.なお,次回以降GRASSを起動した場合にはAで示した画面が表示されます.

 

[座標値変換:緯度経度座標→UTM座標]

 GRASSには種々の座標間の変換コマンドがあります.緯度経度座標値からUTM座標値へ変換する場合はm.ll2uを用います.UTMのゾーンが分からない時もm.ll2uで知ることができます.なお,2つ以上のゾーンにわたる場合は,中心となるゾーンを利用することにより歪を少なくできます.座標変換を行う場合の手順を以下に示します.

@コマンドm.ll2uを実行します.

GRASS 5.0beta6 > m.ll2u

A参照する楕円体を指定します(besselと入力します).

OPTION: reference spheroid (ellipsoid)
   
key: spheroid
required: YES
options: APL4.9,CPM,GRS67,IAU76,MERIT,SEasia,SGS85,airy,andrae,australian,bess_
nam,bessel,clark66,clark80,delmbr,engelis,everest,evrst56,evrst69,evrstSS,grs80,
hayford,helmert,hough,international,kaula,krassovsky,lerch,mercury,modif_airy,mo
dif_everest,modif_merc,mprts,new_internatnl,plessis,walbeck,wgs60,wgs66,wgs72,wg
s84
enter option > bessel

You have chosen:
 
spheroid=bessel
Is this correct? (y/n) [y] y

BUTMのゾーンを指定します.わからない場合は指定しない(自動的に計算されます).

OPTION: utm zone (results will be forced into this zone)
   
key: zone
required: NO
options: 1-60
enter option > <Enterキー>

Cたくさんの緯度経度座標値を一度に変換する場合はファイルにあらかじめ作成しておき,結果をファイルに出力します.ファイル入力でない場合はそれぞれ<Enterキー>を押します.

OPTION:  input file
   
key: input
required: NO
enter option > <Enterキー>

OPTION:  output file
   
key: output
required: NO
enter option > <Enterキー>

Dいろいろなフラグの設定がありますが,一般的にはすべてデフォルト<Enterキー>で結構です.

FLAG: Set the following flag?
  
Input is reversed: lat,lon?(y/n) [n] <Enterキー>

FLAG: Set the following flag?
  
Do not flag invalid lon,lat input lines as errors?(y/n) [n] <Enterキー>

FLAG: Set the following flag?
  
Flag other input lines as errors?(y/n) [n] <Enterキー>

FLAG: Set the following flag?
  
Suppress printing the utm zone?(y/n) [n] <Enterキー>

E変換したい緯度経度座標を指示された形式:経度の度:分:秒(東経はE,西経はW) 緯度の度:分:秒(北緯はN,南緯はS)にしたがって入力します.秒以下の値は小数点形式を用います.

Enter lon lat, one coordinate pair per line, in the format
ddd:mm:ss{E|W} dd:mm:ss{N|S}
Enter the word <end> when done

> 135:00:00E 36:00:00N

500000 3983551.99565036 53

> end

変換された結果:東西座標(単位m) 南北座標(単位m) ゾーン番号が表示されます.終了する場合は,データの代わりにendと入力します.endを入力するまで,座標値変換を繰り返し実行します.

 

データベースの構築

 実際にGRASSを起動して,下記の地域のデーターベースを作成してみましょう.また,ラスターに関係したコマンドを実行して,地形断面図や3次元表示図等を作成してみて下さい.

(0)データベースの設定

 前述の説明に従って,下図に示す領域のデータベースを作成します.LOCATION名,MAPSET名は適当につけてください.座標系はUTMを用いてください.分解能は縦・横とも30mとします.

 (クリックすると拡大します)

なお,この地域は今回の実習用に作成した架空の地域です.DEMも実際には存在しない地形のものです.ご了承下さい.(ヒント:まず,前回行った実習の地域(leics)で起動して,m.ll2uコマンドで本地域の南西(左下)のUTM座標を求めてください.southとwestはその値にして,northとeastは表示している座標値の差の値をそれぞれ足した値で設定します.つまり,north=south+6690,east=west+6090となります.

(1)地形データの入力

 この地域のアスキー形式の地形標高データDEMを準備しました.下記のdem.tar.gzをクリックしてダウンロードして,解凍し,ラスター地図を作成してください.ラスターデータはUTMの座標系になっており,格子数は縦223×横203で,分解能は30×30mで,単位はmです.領域は上の図の全域です.ラスター地図名はファイル名と同じく"dem"として下さい.アスキー形式のラスターを入力するコマンドは,r.in.asciiです.

dem.tar.gz (47KByte)

(ブラウザの設定によりファイル名が変わった場合は,変更してください)

tar -zxvf dem.tar.gz

    (解凍方法.demというアスキーファイルが出来上がります)

(アスキー形式のラスターファイルにはヘッダー部が必要です.ダウンロードし,解凍したものはあらかじめ,こちらで設定したヘッダー部分がついています.

north:3990241.996
south:3983551.996
east: 506090
west: 500000
rows: 223
cols: 203
105 101 95 91 90 97 116 135 144 ……
        :

 各自で設定した実際のUTMの座標値と異なる場合は,データベースを設定した領域と同じ値に変更してください.変更にはUnixのxeditコマンドやviを使います.)

@アスキー形式のラスターデータを入力するためにr.in.asciiコマンドを実行します.

GRASS 5.0beta6 > r.in.ascii

Aアスキー形式のデータファイル名を入力します.

OPTION:  Ascii raster file to be imported
   key: input
required: YES
enter option >
dem

You have chosen:
 input=dem
Is this correct? (y/n) [y]
<Enterキー>

BGRASSで実際に使用するラスター型データファイル名を入力します(既存のラスター地図名を参照する場合は,listと入力します.).

OPTION:  Name for resultant raster map
   key: output
required: YES

Enter raster file name
Enter 'list' for a list of existing raster files
Hit RETURN to cancel request
>
dem
<dem>

Cタイトルの入力.不要ならばリターン.

OPTION:  Title for resultant raster map
   key: title
 format: "phrase"
required: NO
enter option >
<Enterキー>

Dデータ倍率の指定(デフォルト(Enter)は1.0倍).

OPTION:  Multiplier for ascii data
   key: mult
default: 1.0 or read from header
required: NO
enter option >
<Enterキー>

Eオプションの指定(ヌルの値の設定)

OPTION:  String representing NULL value data cell
   key: nv
default: * or read from header
required: NO
enter option >
<Enterキー>

Fフラグの設定.(データを入力する際の形式(実数・整数)やデータの並び等の指定を指定します.一般的にはデフォルトです(<Enterキー>).)

FLAG: Set the following flag?
  integer values are imported?(y/n) [n]
<Enterキー>

FLAG: Set the following flag?
  floating point values are imported?(y/n) [n]
<Enterキー>

FLAG: Set the following flag?
  double floating point values are imported?(y/n) [n]
<Enterキー>

CREATING SUPPORT FILES FOR dem

 これで,ラスター地図demとして地形図が作成されました.

(2)地形図の表示と傾斜方位図の作成

 作成したラスター地図形式の地形図(dem)を表示してみましょう.また,傾斜方位を示す図(asp)を作成してみましょう.

@画像を表示するために,まずd.monコマンドでモニターx0を起動します.

GRASS 5.0beta6 > d.mon x0

Aラスター地図表示コマンドd.rastを用いて,地形図demを表示します.

GRASS 5.0beta6 > d.rast dem

 (クリックすると拡大します)

Bラスター標高データから地形の傾斜方位図や傾斜度図を作成するコマンドr.slope.aspectを用いて,地形の傾斜方位図aspを作成します.

GRASS 5.0beta6 > r.slope.aspect elevation=dem aspect=asp

(オプションのelevation=の後ろに既存の地形のラスター地図名,aspect=の後ろに傾斜方位のラスター地図名を表す新しい名前を付けます.)

percent complete: 100%
CREATING SUPPORT FILES
ELEVATION PRODUCTS for mapset [map1] in [area1]
min computed aspect 0.0000 max computed aspect 360.0000
(傾斜方位の最小値が0°で最大値が360°であると報告されます)
Color table for [asp] set to aspect
ASPECT [asp] COMPLETE

Cラスター地図表示コマンドd.rastを用いて,作成した傾斜方位図aspを表示します.

GRASS 5.0beta6 > d.rast asp

 (クリックすると拡大します)

(3)地形断面図の作成

 地形図(dem)の断面図をコマンドd.profileを用いて表示してみましょう.

@d.profileコマンドを起動します.

GRASS 5.0beta6 > d.mon x0

A地形図のラスター地図名demを入力します.

OPTION:  Raster map to be profiled
   key: map
required: YES

Enter the name of an existing raster file
Enter 'list' for a list of existing raster files
Hit RETURN to cancel request
>
dem
<dem>

r.stats: 100%

Use mouse to choose action

画面が次の様に変わります.

 (クリックすると拡大します)

Bマウスを使って,任意の地点を指定して,地形の断面図を表示させます.なお,2つボタンのマウスの場合は中ボタン(Middle)はありませんが,通常の設定では右と左のボタンを同時に押すことにより実現されます.マウスのボタンの最初の設定は次の通りです.

Left:  Where am I ?    (左ボタン:その点の位置座標を表示します)
Middle: Set FIRST point  (中ボタン:断面を描く最初の位置を指定します)
Right: Quit this     (右ボタン:作業を中断します)

2番目は,次のようになっています.

Left:  Where am I ?    (左ボタン:その点の位置座標を表示します)
Middle: Set SECOND point  (中ボタン:断面を描く終わりの位置を指定します)
Right: Quit this     (右ボタン:作業を中断します)

断面を描き終わると次のようになります.

Left:  DO ANOTHER     (左ボタン:他の断面図を描く作業に戻ります)
Middle: CLEAR DISPLAY   (中ボタン:作成した断面図を消します)
Right: QUIT        (右ボタン:作業を終了します)

複数の断面図を適当に描いて見て下さい.

 (クリックすると拡大します)

(4)地形の3次元表示

 コマンドd.3dにより直交遠近法表示による疑似3次元画像を造り出すことができます.この機能使えば,形に関するデータ(地形(DEM)など)を3次元的に画像化することができます.さらに,この表面に地図や画像を貼り付け,これら2つの地図の関係を示すという大変効果的な働きをすることも出来ます.ここでは地形図(dem)に傾斜方位図(asp)を張りつけた3次元地形図を表示してみましょう.

@d.3dコマンドを起動します.

GRASS 5.0beta6 > d.3d

A地形表面に張りつけるラスター地図名を入力します.ここでは傾斜方位図であるaspを入力します.ラスター地図名がわからない場合はlistと入力することにより,既存のラスター地図が表示されます.list -f によりタイトルも参照可能です.

    3-D Landscape display

First enter the names of the maps to be used to
for color and for elevation:
Enter raster file to be displayed (color):
Enter 'list' for a list of existing raster files
Enter 'list -f' for a list with titles
Hit RETURN to cancel request
>
asp
<asp>

B3次元表示をする立体形状(標高等)のラスター地図名を入力します.ここでは地形を表すdemを入力します.ここでも同様にlistlist -f が利用できます.

Enter raster file to used for elevation:
Enter 'list' for a list of existing raster files
Enter 'list -f' for a list with titles
Hit RETURN to cancel request
>
dem
<dem>

C設定ファイル名を指定します.以前設定ファイルを残しておいた場合(Eで指定)はそのファイル名を入力します.ここでは,はじめてなので,設定ファイルがありませんので<Enterキー>を押します.

If you have previously saved 3-D viewing options in this mapset
you may recover them by entering the name under which they were saved.

Enter nothing and hit <RETURN> to have default values calculated.


Enter name of saved 3-d viewing options to be used:
Enter 'list' for a list of existing 3d.view files
Hit RETURN to cancel request
>
<Enterキー>

D投影条件等の設定を行ないます.まず最初に,デフォルト設定でそのまま描いてみます.何も変更せずに<ESCキー><Enterキー>を押してください.

 (クリックすると拡大します)

次に投影条件を色々変更して,作図して見てください.例えば,つぎのように設定すると,下に示した図のように表示されます.

 (クリックすると拡大します)

 (クリックすると拡大します)

 このモードを終わるには,右上にある RUN? Y/N を N にして<ESCキー><Enterキー>を押してください.

E投影条件等の設定ファイルの保存を行ないます.設定条件は複雑なので保存しておくと便利です.保存する場合はファイル名(下の例では3dset)を,不要な場合は<Enterキー>を押してください.

You can now save your viewing information for later use by this program.
Enter nothing and hit <RETURN> to not save this information.


Enter name for saving 3-d viewing options:
Enter 'list' for a list of existing 3d.view files
Hit RETURN to cancel request
>
3dset
<3dset>

 ここでは,投影条件等を静的に設定するd.3dコマンドを用いた方法を説明しましたが,GRASSには,もっと動的に設定あるいは表示できるNviz(後日説明予定)という可視化ツールがあります.Nvizではこれらの設定をマウスで行なうことができ,ダイナミックに表示することが可能となっています.

注意:今回作成したファイルやMAPSETは今後も利用します.


 第5回講義に戻る

 大阪市立大学広報のホームページ