1.1 What is GRASS? 1
1.2 Usage for the VPE Laboratory 1
1.3 Tutorial 4
1.3.1 Logging on to the computer 4
1.3.2 Starting up GRASS 4
1.3.3 Creating a GRASS Database for use with the Mars data 5
1.3.4 Accessing Mars Data from the CD-ROM 7
1.3.5 Creating the GRASS header Support Files 9
1.3.6 Registration using Kilauea Data 11
1.3.6.1 Specifiying the Location and Mapset 12
1.3.6.2 Customizing the Database Environment and Selecting
the Graphic Output Device 14
1.3.6.3 Obtaining a Grey Scale 14
1.3.6.4 Grouping the first Raster Image 16
1.3.6.5 Targeting the First Image 17
1.3.6.6 Using `i.points' on the First Image 18
1.3.6.7 Rectifying The First Image 19
1.3.6.8 Grouping the Three Other Images 20
1.3.6.9 Targeting The Three Images 21
1.3.6.10 Using Points on the Three Images group to prepare
to Register with the First 21
1.3.6.11 Rectifying the First Image Group to the Three Image
Group 24
1.3.7 Visualization of the Kilueau Mapset 25
1.4 Resources 33
1.4.1 Software 33
1.4.2 Databases 33
1.4.3 Tutorials 34
1.4.4 Newsgroups 34
1.4.5 Programming notes 35
1.4.6 GIS Mailing Lists 35
1.4.7 GRASS Mailing list 35
1.4.8 Useful Information obtained from the Mailing List
Archive: 39
1.4.8.1 Compiling Grass on IRIX 5: 39
1.4.8.2 Mars Data 41
1.4.8.3 Searching through the grassu-list archives 41
1.4.8.4 Histograms 42
1.4.8.5 Color display in GRASS explained 42
1.4.8.6 Running GRASS programs without starting grass 43
1.4.8.7 Sample usage of r.mapcalc 43
1.4.8.8 Autocad DXF files 44
1.4.8.9 Databases and GRASS 44
1.4.8.10 New r.in.hdf Command 45
1.5 Appendix 46
1.5.1 Stanford Workshop GRASS Tutorial ---
1.5.2 C Code Written During Installation ---
1.5.3 Installation Size ---
1.5.4 VOLINFO.TXT Mars CDROM ---
This section does not currently apply.
This document uses 12 point Times New Roman Font.GRASS stands for Geographic Resources Analysis Support System, and is a widely used software package allowing one to manipulate geographical information. Software like GRASS is known as a Geographical Information System (GIS). GRASS is released free of charge by the US. Army Corp. of Engineers (The FTP site for obtaining it is in Section 1.4: Resources)
The internet posts a monthly NetNews article in net.answers called the 'GIS FAQ' that answers Frequently Asked Questions about GIS systems. Two definitions cited are:
A GIS is ...An information system that is designed to work with data referenced by spatial or geographic coordinates. In other words, a GIS is both a database system with specific capabilities for spatially-referenced data, as well as a set of operations for working [analysis] with the data. (Star and Estes, 1990)
... simultaneously the telescope, the microscope, the computer, and the Xerox machine of regional analysis and synthesis of spatial data (Abler, 1988).
A typical use for GRASS would be the creation of a map suitable for urban development. The map might be required to show vegetation, all areas that are currently range land, plus any slopes equal to or less then 15 degrees. For this application, the GRASS database would contain several types of data; such as Digital Elevation Models (DEMs) with x,y,z information, raster pictures (perhaps from LandSat photos), road locations, and vegetation densities.
With GRASS you can display these types of data easily and in relation to each other (only several display commands are needed). You can overlay the raster pictures on the DEM data, and include road and vegetation information. You can then zoom in on areas of interest, and using the database functions of GRASS, do queries for additional information.
The VPE GRASS installation contains a sample database (spearfish, located in Montana), that can be used to create a map of this type. A tutorial (Section 1.5.1 Stanford Workshop Grass Tutorial) is included that shows the procedures for this process.
GRASS comes with tools used to import 'raw' raster scan pictures, DEMs, and categorical data. These tools allow for the building of new databases. GRASS can then be used to create a planetary database, such as of Mars and Earth.
In Section 1.3: Tutorial, you will be shown the steps needed to obtain data on Mars from a CD-ROM, and, using this data, create a GRASS database. You will also be shown the process of registration using data from Mt. Kilauea, a volcano in Hawaii (also from a CD-ROM.)
Registration is the process of combining spatial information that corresponds to each other on different datasets.:
In many image processing applications it is necessary to form a pixel-by-pixel comparison of two images of the same object field obtained from different sensors, or of two images of an object field taken from the same sensor at different times. To form this comparison it is necessary spatially to register the images and thereby correct for relative translational shifts magnification differences and rotational shifts, as well as geometrical and intensity distortions of each image ( W. Pratt, Digital Image Processing, 1978 )Registration is a key advantage of using GRASS.
GRASS is ideal for the displaying and processing (e.g. sizing) of raster images (Figure 1: kildem.1.gif).
It also allows for the overlaying of images into one congruent orientation (Figure 2: img.pts.4.sml.gif):
Using an elevation map of the site (such as DEM data - Figure 3: SG3d.1.gif), one can create a 3d map representation that corresponds to the raster image.
Before starting, you will first need an account on a machine with network accessibility to GRASS. machine name , machine name , and machine name have GRASS access (all 3 have visible binary executables). machine name in addition has documentation (see Resources: Documentation.) The System Administrator is name ( phone ). After obtaining permission from the Boss (the person who controls all the equipment), one can contact him/her for an account.
Space on machine name is limited, so accessing the GRASS system from another machine is advised (please see Section 1.5.3: Installation Size) for the size of the GRASS installation. The lab facilities have several SGI machines available ( machine names .)
The tutorial assumes that access is from the SGI machine called machine names . If you are not familiar with the SGI windowing environment, you should learn the SGI operating systems before attempting this tutorial. Alternatively, NASA has a site license for MACx, which lets you use GRASS on a Mac connected to the Local Applenet (Currently, this option is being developed - so we do not yet have complete instructions for this method.) This access is noticibly slower than from a SGI machine.
At a SGI console, log on using your Login and Password. Please take notice of the message telling you of the Schedule. Make sure you are not interfering with any on- going experiment or demonstration.
Make grass accessible to your account by typing:
set path=($path ~schwehr/grass ~schwehr/bin)You may want to include this in your ".tcshrc" or your ".csrhrc"
Start up grass by typing:
grass4.1
You will see a pre-filled form:
GRASS 4.1
LOCATION: This is the name of an available geographic
location.
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: spearfish_____(enter list for a list of
locations)
MAPSET: schwehr_______(or mapsets within a location)
DATABASE:
/home/schwehr/grass/data__________________________
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
If you are accessing machine name via a remote login or telnet, you must set up a graphics window accessible to GRASS on your console; i.e.
setenv DISPLAY mymachine.arc.nasa.gov:0Otherwise, one can use a display on the machine console:
GRASS 4.1 > setenv DISPLAY machine.arc.nasa.gov:0
To see what DISPLAY is set at use the UNIX command "printenv". Note that one can use the UNIX commands at the GRASS prompt. GRASS is a variation of a cshell with access from the command line. This gives you the ability to create GRASS scripts just as one is able to create shell scripts.
Enter Grass and change the initial form as follows:
Change the Location to 'mars.tutor.xy':
Change the Mapset to your last name. In this tutorial, the name will be 'schwehr,' however you will see your name in the output because this step changes the name.
Continue by typing in the <ESC>. If the location already exists, you will enter GRASS, otherwise your next screen will be:
LOCATION <mars.tutor.xy> - doesn't exist
Available locations:
----------------------
den.utm.z12 mars.in.xy
denver.aea spearfish
----------------------
Would you like to create location <mars.tutor.xy> ? (y/n) y
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)
UTM
State Plane
Latitude-Longitude
other projection
2. The zone for the database
(except for x,y and Latitude-Longitude databases)
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
<mars.tutor.xy> ? (y/n) y
Please specify the coordinate system for location
<mars.tutor.xy>
0 x,y
1 UTM
2 State Plane
3 Latitude-Longitude
99 Other
RETURN to cancel
> 0
x,y coordinate system? (y/n) [y]
Please enter a one line description for location
<mars.tutor.targ>
> Mars Database for the grass 4.1 tutorial
=====================================================
Mars Database for the grass 4.1 tutorial
=====================================================
ok? (y/n) [y]
DEFINE THE DEFAULT REGION
====== DEFAULT REGION =======
| NORTH EDGE:2000_______ |
WEST EDGE| |EAST EDGE
0__________| |2000_______
| SOUTH EDGE:0__________ |
============================
PROJECTION: 0 (x,y) ZONE: 0
GRID RESOLUTION
East-West: 1_________
North-South: 1_________
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
projection: 0 (x,y)
zone: 0
north: 2000
south: 0
east: 2000
west: 0
e-w res: 1
n-s res: 1
total rows: 2000
total cols: 2000
total cells: 4,000,000
Do you accept this region? (y/n) [y] > y
LOCATION <mars.tutor.xy> created!
Hit RETURN -->
GRASS 4.1
LOCATION: This is the name of an available geographic
location.
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: mars.tutor.xy__(enter list for a list of
locations)
MAPSET: schwehr_______(or mapsets within a location)
DATABASE:
/home/schwehr/grass/data__________________________
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
Welcome to GRASS 4.1 (Spring 1993) Update package 4
Geographical Resources Analysis Support Systems (GRASS) is
a Trademark of U.S. Army Construction Engineering Research
Laboratories (USACERL)
New releases of GRASS are coordinated and produced by the
Office of GRASS Integration (OGI) located at USACERL, and
incorporate software contributions from numerous sources
This version running thru the C Shell (/bin/csh)
Help is available with the command: g.help
When ready to quit enter: exit
Mapset <schwehr> in Location <mars.tutor.xy> GRASS 4.1 >
exit
Mapset <schwehr> in Location <mars.tutor.xy> GRASS 4.1 >
GRASS SESSION WRAPUP
You have just finished working on mapset: <schwehr>
There are no RASTER maps in this mapset
There are no VECTOR maps in this mapset
There are no SITES maps in this mapset
Shall the mapset <schwehr> be saved? y/n [y]
GOOD BYE from GRASS
MARS: GLOBAL TOPOGRAPHY; VOLUME7 Mission To Mars: Digital Topographic Map, prepared by USGS fo NASA 1993
This tutorial assumes that the CD-ROM is loaded on the computer which is running GRASS. Please ask the System Adminitrator to place the CD-ROM on the machine. Once accessible, go to the LOCATION directory:
GRASS 4.1 > cd ~schwehr/grass/data/mars.tutor.xy Mapset>If you do a listing you should see your name as the directory for your mapset:
GRASS 4.1 > ls PERMANENT schwehr
Go to the Mapset directory. Here we will create a subdirectory called 'cell' where we will place the CD-ROM data of interest. For this example we will use the dataset called: tg15n067. The nomenclature is that of the Mars CD- ROM system where each image file has a unique name constructed according to the type of image file, resolution and its central latitude and longitude (See Section 1.5.4: Appendix: VOLINFO.TXT).
GRASS 4.1 > cd schwehr GRASS 4.1 > mkdir cell GRASS 4.1 > cd cell GRASS 4.1 > cp /CDROM/tng15nxxx/tg15n067.imgThe data comes with an ascii header file that must be removed in order to make it GRASS accessible. See Section 1.5.4 Appendix: VOLINFO.TXT) for a description of all the records of the header. You can see the header by using a unix listing command like 'more' or 'head :'
GRASS 4.1 > more tg15n067.img
CCSD3ZF0000100000001NJPL3IF0PDS200000001 = SFDU_LABEL
/* FILE FORMAT AND LENGTH */
RECORD_TYPE = FIXED_LENGTH
RECORD_BYTES = 1912
FILE_RECORDS = 962
LABEL_RECORDS = 2
/* POINTERS TO START RECORDS OF OBJECTS IN FILE */
^IMAGE = 3
/* IMAGE DESCRIPTION */
DATA_SET_ID = "VO1/VO2-M-VIS-5-DTM-V1.0"
SPACECRAFT_NAME = {VIKING_ORBITER_1, VIKING_ORBITER_2}
TARGET_NAME = MARS
IMAGE_ID = TG15N067
INSTRUMENT_NAME = {VISUAL_IMAGING_SUBSYSTEM_CAMERA_A,
VISUAL_IMAGING_SUBSYSTEM_CAMERA_B} NOTE = "DIGITAL TERRAIN
MODEL, 1/64-DEGREE PER PIXEL"
/* DESCRIPTION OF OBJECTS CONTAINED IN FILE */
OBJECT = IMAGE
LINES = 960
LINE_SAMPLES = 956
SAMPLE_TYPE = VAX_INTEGER
SAMPLE_BITS = 16
CHECKSUM = 128838457
MINIMUM = 2497
MAXIMUM = 4749
/* ELEVATION (METERS) = 2*DN - 6000, NULL DN VALUES = 0 */
MISSING = 0
SCALING_FACTOR = 2
OFFSET = -6000END_OBJECT = IMAGE
To strip the header use the split.pds.image command (Section
1.5.2: C Code Written During Installation):
GRASS 4.1 > split.pds.image File to read from:tg15n067.img Img Output file:tg15n067 Text Output file:tg15n067.lbl Text Header Size:3824 3824 characters written 1835520 characters writtenIn addition to stripping the header, the binary file bye order must be swapped. The Mars DTM files from the USGS Viking CD-ROM lists the data type as 16 bit Vax_integers. IBM and Vaxes have a different byte order than MIPs (SGI) machines in that integers are longer than one byte. The symtom of the wrong byte order is to have unusual and rapidly varying values in small areas on the image. Use the swap.bytes command to change the file for the SGI machine. This program reads in each pair of bytes, swaps them, and writes them out to a different file (Appendix: C-Code):
GRASS 4.1 > swap.bytes Swap bytes for a 16bit image file. File to read from:tg15n067 Img Output file:tg15n067.swap 917760 characters writtenIf you do a listing you should see the following files:
GRASS 4.1 > ls -l total 10771 -rw-r--r-- 1 schwehr vpe 1835520 Aug 17 13:42 tg15n067 -rw-r--r-- 1 schwehr vpe 1839344 Aug 17 13:38 tg15n067.img -rw-r--r-- 1 schwehr vpe 3824 Aug 17 13:42 tg15n067.lbl -rw-r--r-- 1 schwehr vpe 1835520 Aug 17 13:44 tg15n067.swapFor convenience, one can rename the file:
GRASS 4.1 > mv tg15n067.swap tg15n067Creating the GRASS header Support Files GRASS needs some support files called header files. The utility used is `r.support'.
GRASS 4.1 > r.support Enter name of raster file for which you will create/modify support files Enter 'list' for a list of existing raster files Enter 'list -f' for a list with titles Hit RETURN to cancel request >GRASS treats any file in a /<location>/<mapset>/cell/ directory as a binary raster image.
list <list> ---------------------------------------------- raster files available in mapset schwehr: tg15n067 tg15n067.img tg15n067.lbl ---------------------------------------------- Enter name of raster file for which you will create/modify support files Enter 'list' for a list of existing raster files Enter 'list -f' for a list with titles Hit RETURN to cancel request > tg15n067 <tg15n067>Since we are creating the header file, GRASS will indicate this and then allow us to create it. The input values are obtained from the header file of the raw data:
LINES = 960 LINE_SAMPLES = 956 SAMPLE_TYPE = VAX_INTEGER SAMPLE_BITS = 16One obtains the number of bytes per cell by dividing the SAMPLE_BITS by 8 (resulting in 2). The values are used as follows:
WARNING: Can't open header file for [tg15n067 in schwehr] Edit the header for [tg15n067]? (y/n) [y] y Edit header for [tg15n067] cellhd compression: 0 3.0 compression not indicated pre 3.0 compression not indicated hit RETURN to continue --> Please enter the following information for [tg15n067] 960__ Number of rows 956__ Number of cols 2____ Number of bytes per cell rows * cols * bytes per cell must be same as file size (1835520) If you need help figuring them out, just hit ESC AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE (OR <Ctrl-C> TO CANCEL)If you input the incorrect information, GRASS will attempt to assist you. For example suppose that you entered 957 instead of 956. Your ouput will show
The product of the rows(960), cols(957) and bytes per cell(2) does not equal the file size (1835520) The following combinations will produce the correct file size 2 bytes per cell 1 * 917760 2 * 458880 3 * 305920 4 * 229440 5 * 183552 6 * 152960 8 * 114720 10 * 91776 12 * 76480 15 * 61184 16 * 57360 20 * 45888 24 * 38240 30 * 30592 32 * 28680 40 * 22944 48 * 19120 60 * 15296 64 * 14340 80 * 11472 96 * 9560 120 * 7648 128 * 7170 160 * 5736 192 * 4780 239 * 3840 240 * 3824 256 * 3585 320 * 2868 384 * 2390 478 * 1920 480 * 1912 640 * 1434 717 * 1280 768 * 1195 956 * 960 hit RETURN to continue -->
Figure 5: tg15n067.first.gif.
The tutorial in the Appendix contains examples of registration (Section 1.5.1: Stanford Workshop Grass Tutorial). This example uses sample data from a CD-ROM containing data of the Kilauea Volcano in Hawaii. Registration is a multi-step proccess, involving creating a Group (a collection of images) and a Target Database, followed by the selection of control points; i.e. points that are congruent on the different images, and finally the registration of the images together using the control points.
This example is a fairly detailed one that shows how to register one raster image (kildem) to a set of three (skil12n2.img, skil12n4.img, skil12n7.img). In the process, we will modify the kildem image by creating a grey scale for it. We will then create a group for the kildem data (kildem.grp), target it, and rectify it. Following this, the set of three images will also be grouped and targeted (producing image.grp), followed by the rectification to the first image.
Througout the process, note that the `i.point' procedure is used to obtain the reference points used to register the images together. Note also that one has to `group' the kildem image, even though it is a group of one. GRASS considers this neccessary so as to allow one to target the image to it (since GRASS targets a `group').
GRASS 4.1
LOCATION: This is the name of an available geographic
location.
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: kil.tutor.targ_(enter list for a list of
locations)
MAPSET: schwehr_____(or mapsets within a location)
DATABASE:
/home/schwehr/grass/data__________________________
AFTER COMPLETING ALL ANSWERS, HIT <ESC>
TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
Please input 'kil.tutor.targ' as the Location and your name
as the Mapset:
LOCATION <kil.tutor.targ> - doesn't exist
Available locations:
----------------------
den.utm.z12 kil.sample.xy kill.dan.xy spearfish.tar.Z
denver.aea.2 kil.sample.xy.tar mars.in.xy text.files
denver.in.1 kil.tutor.xy mars.tutor.xy
denver.ll spearfish
----------------------
Would you like to create location <kil.tutor.targ> ? (y/n) y
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)
UTM
State Plane
Latitude-Longitude
other projection
2. The zone for the database
(except for x,y and Latitude-Longitude databases)
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 <kil.tutor.targ> ? (y/n) y
Please specify the coordinate system for location <kil.tutor.targ>
0 x,y
1 UTM
2 State Plane
3 Latitude-Longitude
99 Other
RETURN to cancel
> 0
x,y coordinate system? (y/n) [y]
Please enter a one line description for location <kil.tutor.targ>
> Tutorial location for Kilauea - target for registering files - xy coords
=====================================================
Tutorial location for Kilauea - target for registering
files - xy coords
=====================================================
ok? (y/n) [y]
DEFINE THE DEFAULT REGION
====== DEFAULT REGION ========
| NORTH EDGE:400________ |
WEST EDGE| |EAST EDGE
0__________| |400_______
| SOUTH EDGE:0__________ |
============================
PROJECTION: 0 (x,y) ZONE: 0
GRID RESOLUTION
East-West: 1_________
North-South: 1_________
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
projection: 0 (x,y)
zone: 0
north: 400
south: 0
east: 400
west: 0
e-w res: 1
n-s res: 1
total rows: 400
total cols: 400
total cells: 160,000
Do you accept this region? (y/n) [y] >
LOCATION <kil.tutor.targ> created!
After specifiying the Location and Mapset, be sure to save
it when exiting:
When ready to quit enter: exit GRASS 4.1 > exit GRASS SESSION WRAPUP You have just finished working on mapset: <schwehr> There are no RASTER maps in this mapset There are no VECTOR maps in this mapset There are no SITES maps in this mapset Shall the mapset <schwehr> be saved? y/n [y]Enter GRASS again and specify the Location kil.tutor.targ and your Mapset ('schwehr' in this tutorial). By using a 'g' command (i.e. general, one can list the raster files available):
GRASS 4.1 > g.list rast --------------------------------------------- raster files available in mapset PERMANENT: kildem skil12n2.img skil12n4.img skil12n7.img ----------------------------------------------Customizing the Database Environment and Selecting the Graphic Output Device One can now customize the database environment and select the graphics output device. Use of the `g.gisenv ` command displays the specified variable as part of the prompt if desired:
GRASS 4.1 > g.gisenv GISDBASE=/home/schwehr/grass/data LOCATION_NAME=kil.tutor.targ MAPSET=schwehr GRASS 4.1 > setenv DISPLAY console:0 GRASS 4.1 > d.mon start=iris Graphics driver [iris] started GRASS 4.1 > d.frame -eObtaining a Grey Scale
Obtain a grey scale with the following commands:
GRASS 4.1 > g.region rast=kildem GRASS 4.1 > d.rast kildem GRASS 4.1 > i.grey.scale which layer needs a grey scale? Enter 'list' for a list of existing raster files Enter 'list -f' for a list with titles Hit RETURN to cancel request > list <list> --------------------------------------------- raster files available in mapset PERMANENT: kildem skil12n2.img skil12n4.img skil12n7.img ---------------------------------------------- which layer needs a grey scale? Enter 'list' for a list of existing raster files Enter 'list -f' for a list with titles Hit RETURN to cancel request > kildem <kildem> Reading kildem ... [kildem in PERMANENT] now has a grey scale color table which layer needs a grey scale? Enter 'list' for a list of existing raster files Enter 'list -f' for a list with titles Hit RETURN to cancel request >Display the output:
GRASS 4.1 > d.rast kildemThe grey scale file is an ascii text that is can be edited using any text editor such as vi or emacs. The format is of an altitude, followed by the grey scale range to code for that altitude level:
GRASS 4.1 > cd
~schwehr/grass/data/kil.tutor.targ/schwehr/colr2/PERMANENT
GRASS 4.1 > cat kildem
% 1 6363
0:0
1:0 15:0
16:1 28:1
29:2 37:2
38:3 47:3
48:4 53:4
54:5 62:5
63:6 69:6
...
etc ...
To get familiar with the data, one can use the d.what.rast
command. This will let you use your mouse to select a point
and obtain information on that point: Using this, one can
select different altitudes ranges and modify the grey scale.
GRASS 4.1 > d.what.rast Buttons Left: what's here Right: quit 221.5(E) 935.5(N) kildem in PERMANENT (4496) 212.5(E) 762.5(N) kildem in PERMANENT (3618) 469.5(E) 691.5(N) kildem in PERMANENT (3547) 558.5(E) 629.5(N) kildem in PERMANENT (3250) 724.5(E) 598.5(N) kildem in PERMANENT (2505) Buttons Left: what's here Right: quit GRASS 4.1 > ls -l total 9 -rw-r--r-- 1 schwehr vpe 4292 Aug 18 17:07 kildemUsing this technique, the grey scale can be changed to what one desires (after using the `d.what.rast' command to obtain the values one wants). For this example the kildem grey scale was changed to the following:
GRASS 4.1 > more kildem % 1 6363 0:0 2505:255 2506:255:255:255 3250:0:255:0 3251:0:255:0 3547:255:0:0 3548:255:0:0 3618:0:255:0 3619:0:255:0 4045:255:0:255 4046:255:0:255 4496:255:0:0This is not the best color scale. Try your own, and you will probably get better results.
One can use the 'zoom' command to change the current region:
GRASS 4.1 > d.rast kildem GRASS 4.1 > d.zoom Buttons: Left: Establish a corner Middle: Check coordinates Right: Accept region north: 889 south: 888 east: 512 west: 511 north: 889 south: 654 east: 512 west: 265 This region now saved as current region. Note: run 'd.erase' for the new region to affect the graphics.See Figure 1: kildem.1.gif for a sample of the display output. Since the display is using an iris monitor, it needs to be cleared using the d.frame -e command.
> GRASS4.1 > d.frame -e > GRASS4.1 > d.rast kildemGrouping the first Raster Image Grass can be used on multiples of images. This is facilitated by the use of a 'group'; i.e. sets of images that are coprocessed. Creating a group is required for this registration:
> GRASS4.1 > i.group
This program edits imagery groups. You may add data layers
to, or remove data layers from an imagery group. You may
also create new groups
Please enter the group to be created/modified
GROUP: kildem.grp__________ (list will show available
groups)
AFTER COMPLETING ALL
ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
kildem.grp - does not exist, do you wish to create a new
group? (y/n) [n] y
LOCATION: kil.tutor.targ GROUP: kildem.grp MAPSET:
schwehr
Please mark an 'x' by the files to be added in group
[kildem.grp]
MAPSET: PERMANENT
_x kildem
__ skil12n2.img
__ skil12n4.img
__ skil12n7.img
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO
CONTINUE
(OR <Ctrl-C> TO CANCEL)
Group [kildem.grp] references the following raster file
-----------------------
kildem in PERMANENT
-----------------------
Look ok? (y/n) y
Group [kildem.grp] created!
LOCATION: kil.tutor.targ GROUP: kildem.grp
MAPSET: schwehr
1. Select a different group
2. Edit group title
3. Include new raster files in the group
or remove raster files from the group
4. Assign colors to the group
5. Create a new subgroup within the group
RETURN exit
Targeting the First Image
After creating the group, one must target it to the database
one wants to use:
GRASS 4.1 > i.target
This program targets an imagery group to a GRASS database
Enter group that needs a target
Enter 'list' for a list of existing imagery groups Enter
'list -f' for a verbose listing
Hit RETURN to cancel request
> list
<list>
Available groups
---------------------------------
kildem.grp
---------------------------------
hit RETURN to continue -->
Enter group that needs a target
Enter 'list' for a list of existing imagery groups
Enter 'list -f' for a verbose listing
Hit RETURN to cancel request
> kildem.grp
<kildem.grp>
Please select the target LOCATION and MAPSET for group
<kildem.grp>
CURRENT LOCATION: kil.tutor.targ
CURRENT MAPSET: schwehr
TARGET LOCATION: ____________________
TARGET MAPSET: ____________________
(enter list for a list of locations or mapsets within a
location)
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
Fill this form with 'kil.tutor.targ' as the Location and
your name as the Mapset.
Using `i.points' on the First Image
Finally, one can begin the registration process. 'i.points'
will let you locate the points that you will use as markers.
It uses a mouse menuing system to let you pick the map
points that you believe you have coordinate information on.
You can then do an analysis that shows the list of control
points and the positioning error. Iteratively, one can do
the point selection and analysis to reduce the error (
Figure 6: img.pts.3.sml.gif):
GRASS 4.1 > i.points Enter imagery group to be registered Enter 'list' for a list of existing imagery groups Enter 'list -f' for a verbose listing Hit RETURN to cancel request > list <list> Available groups --------------------------------- kildem.grp --------------------------------- hit RETURN to continue --> Enter imagery group to be registered Enter 'list' for a list of existing imagery groups Enter 'list -f' for a verbose listing Hit RETURN to cancel request > kildem.grp
Figure 6: img.pts.3.sml.gif:
Rectifying The First Image
GRASS 4.1 > i.rectify
Enter the group containing files to be rectified Enter
'list' for a list of existing imagery groups Enter 'list -
f' for a verbose listing
Hit RETURN to cancel request
> list
<list>
Available groups
---------------------------------
kildem.grp
---------------------------------
hit RETURN to continue -->
Enter the group containing files to be rectified Enter
'list' for a list of existing imagery groups Enter 'list -
f' for a verbose listing
Hit RETURN to cancel request
> kildem.grp
<kildem.grp>
Please select the file(s) you wish to rectify by naming an
output file
kildem@schwehr . . . . . . . . . . kildem_________
(enter list by name to get a list of existing raster
files)
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
Please select one of the following options
1. Use the current region in the target location
2. Determine the smallest region which covers the image
> 1
You will receive mail when i.rectify is complete. The
contents of the rectification notice will look similar to
the following:
GRASS 4.1 > mail
From schwehr Thu Aug 18 17:42:25 1994
Thu, 18 Aug 94 17:42:25 -0700
From: schwehr (Kurt Schwehr)
Subject: i.rectify
Apparently-To: schwehr
***********************************************
Rectify [kildem@PERMANENT] (LOCATION kil.tutor.targ)
into [kildem in schwehr] (LOCATION kil.tutor.tar)
complete
-----------------------------------------------
400 rows, 400 cols (160000 cells) completed in 0:06
1600000.0 cells per minute
? d
Grouping the Three Other Images
After receiving notification one can continue:
GRASS 4.1 > i.group
LOCATION: kil.tutor.targ.group MAPSET: schwehr
This program edits imagery groups. You may add data layers
to, or remove data layers from an imagery group. You may
also create new groups
Please enter the group to be created/modified
GROUP: images.grp__________ (list will show available
groups)
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
images.grp - does not exist, do you wish to create a new
group? (y/n) [n] y
LOCATION: kil.tutor.targ GROUP: images.grp MAPSET:
schwehr
Please mark an 'x' by the files to be added in group
[images.grp]
MAPSET: PERMANENT
__ kildem
_x skil12n2.img
_x skil12n4.img
_x skil12n7.img
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
These images can be grouped together since they have already
been registered to each other. Thus the same transform will
be used on all three to rectify them together to match the
kildem in kil.tutor.targ
Group [images.grp] references the following raster files
-----------------------
skil12n2.img in PERMANENT
skil12n4.img in PERMANENT
skil12n7.img in PERMANENT
-----------------------
Look ok? (y/n) y
Group [images.grp] created!
LOCATION: kil.tutor.targ GROUP: images.grp
MAPSET: schwehr
1. Select a different group
2. Edit group title
3. Include new raster files in the group
or remove raster files from the group
4. Assign colors to the group
5. Create a new subgroup within the group
RETURN exit
>
Targeting The Three Images
GRASS 4.1 > i.target
This program targets an imagery group to a GRASS database
Enter group that needs a target
Enter 'list' for a list of existing imagery groups
Enter 'list -f' for a verbose listing
Hit RETURN to cancel request
> list
<list>
Available groups
---------------------------------
images.grp kildem.grp
---------------------------------
hit RETURN to continue -->
Enter group that needs a target
Enter 'list' for a list of existing imagery groups
Enter 'list -f' for a verbose listing
Hit RETURN to cancel request
> images.grp
<images.grp>
Please select the target LOCATION and MAPSET for group
<images.grp>
CURRENT LOCATION: kil.tutor.targ
CURRENT MAPSET: schwehr
TARGET LOCATION: ____________________
TARGET MAPSET: ____________________
(enter list for a list of locations or mapsets within a
location)
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
group [images.grp] targeted for location [kil.tutor.tar],
mapset [schwehr]
Mapset <schwehr> in Location <kil.tutor.targ>
Using Points on the Three Images group to prepare to
Register with the First
GRASS 4.1 > i.points Enter imagery group to be registered Enter 'list' for a list of existing imagery groups Enter 'list -f' for a verbose listing Hit RETURN to cancel request > list <list> Available groups --------------------------------- images.grp kildem.grp --------------------------------- hit RETURN to continue --> Enter imagery group to be registered Enter 'list' for a list of existing imagery groups Enter 'list -f' for a verbose listing Hit RETURN to cancel request > images.grp
Use plot raster to bring up the image hidden on the right (Figure 7: img.pts.1.gif):
The i.point command uses the mouse to select the registration points. The following are some sample mouse point selections (yours may be very different):
|Point 1 marked on image at
| East:732.07
| North: 496.06|
|Point located at
| East:277.49
| North: 242.29
|Point 2 marked on image at
| East:750.19
| North: 507.36
....
|Point 9 marked on image at
| East:575.12
| North: 706.23
|Point located at
| East:188.86
| North: 371.47
|Point 10 marked on image at
| East:686.16
| North: 693.27
|Point located at
| East:247.08
| North: 363.47
See above (Figure7: img.pts.1.gif). As well as Figure 8:
img.pts.2.gif:
Rectifying the First Image Group to the Three Image Group
GRASS 4.1 > i.rectify
Enter the group containing files to be rectified Enter
'list' for a list of existing imagery groups Enter 'list -
f' for a verbose listing
Hit RETURN to cancel request
> list
<list>
Available groups
---------------------------------
images.grp kildem.grp
---------------------------------
hit RETURN to continue -->
Enter the group containing files to be rectified Enter
'list' for a list of existing imagery groups Enter 'list -
f' for a verbose listing
Hit RETURN to cancel request
> images.grp
<images.grp>
Please select the file(s) you wish to rectify by naming an
output file
skil12n2.img@PERMANENT . . . . . . . skil12n2______
skil12n4.img@PERMANENT . . . . . . . skil12n4______
skil12n7.img@PERMANENT . . . . . . . skil12n7_______
(enter list by any name to get a list of existing raster
files)
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
Please select one of the following options
1. Use the current region in the target location
2. Determine the smallest region which covers the image
> 1
You will receive mail when i.rectify is complete
GRASS 4.1 > mail
From schwehr Thu Aug 18 18:03:32 1994
Date: Thu, 18 Aug 94 18:03:32 -0700
From: schwehr (Kurt Schwehr)
Subject: i.rectify
Apparently-To: schwehr
***********************************************
Rectify [skil12n2.img@PERMANENT] (LOCATION kil.tutor.xy)
into [skil12n2 in schwehr] (LOCATION kil.tutor.tar)
complete -----------------------------------------------
400 rows, 400 cols (160000 cells) completed in 0:06
1600000.0 cells per minute
***********************************************
Rectify [skil12n4.img@PERMANENT] (LOCATION kil.tutor.xy)
into [skil12n4 in schwehr] (LOCATION kil.tutor.tar)
complete -----------------------------------------------
400 rows, 400 cols (160000 cells) completed in 0:06
1600000.0 cells per minute
***********************************************
Rectify [skil12n7.img@PERMANENT] (LOCATION kil.tutor.xy)
into [skil12n7 in schwehr] (LOCATION kil.tutor.tar)
complete -----------------------------------------------
400 rows, 400 cols (160000 cells) completed in 0:05
1920000.0 cells per minute
? d
SGI Irix 7% grass4.1
GRASS 4.1
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: kil.tutor.xy__(enter list for a list of locations)
MAPSET: schwehr_______(or mapsets within a location)
DATABASE: /home/schwehr/grass/data__________________________
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
list
________
Available locations:
----------------------
den.utm.z12 kil.tutor.tar mars.tutor.xy denver.aea.2
kil.tutor.xy spearfish denver.in.1
denver.ll kill.dan.xy kil.sample.xy.tar.Z
mars.in.xy
----------------------
Hit RETURN -->
GRASS 4.1
LOCATION: This is the name of an available geographic location.
-spearfishis 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: kil.tutor.xy_____(enter list for a list of locations)
MAPSET: schwehr_______(or mapsets within a location)
DATABASE: /home/schwehr/grass/data__________________________
AFTER COMPLETING ALL ANSWERS, HIT <ESC> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
Welcome to GRASS 4.1 (Spring 1993) Update package 4
Geographical Resources Analysis Support Systems (GRASS) is a
Trademark of U.S. Army Construction Engineering Research
Laboratories (USACERL)
New releases of GRASS are coordinated and produced by the Office
of GRASS Integration (OGI) located at USACERL, and incorporate
software contributions from numerous sources
This version running thru the C Shell (/bin/csh)
Help is available with the command: g.help
When ready to quit enter: exit
GRASS 4.1 > g.list rast
---------------------------------------------
raster files available in mapset schwehr: kildem skil12n2
skil12n4 skil12n7
----------------------------------------------
If the Iris window is already running type:
GRASS 4.1 > d.mon unlock=iris GRASS 4.1 > d.mon sel=irisOtherwise type:
GRASS 4.1 > d.mon start=irisContinue with :
GRASS 4.1 >
GRASS 4.1 > d.frame -e
GRASS 4.1 > slide.show.sh mapset=schwehr
GRASS 4.1 > slide.show.sh help
Unrecognized option: help
Options: across=#maps_across down=#_maps_down Defaults:
across = 4
down = 3
GRASS 4.1 > slide.show.sh across=2 down=2 mapset=schwehr
Figure 9: slide.show.gif:
GRASS 4.1 > setenv DISPLAY machine name:0
GRASS 4.1 > SG3d
OPTION: Raster file for Elevation
key: elevation
required: YES
Enter the name of an existing Raster file Enter 'list' for a
list of existing Raster files
Hit RETURN to cancel request
> list
<list>
---------------------------------------------
Raster files available in mapset schwehr: kildem skil12n2
skil12n4 skil12n7
----------------------------------------------
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files Hit RETURN to
cancel request
> kildem
<kildem>
OPTION: Raster file(s) for Color (1 or 3 files) key: color
required: YES
multiple: YES
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files
Hit RETURN to cancel request
> skil12n2
<skil12n2>
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files
Hit RETURN to accept the default
>
<>
OPTION: Vector overlay file
key: vector
required: NO
Enter the name of an existing Vector file
Enter 'list' for a list of existing Vector files
Hit RETURN to cancel request
>
<>
OPTION: 3D viewing parameters
key: 3dview
required: NO
Enter the name of an existing 3dview file
Enter 'list' for a list of existing 3dview files
Hit RETURN to cancel request
>
<>
OPTION: Sites overlay file
key: sites
required: NO
Enter the name of an existing Sites file
Enter 'list' for a list of existing Sites files
Hit RETURN to cancel request
>
<>
OPTION: Raster file for site category color key: scolor
required: NO
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files
Hit RETURN to cancel request
>
OPTION: Automatically run script file
key: script
required: NO
enter option >
FLAG: Set the following flag?
Enable writing to script files?(y/n) [n]
FLAG: Set the following flag?
Use site category as Z value?(y/n) [n] Initial load of
data: Loading data: Done. elevation range: 3165.000000 to
4097.000000 Done.
recalculating normals...100
GRASS 4.1 > SG3d
First you will see a wire frame representation of the topography
as in Figure3: SG3d.1.gif:
Click on the draw button to see a rendered version that looks
like figure10: SG3d.2.gif:
To finish, click on the `quit' button to exit
back to GRASS.
Now we'll merge together three image bands. The first will be red, the second green, and the third green. This will give the impression of 'color' from the images.
OPTION: Raster file for Elevation
key: elevation
required: YES
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files
Hit RETURN to cancel request
> list
<list>
---------------------------------------------
Raster files available in mapset schwehr: kildem skil12n2
skil12n4 skil12n7
----------------------------------------------
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files
Hit RETURN to cancel request
> kildem
<kildem>
OPTION: Raster file(s) for Color (1 or 3 files) key: color
required: YES
multiple: YES
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files
Hit RETURN to cancel request
> skil12n2
<skil12n2>
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files
Hit RETURN to accept the default
> skil12n4
<skil12n4>
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files
Hit RETURN to accept the default
> skil12n7
<skil12n7>
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files
Hit RETURN to accept the default
>
<>
OPTION: Vector overlay file
key: vector
required: NO
Enter the name of an existing Vector file
Enter 'list' for a list of existing Vector files
Hit RETURN to cancel request
>
<>
OPTION: 3D viewing parameters
key: 3dview
required: NO
Enter the name of an existing 3dview file
Enter 'list' for a list of existing 3dview files
Hit RETURN to cancel request
>
<>
OPTION: Sites overlay file
key: sites
required: NO
Enter the name of an existing Sites file
Enter 'list' for a list of existing Sites files
Hit RETURN to cancel request
>
OPTION: Raster file for site category color key: scolor
required: NO
Enter the name of an existing Raster file
Enter 'list' for a list of existing Raster files
Hit RETURN to cancel request
>
<>
OPTION: Automatically run script file
key: script
required: NO
enter option >
FLAG: Set the following flag?
Enable writing to script files?(y/n) [n]
FLAG: Set the following flag?
Use site category as Z value?(y/n) [n] Initial load of
data: Loading data: Done. elevation range: 3165.000000 to
4097.000000 Done.
See 12: SG3d.3.gif:
recalculating normals...100
recalculating normals...100 200 300 recalculating normals...100
recalculating normals...100 200 300 recalculating normals...100
LEFT MOUSE BUTTON to mark center of scale ESCAPE key to cancel
<scale set>
LEFT MOUSE BUTTON to mark center of scale ESCAPE key to cancel
<scale set>
LEFT MOUSE BUTTON to mark first letter of label ESCAPE key to
cancel
<label set>
LEFT MOUSE BUTTON to mark first letter of label
ESCAPE key to cancel
<label set>
LEFT MOUSE BUTTON to mark first letter of label ESCAPE key to
cancel
<label set>
LEFT MOUSE BUTTON to mark first letter of label ESCAPE key to
cancel
<label set>
LEFT MOUSE BUTTON to mark first letter of label ESCAPE key to
cancel
<label set>
:
\GRASS 4.1 > exit
GRASS 4.1 >
GRASS SESSION WRAPUP
You have just finished working on mapset: <schwehr>
The following RASTER maps belong to it:
kildem skil12n2 skil12n4 skil12n7
There are no VECTOR maps in this mapset
There are no SITES maps in this mapset
Shall the mapset <schwehr> be saved? y/n [y]
Do you wish to selectively remove data files? y/n [n]
GOOD BYE from GRASS
SGI Irix 8% exit
SGI Irix 9% logout
The output: Figure 4: SG3d.final.gif:
Date: Fri, 5 Aug 1994 21:35:07 -0500 >From: James Darrell McCauley <mccauley@ecn.purdue.edu> To: grassu-list@max.cecer.army.mil Subject: FYI: free database systems > Catalog of Free Database Systems > > This document attemts to catalog databases that are > available without payment and with source. > > The latest version of the document can be ftp'ed: get > pub/free-databases from idiom.berkeley.ca.us. > > I will post this document about once a month to comp.databases, > comp.databases.object, comp.answers, and news.answers. I will > also post it to other groups somewhat randomly.In addition here are some FTP sites with geospatial data: FTP sites:
This document contains a tutorial on various aspects of GRASS (Section 1.3). This document, with the tutorial, is available on non-public NASA machine :
~delgado/tutor/allIn addition, the appendix includes a tutorial originally included with a Stanford workshop on GRASS usage. This document is available on non-public NASA machine :
~delgado/tutor/stanfordThere are several WWW homepages where you can get information:
If you want a overview of GIS system, there is a Net News article posted monthly in net.answers called the GIS FAQ that answers Frequently Asked Questions (i.e. a FAQ using internet termininology) about GIS systems.
There is also a newsgroup devoted to GIs systems that frequently mentions GRASS: comp.infowsystems.gis
~schwehr/tutor/This directory contains subdirectories with the capture and graphics snapshots needed for a particular procedure e.g.:
List Name Host Name Send Message To List ------------------------------------------------- GIS-L listserv@ubvm.cc.buffalo.edu GIS-L@ubvm.cc.buffalo.edu MAPS-L listserv@uga.bitnet MAPS-L@uga.cc.uga.edu GOVDOC-L listserv@psuvm.psu.edu GOVDOC-L@psuvm.psu.edu COASTGIS listserv@irlearn.ucd.edu.ie TGIS-L listserv@ubvm.cc.buffalo.edu UIGIS-L listserv@ubvm.cc.buffalo.edu GEOGRAPH listserv@finhutc.hut.fi IMAGRS-L listserv@csearn.earn INGRAFX listserv@psuvm.psu.edu BIONET biosci@net.bio.net ECOLOG-L listserv@umdd.umd.edu CONSBIO listserv@uwavm.u.washington.edu AQUA-L listserv@vm.uoguelph.ca MARINE-L listserv@vm.uoguelph.ca BEN ben@cue.bc.ca (botany/ecology news letter) CP listserv@opus.hpl.hp.com NSDI-L listproc@grouse.umesve.maine.edu NSDI-L@grouse.umesve.maine.eduGRASS Mailing list
Date: Thu, 1 Sep 1994 06:01:02 -0500
To: grassp-list@max.cecer.army.mil
Subject: Intro to the GRASShopper lists [posted once a month]
-------------------------------------------
About the OGI GRASS Mailing Lists
Office of Grass Integration
[This document is sent out to the GRASS Programmers' Electronic
Mailing
List once a month as a reminder and introduction to the list
manager
software.]
November 25, 1991
The Office of GRASS Integration has set up a service
that will be of interest especially to those GRASS users
who have access to electronic mail. We have set up two
e-mail lists to foster communication between GRASS Users
and GRASS Programmers. The lists work on the principle
of "mail exploding" -- a user mails a note to one
address, and the computer at that address "explodes" the
letter, re-mailing it to everyone who subscribes to the
list. Replies to the original letter generally go to the
list as well (if there is general interest in the
answer), but can be directed solely to the original
author if desired. Both lists are also automatically
preserved in an archive, and users may at any time
request a file containing an archive of list messages.
These lists exist to foster communication between
parties interested in the GRASS software; many CERL
employees will participate in the lists, but on an
infrequent and informal basis. The list will be
maintained and stored on CERL computers; however, CERL
will not officially monitor the content, intent, or
accuracy of any messages that pass through the list. The
point-of-contact for the list is:
grass-lists-owner@moon.cecer.army.mil
The list for GRASS users and friends is called "grassu"
(short for "GRASS users"), while the list for programmers
and system-level users is called "grassp" (short for
"GRASS programmers"). Topics for discussion on the
|grassu-list| may include questions about various GRASS
applications, sources of (or reviews of) third-party
support, and various and sundry other experiences with
GRASS. |Grassp-list| topics will include discussion of
the algorithms and intricacies of current GRASS programs,
programming hints and ideas for new GRASS applications,
and other prorgrammer-oriented issues. Note that the
grassp-list is |not| the best (nor even an appropriate)
place to report suspected bugs in GRASS code; the current
<bug.report.sh> program and correspondance with OGI
are the preferred problem-report procedures.
Accessing the mailing lists
Each mailing list has two addresses. The first is the
destination of messages that should be "exploded" out to
all subscribers. This address takes the form of
grassu-list@moon.cecer.army.mil
for the user's list, and
grassp-list@moon.cecer.army.mil
for the programmer's lists.{1}
{footnote1:These, and all other e-mail addresses in
this article, are provided in an "Internet-standard"
format; different host computers might require different
specifications of the address. The system administrator
at each site should be able to help if the addresses here
do not work as specified.}
The other important address for each list is the
destination of commands to the list-management software
(such as subscribe, unsubscribe, etc.). They should be
sent to
grassu-request@moon.cecer.army.mil
or
grassp-request@moon.cecer.army.mil
as appropriate. Multiple commands may be included in
messages. Commands may be located in the subject line or
in the body of the letter, but there should be only one
command per line. Upper- or lower-case letters may be
used for commands, and they may be abbreviated to simply
the first three letters if desired. All commands are
acknowledged with return e-mail.
Commands that the server will accept are:
HELp
This command mails back a copy of the list's help
file from the archive directory.
PINg
This command "pings" the mailing list, causing a
simple "I'm alive" response to be returned. This is a
good way to check the list's address, to check if the
list is reachable from your machine, and to check if the
list is up and running. This command is meant to be an
alternative to mailing a message to the everyone on the
list asking "Is the list working" and so forth.
SUBscribe [name]
This command adds [name] to the mailing list. The
subscriber's e-mail address is taken from the "From:"
line of the subscription letter, and this address is what
is added to the list. The [name] parameter is is used to
specify the user's real name.
UNSubscribe
This command removes the user's subscription from
the list. It relies on the "From:" field of the request
letter. If this address does not match any name in the
list, the software will notify the sender and the CERL
list-maintainer, who will resolve the problem by hand.
WHO [address]
If no [address] option is given, this command
returns a sorted list of list subscribers. If [address]
is supplied, the software searches for a user with that
address and returns that user's name.
DIRectory
This command returns the mailing list's archive
directory. The primary purpose of this is to see which
list-archive files are available. The list software will
mail back a list of available files.
GET [file]
This command returns the named [file] from the
list's archive directory. Case and spelling are
important; the name must |exactly| match a file shown by
the "DIR" command. A message acknowledging the request
will be mailed to the user.
If the file is short, the user will simply receive
a copy of it in mail. For example, the command "GET LOG"
(capitalization of "LOG" is important) will cause the
list-server to mail back a copy of the most recent
messages to the list (which are always stored in the file
named "LOG").
If the file is very long, the list server software
will <uuencode> the file and split it into several
mail-sized chunks. ("Uuencode" and "uudecode" are common
UNIX programs to encode files for e-mail transport. The
local computer must have the <uudecode> program in
order to decode these files. The acknowledgement note
will inform the user how many chunks to expect, and each
chunk will have a subject line that specifies "filename:
part X of Y".
Examples of List Usage
To "ping" the list (i.e. check that it is functioning
and reachable from your computer):
Send a mail message to:
grassu-request@moon.cecer.army.mil
In the subject or the message body, type "PING" or
"ping" or "pin" (without the quotes; case is unimportant
and only the first three letters of commands are
significant). The list server will reply with a brief
"I'm here" message. To ping the programmer's list,
substitute "grassp" for "grassu" in the address above.
To subscribe to one of the lists:
Send a mail message to either
grassu-request@moon.cecer.army.mil
or
grassp-request@moon.cecer.army.mil
with "subscribe [yourname]" in the subject or body.
Replace [yourname] with your real name. The list will
add the e-mail address that it finds in the "From:" field
of your letter.
Summary
These two lists are provided by OGI as a service for
the GRASS community; we hope that they will prove to be
useful resources. We encourage you to try several
commands to experiment with the lists. If there are any
questions, feel free to send mail to
grass-lists-owner@moon.cecer.army.mil
or contact the OGI by phone or mail.
Date: Thu, 11 Aug 1994 13:51:12 -0500
>From: Bill Brown <brown@diego.cecer.army.mil>
To: grassu-list@max.cecer.army.mil
Subject: Re: IRIX 5 GRASS
Kurt,
I compiled GRASS for IRIX 5.2 a few weeks ago. Here's my
compilation
notes:
----------------------------------------------------------------
----------
A few compile problems:
To fix the i.points, i.ortho.photo, i.vpoints problem:
make the function "screen" in the files "mark.c" a non-static
function.
(Just delete the keyword "static" where the function is defined)
These files need to get this fix:
src/imagery/i.points/mark.c
src.alpha/imagery/i.ortho.photo/photo.2image/mark.c
src.alpha/imagery/i.ortho.photo/photo.2target/mark.c
src.alpha/imagery/i.vpoints/mark.c
To compile xgrass, I needed to use these XCFLAGS:
XCFLAGS = -D_NO_PROTO -DXM_1_1_BC -Umips
To compile v.digit, I needed to remove this dependancy from the
Gmakefile:
menus.o: menus.i
Everything else compiled OK.
xdigit did not work correctly when run. To fix I added this
test in the
function init_graphics() in the file src/xgrass/xdigit/draw.c :
(~line 76)
if(XtIsRealized(canvas)){
/* ...body of function... */
}
----------------------------------------------------------------
----------
This is the head file I used:
CC = cc
ARCH = sgi5
GISBASE = /GRASS.bin/4.1/sgi5
UNIX_BIN = /usr/local/bin
DEFAULT_DATABASE = /data/foghorn/4.0
DEFAULT_LOCATION = spearfish
COMPILE_FLAGS = -O -cckr
LDFLAGS = -s
XCFLAGS = -D_NO_PROTO -DXM_1_1_BC -Umips
XLDFLAGS = -lPW
XINCPATH =
XMINCPATH =
XLIBPATH =
XTLIBPATH = -L/usr/lib
XMLIBPATH = -L/usr/lib
XLIB = -lX11
XTLIB = -lXt
XMLIB = -lXm
XEXTRALIBS = -lPW
TERMLIB = -ltermlib
CURSES = -lcurses $(TERMLIB)
MATHLIB = -lm
# LIBRULE = ar ruv $@ $?
# LIBRULE = ar ruv $@ $?; ranlib $@
# LIBRULE = ar ruv $@ $?; ar ts $@
# LIBRULE = ar rc $@ `lorder $(OBJ) | tsort`
LIBRULE = ar ruv $@ $?
USE_TERMIO = -DUSE_TERMIO
USE_MTIO = -DUSE_MTIO
USE_FTIME =
DIGITFLAGS = -DUSE_SETREUID -DUSE_SETEUID -
DUSE_SETPRIORITY
VECTLIBFLAGS =
GETHOSTNAME = -DGETHOSTNAME_OK
XDRLIB = -lsun
Mars Data
From: Bill Brown <brown@diego.cecer.army.mil>
> Also, is there a way to let grass georeference stuff on mars
> or will I have to stick to keeping the data in xy?
I guess it depends somewhat on what it looks like now, but I had
some Mars data in a lat-long location & it seemed to work OK.
(see http://www.cecer.army.mil/grass/viz/global.html)
Searching through the grassu-list archives
Newsgroups: info.grass.user
>From: ront@picea.CNR.ColoState.EDU (Ronald Thomas)
Subject: Re: Grassu archives searching?
Date: Fri, 12 Aug 1994 13:09:12 GMT
Apparently-To: grassu-list@max.cecer.army.mil
>is there any way to search ?through the grassu-list archives at
>the max.cecer.army.mil site?
>Many problems haunting a grass novice were probably grilled
there
>zillions of times.
>Cheerio, Ania
Don't know about searching achives on the "moon"; best bet is to
retrieve
the achives and search at your own site. Your comments about
some
questions being asked (& answered) over & over are right on.
Here is a script I use to query a copy of the archives that I
keep:
---------------------------------------
#!/bin/sh
#This script "grassu94" searches for a 'keyword' in the
following
# file: grassu.92.gz. If it finds whatever you requested, the
# script then prints that line or lines out on the terminal. If
it doesn't
# find what you asked for, the script will tell you that it
can't be found.
# usage: grassu94 'keyword'
if test $# -gt 0
then
arg="$*"
gzcat $HOME/mail/grassu.94.gz | grep -i -n "$arg" | more
es=$?
if test $es = '0'
then
exit 0
else
echo "$*" not found in grassu.94 file.
exit 1
fi
else
echo You have not entered anything to look up.
exit 2
fi
-----------------------
The following script file can be used to delete a LOT of
extraneous header
lines that unfortunately come with the archives -- I estimate
this reduces
the size of the achives by 30%. Of course, UNIX compress of GNU
gzip
should be used to keep the 'cleaned' file as small as possible,
but that's
a personal decision.
----------------------
#clean
#usage: clean 'file'
ex $1 << EOF
:g/^Re/d
:g/^ id/d
:g/^ (/d
:g/^Se/d
:g/^Appar/d
:g/^X/d
:g/^In-Reply/d
:g/^Status:/d
:g/^Errors-To/d
:g/^Pre/d
:g/^From lists/d
:g/^Message/d
:g/^To:/d
:g/^From grass/d
:g/^Content/d
:g/^Organization/d
:g/^Received/d
:wq
EOF
Histograms
Date: Sun, 21 Aug 1994 02:32:29 -0500
>From: James Darrell McCauley <mccauley@ecn.purdue.edu>
Subject: histograms
>for a rast-based image on GRASS monitor, after running a GRASS
d.histogram
>command, colored pie-scale histogram with category values are
shown, as
>general process of GRASS. My question is .....
>Anyway, anyone help me to printout histogram graphics ?
an alternative for histograms may be to use g.gnuplot:
GRASS 4.1 > r.stats -c sample > sample.dat
GRASS 4.1 > g.gnuplot
gnuplot> set term postscript
gnuplot> set out 'sample.ps'
gnuplot> plot [1:] 'sample.dat' w i
gnuplot> quit
GRASS 4.1 > lp sample.ps
Color display in GRASS explained
Date: Mon, 22 Aug 1994 14:29:55 -0500
>From: Bill Brown <brown@diego.cecer.army.mil>
To: grassu-list@max.cecer.army.mil
Subject: Re: GRASS colors
> From: kilee@CC.UManitoba.CA
> Date: Mon, 22 Aug 94 13:02:28 CDT
> To: grassu-list@max.cecer.army.mil
>
> Q: In GRASS, just 0-255 integer rast-based color coding image
is possible,
Using GRASS color files, you can specify values from 0-255 for
EACH
of the three (red,green,blue) color components, yielding
something
like 16 million possible colors. Of course, the problem comes
in
trying to display your map. There are severe limitations with
the
GRASS X-driver and with 256 color 8-bit monitors. But even with
24-bit displays, the GRASS X-driver still limits you to
something
like 216 colors. (I understand that the tcl/tk viewer will let
you
use all your available color depth). But for now, if you have a
display device capable of more colors, you could use r.out.ppm
to
convert the GRASS raster file into a 24-bit ppm image, then
output
that.
And just a reminder that if you're running on an SGI with 24-bit
graphics, don't overlook the IRIS monitor driver, which will
give
you 3840 colors.
Running GRASS programs without starting grass
Date: Tue, 23 Aug 1994 13:11:41 +0100
To: grassu-list@max.cecer.army.mil
Subject: Re: problems in interface
>Does anyone knows how to excute GRASS command or scripts
>in external?
I wrote the following script a couple of years ago to see how
this
could be done (we didn't need to in the end). I'm sure that it
could
be a lot prettier but at least it's a starting point ! To find
out what
the variables need to be set to on your system, it's easiest to
start
grass and type "printenv |more" (assuming you use csh).
The files:
----------<< grassrc_test >>----------
GISDBASE: /data/grass
LOCATION_NAME: tyne
MAPSET: phil
----------<< exec_grass >>----------
#!/usr/bin/csh
set path= (/user/grass/sun4/bin /user/grass/sun4/scripts
/user/grass/sun4/garden/bin /user/grass/sun4/alpha/bin
/usr/local/bin /usr/bin /usr/ucb /etc /usr/etc /usr/lib)
setenv GISBASE /user/grass/sun4
setenv GISDBASE /data/grass
setenv GISRC grassrc_test
setenv LOCATION /data/grass/tyne/phil
setenv LOCATION_NAME tyne
setenv MAPSET phil
g.list rast
Sample usage of r.mapcalc
>From: Firma Nieuwland <nieuwlnd@sci.kun.nl>
Date: Thu, 25 Aug 1994 09:09:37 +0200
To: grassu-list@max.cecer.army.mil
Subject: Re: thresholding in GRASS
Try:
rmapcalc output=if(input > 110 && input < 140 , a + bx , if
(input>160 && input < 200, c + dx,0)
-Olga van de Veer
Autocad DXF files
Date: Fri, 26 Aug 1994 10:21:20 -0400 (EDT)
>From: preston@malibu.dst.battelle.org (Evan Preston)
Subject: DXF Files??
To: grassu-list@max.cecer.army.mil
We are working on a project that is using GRASS as well as a
package called
World Toolkit (for 3D/animation). An ideal way to display map
data in this
package is by importing DXF polygons and texturing them.
So...we are looking
for anyone who may have some DXF files they would like to share
(preferably
maps of the Korean Penninsula, but we'll take anything
reasonable in order
to test out this concept).
Please post response or email me directly.
Evan
Evan B. Preston # Battelle
#
phone: 614.424.3983 # National Security
Division #
fax: 614.424.3776 # 505 King Ave.
#
internet: preston@malibu.dst.battelle.org # Columbus, Ohio
43201 #
Databases and GRASS
Date: Tue, 6 Sep 94 07:29:39 MDT
>From: susan@its.nbs.gov (Susan Stitt)
To: nsegura@halcon.dpi.udec.cl (Nelson Segura Nunez)
Subject: Data Bases and GRASS
Nelson,
Another item you may wish to be aware of is the pending
availability
of L.A.S.'s version of GRASS in TCL-TK. They have claimed that
they
have created a version with an implementation of a database
capability
built into the GRASS software. This software is described below
by
Gilles Clement who is president of LAS.
>Date: Fri, 8 Jul 1994 09:54:54 -0400
>From: gc@copernic.lasinc.qc.ca (Gilles Clement)
>To: grassu-list@max.cecer.army.mil
>Subject: [ANNOUNCE] tcltkgrass
>>
>A lot of people are asking about the status of tcltkgrass.
Initially, we
>thought we could have a release for mid-May. Unfortunately,
financing for the
>project was slightly delayed and we decided to redesign the
software almost
>completely. This is why we haven't been able to release any
new version so
>far. We've been working on this project for several months now
and we believe
>our final beta version will be available in September 1994.
>
>
>This new version is entirely redesigned using object-oriented
development
>technique and will have a lot of very cool new features such
as: an enhanced
>bugfree superviewer, a WYSIWYG postscript output for the
superviewer, a
>completely rebuilded GUI for every GRASS function, a visual
interactive
>programming environment for GRASS, a new set of converters for
vector, raster
>and databases, an imbedded RDBMS and georelational link
capability and a
>simplification of the installation procedure.
>
>As promised, the UNIX version of tcltkgrass will be contributed
to the public
>domain but the long awaited MSWindows version will be a
commercial product.
>Presently, 8 sites have shown interest in acting as alpha and
beta testers for
>the new version but we would like to extend that to
approximately 20
>organisations.
>
>Anybody can have the opportunity to be one of the 20 alpha test
sites, provided
>that their organisation is active in either development,
applications or
>education of GRASS and is using either a PC with MS-Windows or
a SUN
>SparcStation running SUN OS 4.0.x or a DEC DecStation running
Ultrix 4.x. The
>alpha version will be available at the end of July.
>
>
>Of course, the sites using PC's will be provided with a free
alpha and beta
>version.
>
>For those interested, please contact Valerie DesRoches:
>vader@copernic.lasinc.qc.ca
>
>
>L.A.S. inc.
>
>Gilles Clement, president
>
>p.s.: list of organisations interested in acting as alpha and
beta testers:
>
>Organisation Scientific authority E-mail
>PNFI (Forestry Canada) Tom Moore tmoore@pnfi.forestry.ca
>DREV (National Defense) Dominic Roy droy@jupiter.drev.dnd.ca
>CAST (Un. of Arkansas) Jim Farley jim@cast.uark.edu
>USACERL (US Army) Kurt Buehler kurt@zorro.cecer.army.mil
>HQ (Qubec Hydro) Guy Moisan moisang@envir.hydro.qc.ca
>and a few private companies we can't name... :-)
New r.in.hdf Command
Date: Thu, 8 Sep 1994 14:33:36 -0500
>From: Bill Brown <brown@diego.cecer.army.mil>
To: grassu-list@max.cecer.army.mil
Subject: new r.in.hdf
I just put an updated version of r.in.hdf on moon in
grass/incoming .
This latest version adds features to correctly import NASA AVHRR
data & other HDF format data that uses the HDF calibration
feature.
It also allows you to list the contents of the HDF file, and
select
random datasets from the file for importing to GRASS. (With the
old
version, you had to either import only the first dataset or all
datasets.)
This version also writes some of the HDF annotation & label info
to
the GRASS history file.
Bill B.
[Prev] [Next]
Email to:
Kurt Schwehr schwehr _at_ cs stanford edu
--
Dan Delgado renata _at_ eos arc nasa gov
Kurt Schwehr