GRASSLinksのインストールと利用方法

 GRASSLinksGRASS GISPDSWebインターフェースです.GRASSLinksを使用する前に, GRASS  GISをインストールしなければなりません. GRASS のインストール方法http://www.media.osaka-cu.ac.jp/~raghavan/grassinfo/ に書いています.

GRASSLinksUC BerkeleySusan Huseによって開発されました.GRASSLinksLinux化は大阪市立大学で行なわれ,そのデモは,
 

http://wgrass.media.osaka-cu.ac.jp/~grass
にあります.GRASSLinksは自由に使えますが,"GRASSLinks (c) Copyright Information"を変更しないで利用してください.ここにはhtml documents, shell scriptsといくつかのC言語によるプログラムがあります.特別なコンパイラーは必要ありません.
 
GRASSLinks(linux版)ダウンロード
ダウンロードファイルtar.gzによる解凍が必要です.最近,GRASSLinksに色々な機能を追加しています.この最新バージョンは,近いうちにftpを通して公開する予定です.

grasslinks.tar.gzをダウンロードしてから下記のように解凍し,インストールしてください.linux版のすべての設定がこの中に入っています.テストデータとして,GRASSspearfishデータベースがWeb上で見えるようになっています.他のUNIX-OSにインストールする場合はreadmeを読んで下さい(Cプログラムなどコンパイルの必要があります).

 なお,以下の説明ではGRASSLinksを使用するユーザー名をgrassとし,そのホームディレクトリは/home/grassとします.

root(スーパーユーザー)でログインし,以下のコマンドを実行します.
 
root#useradd -g users -m -d /home/grass -s /bin/csh grass
   (こコマンドユーザーgrassホームディレクトリ/home/grassを作成します.)

root#passwd grass  (ユーザーgrassにパスワードを与えます.)

passwdコマンドで“grass"ユーザーのUNIXパスワードを設定するのを忘れなで下さい.

root# cd /home/grass

root# tar -zxvf grasslinks.tar.gz    
このコマンドダウンロードしたgrasslinks.tar.gzファイル/home/grassにあるとします.)
 
これにより,grasslinksというディレクトリができます.
 
1) GRASSLinksのためのGRASSディレクトリの設定
 GRASSLinkshttpdhttp.confファイルに書かれているユーザー名でGRASSを起動します.この設定ではgrasslinks0からgrasslinks5という6つのmapsetが利用できるようにしてあります.locationspearfishmapsetPERMANENTgrasslinks1からgrasslinks5です.これらはユーザー名grassが利用できるようにしてあります.他のデータベースで利用する場合はこれらを参照して下さい.

 grasslinks0は作業用に必要がありますがユーザには利用できません.grasslinks[1-5]まではユーザーが利用でき,ここに保存ができます.ただし,ユーザーのファイルは時間が経てば自動的に消えるようになっています.

 それぞれのmapsetであるgrasslinks[1-5]はユーザー間の同時利用を避けるために,利用している間は "LOCK"されます.そのために,あらかじめ"UNLOCK"という空のファイルがあります.

 GRASSLinksを実行すると通常では".grassrc"を読むのと同様にGRASSのスタート時に,アクセスした順に".grassrc[1-5]"を自動的に読みに行きます.

 GRASSLinksのホームディレクトリの設定は/home/grass/grasslinks/progs/grass.cmdにあります.

root# cd /home/grass/grasslinks/progs

root# vi grass.cmd



#! /bin/sh

: ${GISBASE?}

trap '/bin/mv --force $LOCATION/LOCK $LOCATION/UNLOCK' 0 1 2 3 5 9 15

home=/home/grass/grasslinks [ Grasslinksのホームディレクトリのセットアップ]


  ".grassrc[1-5]"のそれぞれの設定は以下のようになっています.
 


GISBASE: /your/grass/program/directory [ Grass4.2のプログラムがあるディレクトリ]

