Compute surface area of a digital elevation model.
It is often said that if Wales was flattened out it would have an area bigger than England. This function computes the surface area of a grid of heights taking into account the sloping nature of the surface.
surfaceArea(m, ...) surfaceArea.matrix(m, cellx = 1, celly = 1, byCell = FALSE)
m |
a matrix of height values, or an object of class SpatialPixelsDataFrame or SpatialGridDataFrame. |
cellx |
the size of the grid cells in the x-direction, in the same units as the height values. |
celly |
the size of the grid cells in the y-direction, in the same units as the height values. |
byCell |
return single value or matrix of values |
... |
ignored |
Either a single value of the total area if byCell=FALSE, or a matrix the same shape as m of individual cell surface areas if byCell=TRUE. In this case, the sum of the returned matrix should be the same value as that which is returned if byCell=FALSE.
Missing values (NA) in the input matrix are allowed. They will produce an NA in the output matrix for byCell=TRUE, and contribute zero to the total area. They also have an effect on adjacent cells - see code comments for details.
takes a matrix as input, requires cellx and celly to be set
takes an object of class SpatialGridDataFrame as input, and retrieves cellx and celly from this
takes an object of class SpatialPixelsDataFrame as input, and retrieves cellx and celly from this
Barry Rowlingson <b.rowlingson@lancaster.ac.uk>, integration in sp Edzer Pebesma.
Calculating Landscape Surface Area from Digital Elevation Models, Jeff S. Jenness Wildlife Society Bulletin, Vol. 32, No. 3 (Autumn, 2004), pp. 829-839
surfaceArea(volcano) image(surfaceArea(volcano,byCell=TRUE)) data(meuse.grid) gridded(meuse.grid) = ~x+y image(surfaceArea(meuse.grid["dist"], byCell=TRUE)) surfaceArea(meuse.grid["dist"])
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.