GRASSLinksはUC
BerkeleyのSusan
Huseによって開発されました.GRASSLinksのLinux化は大阪市立大学で行なわれ,そのデモは,
にあります.GRASSLinksは自由に使えますが,"GRASSLinks (c) Copyright Information"を変更しないで利用してください.ここにはhtml documents, shell scriptsといくつかのC言語によるプログラムがあります.特別なコンパイラーは必要ありません.http://wgrass.media.osaka-cu.ac.jp/~grass
| GRASSLinks(linux版)のダウンロード |
grasslinks.tar.gzをダウンロードしてから下記のように解凍し,インストールしてください.linux版のすべての設定がこの中に入っています.テストデータとして,GRASSのspearfishデータベースが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ディレクトリの設定
GRASSLinksはhttpdのhttp.confファイルに書かれているユーザー名でGRASSを起動します.この設定ではgrasslinks0からgrasslinks5という6つのmapsetが利用できるようにしてあります.locationはspearfishでmapsetはPERMANENTとgrasslinks1から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
: ${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 [ GRASSlinksのtmp ディレクトリのパ
ス,最後の1はそれぞれに対応する]
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 [ GRASSlinksのtmpディレクトリのパス]
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プログラムがあるディレクトリ]
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:テンポラリーファイルです.時間ごとに中身が消えるようになっています.
root# cp ftper ftper.old [
バックアップをとっておく]root#
vi ftper [ ftperをviで編集する] 以下の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のラスター画像を選択できるようにします.
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)}'
clean_tmp:このスクリプトはtmpファイルなどを時間ごとに消します./usr/spool/cron/crontabsディレクトリにgrassというファイル名で以下の文を作成して下さい(コンピュータの設定によってこのディレクトリは異なる場合があります).0,15,30,45 * * * * /your/grasslinks/home/progs/clean_tmp
timer.c は検索を無限に行うことを避けるためにあります.
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/
root# mkdir grasslinks [ GRASSLinksユーザー用のディレクトリを作成する]
root# chown -R grass grasslinks [ このディレクトリのオーナーをgrassの利用者に変更する]
root# chgrp -R users grasslinks [ 同様にグループをgrassのグループに変更する]
7) 以上のステップが終了したら,GrassLinksのindex.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