d.rast.zoom3

M.R. Lassche lasm at geo.vu.nl
Mon Jul 18 07:17:41 EDT 1994


Here is a modified version of the script d.rast.zoom2, we called it d.rast.zoom3
Most of the script was written by Rick Thompson and I did only a few modifacations to allow the display of up to 2 sites files, and I the checking if input is valid.

--------------BEGIN--------------------
#!/bin/sh

# *** d.rast.zoom3 ***
# Written by Rick Thompson 
# modified by Ronnie Lassche. Provided options for color vector displays
# 			      and site parameters for display.
#
# @(#) d.rast.zoom3: allows repetitive display and interactive d.zooming of up 
# @(#)               to 1 raster map, and 3 vector files,
# @(#)		     plus d.zooming back out in the reverse order. Additionally,
# @(#)		     a region can be saved, the original raster file's region
# @(#)		     can be returned to, or the user can do a one-time display
# @(#)		     of a new raster or vector file.
# @(#) Last revision: 7/15/94

# Recognize CDS echo -n
if [ `uname -m` = mips ] ; then
  ECHON="/usr/bsd43/bin/echo -n"
# Recognize Solaris 2.3 echo -n
elif [ `uname -s` = SunOS -a `uname -r | sed 's/\...*$//'` = 5 ] ; then
  ECHON="/usr/ucb/echo -n"
else
  ECHON="echo -n"
fi

if [ "$GISRC" = "" ] ; then
  clear
  echo "This command must be run from GRASS!"
  echo ''
  exit 1
fi

# name=''
clear
echo ''
echo "Option:    Name of raster map "
echo "     key:  map"
echo "required:  NO"
     g.ask type=old  element=cell desc=raster unixfile=/tmp/$$
    . /tmp/$$
    rm -f /tmp/$$
    rast="$name"


echo ''
echo "Option:    Name of vector map "
echo "     key:  map"
echo "required:  NO"
  g.ask type=old element=dig desc=vector unixfile=/tmp/$$
  . /tmp/$$
  rm -f /tmp/$$
    vect="$name"

if [ -n "$vect" ] ; then

  gotit=0
  while test $gotit -eq 0
   do
    echo ""
    echo "Option:    line color "
    echo "     key:  color"
    echo " Default:  white"
    echo "required:  NO"
    $ECHON "enter option > "
    read col1
     if test "$col1"
      then
       if test "$col1" != "aqua"    -a "$col1" != "black"    -a                                                 "$col1" != "blue"    -a "$col1" != "brown"    -a                                                 "$col1" != "gray"    -a "$col1" != "green"    -a                                                 "$col1" != "grey"    -a "$col1" != "indigo"   -a                                                 "$col1" != "magenta" -a "$col1" != "orange"   -a                                                 "$col1" != "red"     -a "$col1" != "white"    -a                                                 "$col1" != "yellow"
        then
         echo ""
         echo "sorry <$col1> is not valid input"
         echo ""
         echo "Options : aqua,black,blue,brown,gray,green,grey,indigo,"
         echo "          magenta,orange,red,white,yellow"
        else
         gotit=1
       fi
      else
       col1=white
       gotit=1
     fi
   done

  echo ''
  echo "Option:    Name of second vector map "
  echo "     key:  map"
  echo "required:  NO"
      g.ask type=old  element=dig desc=vector unixfile=/tmp/$$
      . /tmp/$$
      rm -f /tmp/$$
        vect2="$name"
fi

if [ -n "$vect2" ] ; then