GISDBASE: /your/grass/data     [ Grassのデータがあるディレクトリ]

LOCATION_NAME: GRASS-location-name [ GRASS Location]

MAPSET: grasslinks1[~5]         [それぞれのmapset]

DIGITIZER: none

PAINTER: ppm

LOCATION: /your/grass/data/location/grasslinks0[~5] [ LOCATIONのパス]

MAPLP: /home/grass/graslinks/tmp_grasslinks/pmap.grasslinks1 [ GRASSlinkstmp ディレクトリのパ

  ス,最後の1はそれぞれに対応する]


2) cgi-binプログラムのコピー

 GRASSLinksのシェルスクリプトと他の実行版のプログラムをWebサーバーのcgi-binディレクトリにコピーします.コピー方法は以下の通りです.

root# cd /home/grass/grasslinks/cgi-bin

root# cp * /usr/local/httpd/cgi-bin/ httpd/cgi-binのあるディレクトリ,システムにより異なる)
 

 他のOS(Unix)で利用する場合は以下のようにコンパイルして下さい.

root# cd /home/grass/grasslinks/cgi-src

root# make

root# gcc postquery-GL.c util.o -o ../cgi-bin/postquery-GL [ postquery-GL.cのコンパイル例] GRASSLinksのシェルスクリプトは以下のようになっています.

root# cd /home/grass/grasslinks/cgi-bin

root# vi GRASSLinks


#! /bin/sh

trap "rm -f /home/grass/grasslinks/tmp_grasslinks/posted.$$; exit 1" 0 1 2 3 5 9 15

PROG_PATH=/home/grass/grasslinks/progs  [ GRASSlinksのプログラムディレクトリのパス]

TMP_PATH=/home/grass/grasslinks/tmp_grasslinks  [ GRASSlinkstmpディレクトリのパス]

HTTP_PATH=/your/servers/cgi-bin         [ Webサーバーのcgi-binディレクトリのパス]

GISBASE=/usr/local/grass42       [ Grass4.2のプログラムディレクトリのパス]

FTP_PATH=/your/servers/ftp/incoming/grasslinks    [あらかじめ,ftpディレクトリにgrasslinksという

ディレクトリを作成しておく必要があります]

PBM_PATH=/home/grass/grasslinks/progs     [ pbmプログラムがあるディレクトリ]


3) htmlファイルの書き方

 GRASSLinksに関するhtmlファイルは/home/grass/grasslinks/htmlにあります.index.html:このファイルを自分のWebサーバーに合うようにエディットしてください.ただし,copyright.htmlのリンクははずさないで下さい. 例えば,

root# cd ..

root# cd html

root# vi index.html


<FORM ACTION=" /cgi-bin/GRASSLinks" METHOD="POST">

<a href=" /grasslinks/ copyright.html">Copyright</a></H4>


copyright.html:このファイルは変更しないで下さい.

help.html:このファイルはGRASSLinksの各種ヘルプファイルにリンクを張っています.

tmp:テンポラリーファイルです.時間ごとに中身が消えるようになっています.
 
 

4) GRASSLinksのプログラム

 index.htmlのオプションそれぞれに対していくつかのスクリプトファイルを実行するようになっています.ただし,ftperというスクリプトファイルで自分のftpサーバーを登録する必要があります.

root# cp ftper ftper.old [ バックアップをとっておく]root# vi ftper [ ftperviで編集する] 以下の2行のyour.server.comを自分のftpサーバに変更して下さい.
 

<a href=\"ftp://your.server.com/incoming/grasslinks/$NEW_RASTER.rast.

Download the raster file</a><p>"
 

<a href=\"ftp://your.server.com/incoming/grasslinks/$NEW_VECTOR.vect.

Download the vector file</a><p>

grass.cmd:はGRASSLinksを制御するスクリプトです.このスクリプトはmapsetの状態, lockの状態などを実行中に確認します.

