Open Source GIS: A GRASS GIS Approach
Markus Neteler, Helena Mitasova
1. Edition 2002, 464 pages
Kluwer Academic Publishers, Boston, Dordrecht, London
Book Series: The Kluwer international series in Engineering and Computer Science: Volume 689
|p. 2||none||The sentence “To support this concept, Richard M. Stallman created the “Free Software Foundation” in 1984 and started the GNU-Project.” should more accurately say: “In 1984, Richard M. Stallman started to work on the GNU-Project and in 1985 he created the “Free Software Foundation” to support the Free Software concept.”|
|p. 3||none||The sentence “By this GRASS embraces the Open Source philosophy” should say “By this GRASS embraces the Free Software philosophy”|
|Chapter 2||none||references to the Linux as operating system should be more accurately refer to GNU/Linux|
|p. 74||d.rast||To see the southern exposed slopes, the correct angle values are
d.rast aspect vallist=225-315 bg=blue
as East corresponds to 0 degree with angles increasing counterclockwise.
|p. 87||r.null||‘setnull’ and ‘null’ parameters are mixed:
To change a certain value (e.g. -9999) to NULL the setnull parameter is used:
r.null mymap setnull=-9999This will change the value -9999 to NULL in map mymap. To replace the NULLs by another number, the null parameter is used:
r.null mymap null=-9999
This will change NULL to -9999.
|p. 89||r.mapcalc||The input map name is written as but should read ‘old_int_map’:
mapcalc> newmap1 = old_int_map + 123
mapcalc> newmap2 = old_int_map + 123.
However, the described behaviour of ‘r.mapcalc’ applies to integer and floating point map type.
|p. 92||r.mapcalc||The words “top” and “bottom” are mixed: Correct is
“will read only the offset cells bottom right [1,1] and top left [-1,-1] in an 3×3 matrix for calculating the new map.”
|p. 93||r.mapcalc||The second ‘t2’ should read ‘t1’. Here the correct command:
newmap = eval (t1=round(map), t2=if(((t1 >= a) && (t1 <= b))\ ,c,d), if(isnull(map), map, t2))
|p. 101||r.average||The last sentence on page 101 is not valid. The base parameter is required for the r.average module.|
|p. 102||r.volume||The word ‘maximum’ should be replaced by ‘minimum’: Correct is
“For the construction the earth’s surface has to be excavated to a minimum depth of 5m”.p. 103: The reference system is shifted by 5m. The corrected exercise reads as follows:
r.mapcalc excavation="elevation.dem - 1120 + 5" d.rast excavation r.univar excavation [...] Minimum: 5 Maximum: 24 [...] r.volume excavation Cat Average Data # Cells Centroid Total Number in clump Total in clump Easting Northing Volume 1 12.17 107461 8832 591375.50 4926425.50 107461.00 Total Volume = 107461.00
|p. 130||v.support||In case the map ‘vmap_trans’ is not visible, it is recommended to use the ‘-r’ parameter of ‘v.support’:
v.support -r vmap_trans
|p. 157||s.in.ascii||The first line in the imported table should read
name|mygrasssites instead of name|myasciisites
|p. 177||gully mask||the inverted gully mask gully.mask.inv created by the r.mapcalc command is not necessary and the command that interpolates only the gully should use the gully.mask raster map:
s.surf.rst elev.gully elev=elev.gully mask=gully.mask
|p. 178||s.vol.rst||Update: Section 3D precipitation interpolationUnfortunately this subsection got too short and the necessary definition of 3D region was omitted. As described in the book, to perform the 3D interpolation of precipitation with influence of elevation you need:
The interpolation is done with 3D RST (trivariate spline) implemented in ‘s.vol.rst’. This module expects that you have defined a 3D region. To create such a 3D region within your current MAPSET, you have to run ‘g3.createwind’ script before running ‘s.vol.rst’ even if you are computing just a 2D, intersection file. The interpolation example is then:g.region res=500 -p
You have first defined the horizontal resolution as 500m with g.region and vertical resultion (dres) as 3000m with g3.createwind, creating a volume with a single layer. Because there are only around 400 points in the data set you can skip the segmentation by using segmax=700.
The resulting map ‘precip.topo’ is a 2D raster map representing the precipitation. The 3D RST computes internally a 3D (volume) precipitation function and when using the ‘cellinp’ option the precipitation values are extracted from the precipitation volume at the elevations given by the ‘dem500’ raster map. You can experiment with tension, smoothing and zmult parameters to get the best result (see reference in the book).
|p. 179||Caption 7.11||The second b) in the caption should be a c) as it refers to Figure 7.11 c).|
|p. 212||Reference||The reference in the last row to Section 4.3 is incorrect. It should refer to Section 4.2.1.|
|p. 214||Reference||At the end of the page in the list of the images in LOCATION ‘imagery’ the names gs13.1 and gs14.1 should be reported instead of gs13 and gs14.|
|p. 216||Image name||In the middle of the page the image ‘spot.ms.2’ should read ‘gs13.1’.|
|p. 217||r.colors||The third color value for pixel values 159 is not given correct as 0 but should be 255. This is the corrected command:
r.colors spot.p col=rules << EOF 15 255 0 0 80 255 255 0 159 0 255 255 254 0 0 255 EOF
|p. 244||map[-2,-1]||A negative row number refers to a cell up: The phrase should read:
… map[-2,-1] refers to the cell two rows up and one column to the left of the center cell.
|p. 244||7×7 median||We do not extend to a 7×7 median filter but we want to reproduce the r.mapcalc command with r.mfilter (3×3). However, the filter type should be TYPE P and not TYPE S.|
|p. 248/ 249||i.combine/ r.combine||All references to i.combine/r.combine should read i.composite/r.composite.|
|p. 251||Brovey||The LANDSAT channel reference is wrong. The sentence should read:
Image fusion based on Brovey transformation for LANDSAT-TM7 data is merging the channels 2, 4, and 5 …
|p. 274||i.ortho.photo||The subsections “Identification of approximate nadir coordinates” and
“6 Initialize exposure station parameters”
are only needed for oblique aerial fotos. In this case “Use these values at run time” (p. 276) would be set to “1”.
|p. 279||gs13||The reference to the LOCATION is not correct. The sentence should read:
A sample segmentation procedure for the aerial image gs13 which was previously ortho-rectified into the Spearfish LOCATION may be performed as follows:
|p. 313||v.in.shape||run v.support after the contours are imported with v.in.shape|
|p. 313||v.in.shape||inconsistency in file name: it should be lw_buildings.shp, not only lw_buildings,
in the same command the output should be lw_buildings, not only buildings. Corrected command line:
v.in.shape lw_buildings.shp out=lw_buildings
|p. 313||m.in.e00||after importing the soil map ‘lw_soil.e00’ it is recommended to change also the extent of the region as follows:
g.region res=6 vect=lw_soil
|p. 314||$LOCATION||use $GISDBASE/$LOCATION_NAME/$MAPSET instead of $LOCATION due to the change in GRASS, see GRASS Changes section|
|p. 314||m.in.e00||Attributes for the Kfactor in the lw_soil.e00 file are multiplied by 10, to get the correct values, they should be divided by 10, e.g. by ‘r.mapcalc’ after transformation to raster. For example
This may be a bug in m.in.e00 which probably ignores a column multiplication factor.
|p. 315||g.region||Note: use g.region rast=c0792_004 only if you want to look at the entire imported image, then go back to the study sub-area using
|p. 316||g.region||to get the resulting elevation raster for the same region as shown in Figs. 12.3 and 12.4, change the region to the specially provided raster regionfig12.3 or to the vector lw_contour.cut2 (both are provided with the updated wake-spft dataset):
g.region res=6 rast=regionfig12.3 -p
g.region res=6 vect=lw_contour.cut2 -p
Get back to the study sub-area by
g.region vect=lw_soil -p
|p. 320||g.region||In case that you have been changing regions without going back to the study sub-area, to set the region back and get the results for the same area as in the Fig. 12.5 and 12.6 use
g.region res=6 vect=lw_soil
|Book Index||entry ‘v.in.shape’ is missing and should also refer to p. 123 (in addition to p. 30, p. 313)|
|entry ‘anisotropy’ is missing and should refer to p. 169|
|entry ‘temperature’ is missing and should refer to p. 234|
Go here for changes in GRASS software which may affect the procedures described in the book.