gotit=0
while test $gotit -eq 0
 do
  echo ""
  echo "Option:    line color "
  echo "     key:  color"
  echo " Default:  white"
  echo "required:  NO"
  $ECHON "enter option > "
  read col2
   if test "$col2"
    then
     if test "$col2" != "aqua"    -a "$col2" != "black"    -a                                                 "$col2" != "blue"    -a "$col2" != "brown"    -a                                                 "$col2" != "gray"    -a "$col2" != "green"    -a                                                 "$col2" != "grey"    -a "$col2" != "indigo"   -a                                                 "$col2" != "magenta" -a "$col2" != "orange"   -a                                                 "$col2" != "red"     -a "$col2" != "white"    -a                                                 "$col2" != "yellow" 
     then
       echo ""
       echo "sorry <$col2> is not valid input"
       echo ""
       echo "Options : aqua,black,blue,brown,gray,green,grey,indigo,"
       echo "          magenta,orange,red,white,yellow"
      else
       gotit=1
     fi
    else
     col2=white
     gotit=1
   fi
 done


echo ""
echo "Option:    Name of third vector map "
echo "     key:  map"
echo "required:  NO"
    g.ask type=old element=dig desc=vector unixfile=/tmp/$$
    . /tmp/$$
    rm -f /tmp/$$
      vect3="$name"

fi

if [ -n "$vect3" ] ; then

  gotit=0
  while test $gotit -eq 0
   do
    echo ""
    echo "Option:    line color "
    echo "     key:  color"
    echo " Default:  white"
    echo "required:  NO"
    $ECHON "enter option > "
    read col3
     if test "$col3"
      then
       if test "$col3" != "aqua"    -a "$col3" != "black"    -a                                                 "$col3" != "blue"    -a "$col3" != "brown"    -a                                                 "$col3" != "gray"    -a "$col3" != "green"    -a                                                 "$col3" != "grey"    -a "$col3" != "indigo"   -a                                                 "$col3" != "magenta" -a "$col3" != "orange"   -a                                                 "$col3" != "red"     -a "$col3" != "white"    -a                                                 "$col3" != "yellow"
        then
         echo ""
         echo "sorry <$col3> is not valid input"
         echo ""
         echo "Options : aqua,black,blue,brown,gray,green,grey,indigo,"
         echo "          magenta,orange,red,white,yellow"
        else
         gotit=1
       fi
      else
       col3=white
       gotit=1
     fi
   done
fi


echo ''
echo "Option:    Name of sites file "
echo "     key:  file"
echo "required:  NO"
  g.ask type=old element=site_lists desc=sites unixfile=/tmp/$$
  . /tmp/$$
  rm -f /tmp/$$
    sites="$name"

if [ -n "$sites" ] ; then

  
  gotit=0
  while test $gotit -eq 0
   do
    echo ""
    echo "Option:    Sets the current color to that stated"
    echo "     key:  color"
    echo " Default:  gray"
    echo "required:  NO"
    $ECHON "enter option > "
    read col4
     if test "$col4"
      then
       if test "$col4" != "aqua"    -a "$col4" != "black"    -a                                                 "$col4" != "blue"    -a "$col4" != "brown"    -a                                                 "$col4" != "gray"    -a "$col4" != "green"    -a                                                 "$col4" != "grey"    -a "$col4" != "indigo"   -a                                                 "$col4" != "magenta" -a "$col4" != "orange"   -a                                                 "$col4" != "red"     -a "$col4" != "white"    -a                                                 "$col4" != "yellow"
        then
         echo ""
         echo "sorry <$col4> is not valid input"
         echo ""
         echo "Options : aqua,black,blue,brown,gray,green,grey,indigo,"
         echo "          magenta,orange,red,white,yellow"
        else
         gotit=1
       fi
      else
       col4=gray
       gotit=1
     fi
   done

  gotit=0
   while test $gotit -eq 0
   do
    echo ""
    echo "Option:    Size, in pixels, in wich the icon is to be drawn"
    echo "     key:  size"
    echo " Default:  5"
    echo "required:  NO"
    $ECHON "enter option > "
    read size
      if test "$size"
       then
        if test $size -le 0
         then
          echo ""
          echo "sorry <$size> is not valid input"
          echo ""
          echo "size must be greater then 0"
          echo ""
         else
          gotit=1
        fi
       else
        size=5
        gotit=1
      fi
   done

  gotit=0
   while test $gotit -eq 0
   do
    echo ""
    echo "Option:    Specify the type of the icon"
    echo "     key:  type (+,diamond.box,x)"
    echo " Default:  x"
    echo "required:  NO"
    $ECHON "enter option > "
      read icon
       if test "$icon"
        then
         if test "$icon" != "+"   -a "$icon" != "diamond" -a                                                      "$icon" != "box" -a "$icon" != "x"
          then
           echo ""
           echo "sorry <$icon> is not valid input"
           echo ""
           echo "Options : +,diamond,box,x"
           echo ""
          else 
           gotit=1
         fi
        else
         icon=x
         gotit=1
       fi
   done

