topographic area calculations
Harini Nagendra
harini at ces.iisc.ernet.in
Wed Apr 3 07:00:00 EST 1996
This is really useful - I have been looking for a way of doing this for
quite some time. Just wanted one clarification however - why do you
divide the area occupied by the boundary cells by half?
------------------------------------------------------------------------
| Harini Nagendra E-MAIL : harini at ces.iisc.ernet.in |
| Center for Ecological PHONE : 91 80 309 2639 (Hostel: LR-94)|
| Sciences : 91 80 309 2506 (Department) |
| Indian Institute of Science FAX : 91 80 334 1683 |
| Bangalore 560 012 India TELEX : 845 8349 IISc IN |
------------------------------------------------------------------------
On Tue, 2 Apr 1996, DON EBERT wrote:
> Jim,
>
> Here's a simplistic and rather laborious way of calculating the surface
> area of 3-dimensional polygons. If anyone knows of an easier way of doing
> this, I would appreciate hearing about it. First use your elevation map to
> calculate out a slope map using percent slope as the output. Then,
> assuming your elevation map cells are square instead of rectangular, the
> 3-d area of the cell will be run * sqrt(run^2 + rise^2), where run = the
> length of elevation cell and rise = the slope value * run.
>
> /@\
> /@@@@@\
> /@@@@@@@@@\
> /@@@@@@@@@@@@/|
> \@@@@@@@@@@@/ |
> r \@@@@@@@/ | rise
> u \@@@/ | (run * %_slope)
> n /________|
> run
>
>
> In r.mapcalc the formula would be:
>
> area = x * sqrt(x^2 + (x * slope)^2); substituting cell length for x
>
> Next, determine which cells lie in the interior of your polygon and those
> that are on the periphery. There are a number of ways to do this. I
> typically import my polygon boundaries as line features, run v.to.rast,
> reclass the output map assigning 0 to the polygon boundary and 1 to
> everything else, run r.clump, then reclass the output map assigning 1 to
> 0, 2 to the interior clump, and 0 to everything else. This results in a
> map where the periphery cells are coded 1 and the interior cells are
> coded 2.
>
> The final area of your 3-d polygon will be approximately the sum of the
> areas of the interior cells plus 1/2 the total of the area of the
> periphery cells. Since this methodology works remarkably well on flat
> surfaces, I've made the assumption that it works equally well in the 3rd
> dimension. I usually output the cell area values to do the final summation
> in either a spreadsheet or database since the final area can be quite
> large. To do so I run 2 commands:
>
> r.stats -1zg in=polygon out=polygon.tmp
> r.what area < polygon.tmp > polygon.3d
>
> This outputs an ascii file with one row for each cell consisting of its
> easting, northing, polygon code, and area value.
>
> Hope this helps.
>
> Don Ebert
> Research Associate
> National Biological Service
> Cooperative Research Unit
> University of Nevada - Las Vegas
>
> On Mon, 1 Apr 1996, James Taulman wrote:
>
> > I have UTM x,y coordinate contour files representing probability
> > boundaries for animal home range utilization distributions. I can add
> > elevation data from digitized USGS quads. I need to be able to calculate
> > accurate topographic areas within these contours in GRASS. Any
> > information helpful to this project would be most appreciated.
> > Jim Taulman
> >
>
More information about the grass-user
mailing list