mapgen how to!

Jill Schuler jschuler at tulip.itc.nrcs.usda.gov
Fri Oct 31 10:51:25 EST 1997


Stephan,

the mapgen4.1 script should be under the src.related/mapgen/SCS/misc
directory.  Copy this file to $GISBASE/scripts directory.  
(the script is attached at the bottom of the message)

Be sure to be in a valid GRASS mapset before starting MAPGEN.  

I'm not sure about your reference to the 7_15 release binaries.  These
changes were compiled for sunos 4.1.3.  Most of the programs are shell
scripts, but there are a few c programs that need compiling.

glad you like the citation! my management did not appreciate it.

Jill


mapgen4.1 script___________________________________________________

:
NAME=$1

##### setup mapgen variables   ##################
CPATH="`echo $PATH | tr ':' ' '`"
GRAPH=$GISBASE/mapgen
####### This change for new proj REL 4.1
PROJ_LIB=$GISBASE/etc
########
GRAPHB=$GRAPH/bin/plotter:$GRAPH/gfonts/:sr:
PATH=/usr/ucb:/bin:.:$GRAPH/bin:$GRAPH/interface:$PATH
##### END setup####################
SHELL=${SHELL:-sh}
########### check to see if I'm running GRASS #######################
#if test ! -f $HOME/.gislock; then
if test "$GIS_LOCK" = "";then
	echo You MUST be Running GRASS to Run the MAPGEN Interface
	exit
fi

export GRAPHB PATH GRAPH PS1 PROJ_LIB
export MNAME
########## check for correct version of 4.13 plotter and make_leg command
#Check for the instaliation of the NRI mapgen software.
#If present the make.legend program and the plotter program will not 
#function correctly.

if test `uname` = SunOS; then
SUM=/usr/5bin/sum
else
SUM=sum
fi

NRIp=`$SUM $GISBASE/mapgen/bin/plotter|cut -d" " -f1`
NRIl=`$SUM $GISBASE/mapgen/interface/make_leg|cut -d" " -f1`

if test $NRIp = 29485 ; then
echo
echo "Your current MAPGEN plotter program is NOT VALID for the 4.13 MAPGEN Software."
echo "Please refer to your 4.13 SCS software release notes."  
echo "See page 15 of \"Whats New.... SCS GRASS/MAPGEN 4.13 Release\"."
echo "The 4.13 software incorporates all necessary files for NRIDAS."
echo "DO NOT RE-INSTALL the NRI DAS SOFTWARE!!!!!!!"
exit
fi

if test $NRIl = 63305 ; then
echo
echo "Your current MAPGEN make_leg program is not valid for the 4.13 MAPGEN Software."
echo "Please refer to your 4.13 SCS software release notes."  
echo "The 4.13 software incorporates all necessary files for NRIDAS."
echo "See page 15 of \"Whats New.... SCS GRASS/MAPGEN 4.13 Release\"."
echo "DO NOT RE-INSTALL the NRI DAS SOFTWARE!!!!!!!"
exit
fi

##### Put in the proper directory
while test "$answ" != "n"
do
cd $LOCATION
##### check for mapgen directory   #########################
if test ! -d mapgen
	then
	mkdir mapgen
	answ=n
else
	answ=y
fi
######## Check for supporting directories #####################
if test ! -d $LOCATION/dig_geo
	then
	mkdir $LOCATION/dig_geo
fi
if test ! -d $LOCATION/sites_geo
	then
	mkdir $LOCATION/sites_geo
fi