echo ''
echo "Option:    Name of second sites file "
echo "     key:  file"
echo "required:  NO"
  g.ask type=old element=site_lists desc=sites unixfile=/tmp/$$
  . /tmp/$$
  rm -f /tmp/$$
    sites2="$name"

fi
if [ -n "$sites2" ] ; then

  gotit=0
  while test $gotit -eq 0
   do
    echo ""
    echo "Option:    Sets the current color to that stated"
    echo "     key:  color"
    echo " Default:  gray"
    echo "required:  NO"
    $ECHON "enter option > "
    read col5
     if test "$col5"
      then
       if test "$col5" != "aqua"    -a "$col5" != "black"    -a                                                 "$col5" != "blue"    -a "$col5" != "brown"    -a                                                 "$col5" != "gray"    -a "$col5" != "green"    -a                                                 "$col5" != "grey"    -a "$col5" != "indigo"   -a                                                 "$col5" != "magenta" -a "$col5" != "orange"   -a                                                 "$col5" != "red"     -a "$col5" != "white"    -a                                                 "$col5" != "yellow"
        then
         echo ""
         echo "sorry <$col5> not valid input"
         echo ""
         echo "Options : aqua,black,blue,brown,gray,green,grey,indigo,"
         echo "          magenta,orange,red,white,yellow"
        else
         gotit=1
       fi
      else
       col5=gray
       gotit=1
     fi
   done

  gotit=0
   while test $gotit -eq 0
   do
    echo ""
    echo "Option:    Size, in pixels, in wich the icon is to be drawn"
    echo "     key:  size"
    echo " Default:  5"
    echo "required:  NO"
    $ECHON "enter option > "
    read size2
      if test "$size2"
       then
        if test $size2 -le 0
         then
          echo ""
          echo "sorry <$size2> is not valid input"
          echo ""
          echo "size must be greater then 0"
          echo ""
         else
          gotit=1
        fi
       else
        size2=5
        gotit=1
      fi
   done

  gotit=0
   while test $gotit -eq 0
   do
    echo ""
    echo "Option:    Specify the type of the icon"
    echo "     key:  type (+,diamond.box,x)"
    echo " Default:  x"
    echo "required:  NO"
    $ECHON "enter option > "
      read icon2
       if test "$icon2"
        then
         if test "$icon2" != "+"   -a "$icon2" != "diamond" -a                                                    "$icon2" != "box" -a "$icon2" != "x"
          then
           echo ""
           echo "sorry <$icon2> is not valid input"
           echo ""
           echo "Options : +,diamond,box,x"
           echo ""
          else 
           gotit=1
         fi
        else
         icon2=x
         gotit=1
       fi
   done

echo ''

fi

d.erase
g.region rast="$rast"

if [ -f $LOCATION/cell/"$rast" ] ; then
  d.rast "$rast"
fi

if [ -n "$vect" ] ; then
  d.vect "$vect" c=$col1
fi

if [ -n "$vect2" ] ; then
  d.vect "$vect2" c=$col2
fi

if [ -n "$vect3" ] ; then
  d.vect "$vect3" c=$col3
fi

if [ -n "$sites" ] ; then
  d.sites "$sites" color=$col4 size=$size type=$icon