option_*:これらのスクリプトファイルはGRASSLinksのメニューをわかりやすくするためにあります.どいゆうメニュー画面にするか必要に応じて変更して下さい.ただし,名前はparser_*に対応させる必要があります.parser_*option_*での名前を実際のGRASSファイル名に変更します.

 


<OPTION SELECTED> none

<OPTION> geology map

<OPTION> slope map


#! /bin/sh

# convert requested map selected in html to full map names

case $1 in

none) MAP="none" ;;

slope+map) MAP="newslp@PERMANENT" ;;

geology+map) MAP="geology@PERMANENT" ;;

*) MAP=$1 ;;

esac

echo $MAP


option_gl_*:このスクリプトでもメニューの制御は可能です.例えば,以下のoption_gl_rastでは,GRASSLinksのすべてのMAPSETのラスター画像を選択できるようにします.



#! /bin/sh

for i in 1 2 3 4 5

do

cd $GISDBASE/$LOCATION_NAME/grasslinks$i/cell 2> /dev/null

ls | awk '{printf("<OPTION> %s\n", $1)}'

done

cd $GISDBASE/$LOCATION_NAME/PERMANENT/cell 2> /dev/null

ls | awk '{printf("<OPTION> %s\n", $1)}'



checktimes.cC言語のプログラムです.これを用いて時間をチェックし,1時間ごとにclean_tmpを実行してtmpをクリアーにします.

clean_tmp:このスクリプトはtmpファイルなどを時間ごとに消します./usr/spool/cron/crontabsディレクトリにgrassというファイル名で以下の文を作成して下さい(コンピュータの設定によってこのディレクトリは異なる場合があります).0,15,30,45 * * * * /your/grasslinks/home/progs/clean_tmp

timer.c は検索を無限に行うことを避けるためにあります.
 

5) Portable Bit Map(PBM)プログラム

 GRASS画像からgif画像に変更のためにppmtogif, pnmscaleおよびppmquantのプログラムが必要です.これらのコンパイル済みのLinux版は/home/grass/grasslinks/progsにあります.他のUNIX-OSの場合はftp://ftp.x.org /contrib/utilities/netpbm-1mar1994.tar.gzをダウンロードして下さい.これらのプログラムはPBM_PATH/home/grass/grasslinks/progs)に示したディレクトリにおかなければなりません. GRASS用のppm(portable pix map)ドライバーと設定ファイルを以下のように,GRASSのプログラムディレクトリ(/usr/local/grass42)にコピーする必要があります.

root# cd /home/grass/grasslinks/paint/driver.sh

root# cp * /usr/local/grass42/etc/paint/drivers.sh/

 

root# cd /home/grass/grasslinks/paint/driver

root# cp * /usr/local/grass42/etc/paint/driver/
 

6) GRASSLinksユーザーが使うftpディレクトリを作成する必要があります.

以下のようにftpディレクトリを設定して下さい.もし,自分のサーバーからftpでダウンロードしてほしくない場合は,/home/grass/grasslinks/htmlにある.index.htmlファイルからftpのオプションを消して下さい.root# cd /ftp/incoming [ 自分のftpサーバーのincomingディレクトリに移動する]

root# mkdir grasslinks [ GRASSLinksユーザー用のディレクトリを作成する]

root# chown -R grass grasslinks [ このディレクトリのオーナーをgrassの利用者に変更する]

root# chgrp -R users grasslinks   [ 同様にグループをgrassのグループに変更する]

 

7) 以上のステップが終了したら,GrassLinksindex.htmlファイルをWeb サーバーのドキュメントルート(htdocsディレクトリ)からリンクする必要があります.例えば,

root# cd /your/server/httpd/document/root    [ Webサーバーのドキュメントルート]

root# ln -s /home/grass/grasslinks/html grasslinks  [リンクをはります]

GRASSLinksへアクセスするためのURLは以下のようになります.
 

http://your.server.com/grasslinks