old=n
######## Check for old supporting directories and copy to location################
if test -d $LOCATION/mapgen/dig_geo; then
	old=y
	echo "PREPARING EXISTING MAPGEN GEO FILES FOR 4.1 VERSION" 
	echo "Moving Contents of \$LOCATION/mapgen/dig_geo to \$LOCATION/dig_geo"
	cp $LOCATION/mapgen/dig_geo/* $LOCATION/dig_geo
	rm -r $LOCATION/mapgen/dig_geo
fi
if test -d $LOCATION/mapgen/sites_geo; then
	old=y
	echo "PREPARING EXISTING MAPGEN GEO FILES FOR 4.1 VERSION" 
	echo "Moving Contents of \$LOCATION/mapgen/sites_geo to \$LOCATION/sites_geo"
        cp $LOCATION/mapgen/sites_geo/* $LOCATION/sites_geo
        rm -r $LOCATION/mapgen/sites_geo
fi


if test "$answ" != "n" -o "$answ" != "N"
then
clear

if test $# = 1; then
answ=e
fmat41=y
else
answ=l
fi

while test "$answ" = "l" -o "$answ" = "L"
do
echo -n 'Do you want to edit an EXISTING MAP? [e]xisting, (n)ew or (l)ist? '
read answ
answ=${answ:-e}
if test "$answ" = "l" -o "$answ" = "L"
	then
	echo
	ls -C mapgen | sed -e "s/dig_geo//;s/sites_geo//"
	echo
fi
done
fi

if test "$answ" = "n" -o "$answ" = "N"
##### CREATE new map   ##########################################
	then
	while test "$MNAME" = ""
	do
	echo -n 'Enter the name of the NEW map: '
	read MNAME
	done
	if test ! -d mapgen/$MNAME
		then
		mkdir mapgen/$MNAME
	fi
	if test ! -d mapgen/$MNAME/ovm
		then
		mkdir mapgen/$MNAME/ovm
	fi

##### END CREATE map
else
	while test "$MNAME" = "";
	do
	echo -n 'Enter the name of the EXISTING base map: '
	read MNAME
	if test ! -d mapgen/$MNAME -o "$MNAME" = ""
		then
		echo Error that map does not exist
		exit
	fi
	done
fi
clear
cd mapgen/$MNAME

###############Checking map structure for 4.1 ###############
if test $old = y ; then
fmat41=n
fi

while test "$fmat41" = ""
do
echo 
echo "The MAPGEN Interface parameter file structure has changed in version 4.1x."
echo "The following directory files must be modified for compatability:
	misc parameter files
	map definition files
	legend/cmd files"

if test $answ != n; then
echo
echo -n "Is your current map in the correct format for 4.1x? ([y]es or (n)o): "
read fmat41 
fmat41=${fmat41:-y}
else
fmat41=y
fi
done

if [ $fmat41 = n -o $fmat41 = N ]; then
############### checking misc directory file structure
echo
echo "Checking MISC File Structure For Correct 4.1 Format"
for i in `ls $LOCATION/mapgen/$MNAME/misc/*`
do
 
if test -s $i; then
doit=`head -1 $i |awk '{ FS = " "; print ($2);}'`
if [ "$doit" != "-m" ]; then
mdef=`head -1 $i |awk '{ FS = " "; print ($2);}'`
sed -e "s/legend $mdef/legend -m $mdef/" $i >tmp
mv tmp $i
chmod +x $i
echo "Adding -m for 4.1 version of legend command."
fi
else
echo
echo "File $i is an empty file. Skipping.........."
fi
done
############ end misc check


############# Checking mapdef files for correct structure ######
echo
echo "Checking map definition File Structure For Correct 4.1 Format"
def.2.4.1 $MNAME
##### END check

############# Checking barscale files for correct structure ######
echo
echo "Checking barscale File Structure For Correct 4.1 Format"
bar.2.4.1 $MNAME
##### END check

############# Checking legend/cmd files for correct structure #####
echo
echo "Checking legend/cmd File Structure For Correct 4.1 Format"
run.update.cmd $MNAME
##### END check

fi

PS1="
 Mapset <$MAPSET> in Location <$LOCATION_NAME> in MAP <$MNAME>
 GRASS-MAPGEN 4.13 > "
clear
echo "	Welcome to the SCS-GRASS/MAPGEN Interface version 4.13"
echo "	Default options are enclosed in brackets []."
echo "	To accept the default type the return."
echo
if [ $fmat41 = n -o $fmat41 = N ] ; then
echo "	Warning! Warning!"
echo "	Existing MAPGEN file structure has changed.  When in doubt
	run the command <redo all> to update your files."
echo
fi
echo "  You are editing map $MNAME"
echo "  Your current directory is `pwd`"
echo
echo "	When ready to quit, type exit."
echo
if test `basename $SHELL` = csh; then
	cshrc=$LOCATION/mapgen/$MNAME/.cshrc
	cp $LOCATION/.cshrc $cshrc
	echo "set path = (/usr/ucb /bin . $GRAPH/bin $GRAPH/interface $CPATH)" >> $cshrc
	echo "set prompt='\\" >> $cshrc
	echo " Mapset <$MAPSET> in Location <$LOCATION_NAME> in MAP <$MNAME>\\" >> $cshrc
	echo " GRASS-MAPGEN 4.13 > '"  >> $cshrc
	echo "setenv GRAPHB $GRAPH/bin/plotter:$GRAPH/gfonts/:sr:" >> $cshrc
	HOME=$LOCATION/mapgen/$MNAME;export HOME
	home=$HOME
	$GISBASE/etc/run ${SHELL}
else
	$GISBASE/etc/run ${SHELL}
fi
MNAME=""
echo -n "Do you want to work on another map (y)es or [n]o: "
read answ
answ=${answ:-n}
done
##### Put in the proper directory
cd $LOCATION



More information about the grass-user mailing list