fi

if [ -n "$sites2" ] ; then
  d.sites "$sites2" color=$col5 size=$size2 type=$icon2
fi

g.region save=rastzoomtmp1
response="y"
i=1
until [ "$response" = "n" -o "$response" = "N" ] ; do
  clear
  echo ''
  echo "Please select one of these actions to:"
  echo ''
  echo "1 - use the interactive d.zoom"
  echo "2 - go to the previous zoom"
  echo "3 - go to a designated region"
  echo "4 - return to <$rast>""'s"" region"
  echo "5 - save the current region"
  echo "6 - do a one time display of a new raster map"
  echo "7 - do a one time display of a new vector map"
  echo "8 - quit"
  echo ''
  $ECHON "Please enter the appropriate number: "
  read number
  case $number in
	1) i=`expr $i + 1`
	   d.zoom -q
	   g.region save=rastzoomtmp$i
	   d.erase

           if [ -f $LOCATION/cell/"$rast" ] ; then
             d.rast "$rast"
           fi

	   if [ -n "$vect" ] ; then
	     d.vect "$vect" c=$col1
	   fi

	   if [ -n "$vect2" ] ; then
	     d.vect "$vect2" c=$col2
           fi

	   if [ -n "$vect3" ] ; then
	     d.vect "$vect3" c=$col3
	   fi

           if [ -n "$sites" ] ; then
             d.sites "$sites" color=$col4 size=$size type=$icon
           fi

           if [ -n "$sites2" ] ; then
             d.sites "$sites2" color=$col5 size=$size2 type=$icon2
           fi;;

	2) i=`expr $i - 1`
	   if [ $i = 0 ] ; then
	     echo "No previous zooming windows remain. Would you like to view"
	     $ECHON "the default region? (y/n) "
	     read ans
	     if [ "$ans" = "y" -o "$ans" = "Y" ] ; then
	       g.region -d res=$res
	       d.erase
               if [ -f $LOCATION/cell/"$rast" ] ; then
	         d.rast "$rast"
               fi
	     fi

	     if [ -n "$vect" ] ; then
	       d.vect "$vect" c=$col1
	     fi
 
	     if [ -f "$vect2" ] ; then
	       d.vect "$vect2" c=$col2
	     fi
 
	     if [ -f "$vect3" ] ; then
	       d.vect "$vect3" c=$col3
	     fi
	
             if [ -n "$sites" ] ; then
               d.sites "$sites" color=$col4 size=$size type=$icon
             fi

             if [ -n "$sites2" ] ; then
               d.sites "$sites2" color=$col5 size=$size2 type=$icon2
             fi

	   elif [ $i -lt 0 ] ; then
	     echo ''
	     echo "No previous zooming windows remain."
	     echo ''
	     sleep 3
	   else
	     g.region region=rastzoomtmp$i
	     d.erase
             if [ -f $LOCATION/cell/"$rast" ] ; then
	       d.rast "$rast"
             fi
 
	     if [ -n "$vect" ] ; then
	       d.vect "$vect" c=$col1
	     fi
 
	     if [ -n "$vect2" ] ; then
	       d.vect "$vect2" c=$col2
	     fi

	     if [ -n "$vect3" ] ; then
	       d.vect "$vect3" c=$col3
	     fi
 
             if [ -n "$sites" ] ; then
               d.sites "$sites" color=$col4 size=$size type=$icon
             fi

             if [ -n "$sites2" ] ; then
               d.sites "$sites2" color=$col5 size=$size2 type=$icon2
             fi

	   fi;;

	3) echo ''
 	   echo 'The region is based on:'
	   echo ''
	   echo '1 - raster file'
	   echo '2 - vector file'
	   echo '3 - region file'
	   echo ''
	   $ECHON 'Please enter the appropriate number: '
 	   read regno
	   case $regno in
		1) echo ''
		   type="rast";;
		2) echo ''
		   type="vect";;
		3) echo ''
		   type="region";;
	   esac
	   g.list "$type"
 	   echo ''
	   $ECHON "Enter the $type region you want: "
	   read newreg
	   g.region "$type"="$newreg"
	   d.erase

           if [ -f $LOCATION/cell/"$rast" ] ; then
	     d.rast "$rast"
           fi
 
	   if [ -n "$vect" ] ; then
	     d.vect "$vect" c=$col1
	   fi

	   if [ -n "$vect2" ] ; then
	     d.vect "$vect2" c=$col2
	   fi

	   if [ -n "$vect3" ] ; then
	     d.vect "$vect3" c=$col3
	   fi

           if [ -n "$sites" ] ; then
             d.sites "$sites" color=$col4 size=$size type=$icon
           fi

           if [ -n "$sites2" ] ; then
             d.sites "$sites2" color=$col5 size=$size2 type=$icon2
           fi;;

	4) g.region rast="$rast"
	   d.erase

           if [ -f $LOCATION/cell/"$rast" ] ; then
	     d.rast "$rast"
           fi

	   if [ -n "$vect" ] ; then
	     d.vect "$vect" c=$col1
	   fi

	   if [ -n "$vect2" ] ; then
	     d.vect "$vect2" c=$col2
	   fi

	   if [ -n "$vect3" ] ; then
	     d.vect "$vect3" c=$col3
	   fi

           if [ -n "$sites" ] ; then
             d.sites "$sites" color=$col4 size=$size type=$icon
           fi

           if [ -n "$sites2" ] ; then
             d.sites "$sites2" color=$col5 size=$size2 type=$icon2
           fi;;

	5) echo ''
	   $ECHON "Enter the name by which to save this region: "
	   read nreg
	   g.region save=$nreg;;
	6) echo ''
	   g.ask type=mapset prompt="Please select the tmp raster map:" element=cell desc=raster unixfile=/tmp/$$
	     . /tmp/$$
	   rm -f /tmp/$$
	     rname="$name"
	     name=''
	     d.rast -o "$rname";;
	7) echo ''
	   g.ask type=mapset prompt="Please select the tmp vector map:" element=dig desc=vector unixfile=/tmp/$$
	     . /tmp/$$
	   rm -f /tmp/$$
	     vname="$name"
	     name=''
	     echo ''
  gotit=0
  while test $gotit -eq 0
   do
    echo ""
    echo "Option:    line color "
    echo "     key:  color"
    echo " Default:  white"
    echo "required:  NO"
    $ECHON "enter option > "
    read vnamcol
     if test "$vnamcol"
      then
       if test "$vnamcol" != "aqua"    -a "$vnamcol" != "black"    -a                                           "$vnamcol" != "blue"    -a "$vnamcol" != "brown"    -a                                           "$vnamcol" != "gray"    -a "$vnamcol" != "green"    -a                                           "$vnamcol" != "grey"    -a "$vnamcol" != "indigo"   -a                                           "$vnamcol" != "magenta" -a "$vnamcol" != "orange"   -a                                           "$vnamcol" != "red"     -a "$vnamcol" != "white"    -a                                           "$vnamcol" != "yellow"
        then
         echo ""
         echo "sorry <$vnamcol> is not valid input"
         echo ""
         echo "Options : aqua,black,blue,brown,gray,green,grey,indigo,"
         echo "          magenta,orange,red,white,yellow"
        else
         gotit=1
       fi
      else
       vnamcol=white
       gotit=1
     fi
   done
	     d.vect "$vname" c=$vnamcol;;

	8) rm $LOCATION/windows/rastzoomtmp*
	   exit 0;;
esac
done
rm $LOCATION/windows/rastzoomtmp*
------------------END-----------
***********************************************
*             Ronnie Lassche                  *
*       Department of earth sciences          *
*              Free University                *
*                 Amsterdam                   *
*               lasm at geo.vu.nl                *
***********************************************



More information about the grass-user mailing list