Aspect map..

William A Perkins perk at phoebus.pnl.gov
Wed Apr 3 07:00:00 EST 1996


>>>>> "Tarek" == Tarek Sadek <sadek at aqua.civag.unimelb.EDU.AU> writes:

    Tarek> Hi Grassers,
    Tarek> I am looking for a code which can determine the aspect map
    Tarek> from a DEM in degrees azimuth (measured every 1
    Tarek> degree). All programs avialble in the current version
    Tarek> calculate the aspect of the cells every 45 degrees
    Tarek> (i.e. 0,45,90,.....,360 degrees) such as r.watershed,
    Tarek> r.slope.aspect,..etc.  Also I can't find r.water.aspect
    Tarek> which I think it might do the job.

    Tarek> tny help would be so appreciated.

    Tarek> Cheers,

    Tarek> Tarek Sadek

    Tarek> Ph.D. Student
    Tarek> Department of Civil and Environmental Engineering
    Tarek> University of Melbourne
    Tarek> Parkville, Vic. 3052
    Tarek> Australia

    Tarek> Tel: +61 3 9344 7178
    Tarek> Fax: +61 3 9344 6215

    Tarek> E-mail address: sadek at aqua.civag.unimelb.edu.au
    Tarek> URL: http://www.civag.unimelb.edu.au/~sadek
    Tarek> ------

Tarek,

I think this would be relatively easy to code yourself. The
documentation for the Arc/Info GRID function SLOPE() presents a method
called the ``average maximum technique'', referring to

     Burrough, P.A., 1986.  Principles of Geographical Informatioin
     Systems for Land Resources Assessment.  Oxford University Press,
     New York, p. 50.

The method uses a 3x3 neighborhood in the DEM:

                                a b c
                                d e f
                                g h i
                                   
Slope is computed as 

          _______________
         |  dz 2    dz 2
    S =  | (--)  + (--)
        \|  dx      dy

where 

    dz   (a + 2 d + g) - (c + 2 f + i)
    -- = -----------------------------
    dx              8 cell
                          x

and


    dz   (a + 2 b + c) - (g + 2 h + i)
    -- = -----------------------------
    dy              8 cell
                          x

They also indicate that if any of the neighboring cells are missing
the value of the current cell (e) is assumed for the missing cell.
Given that, I have assumed (and I beleive I'm correct) that aspect
(as an azimuth) would be computed as 

                 dy         dz / dx
   aspect = atan(--) = atan(-------)
                 dx         dz / dy

with proper adjustments for negative angles.  

I have coded something similar in Arc/Info GRID, which uses only 4
neighbors, as in

                                  b 
                                d e f
                                  h 

and handles missing values differently.  I think either method could
be coded in r.mapcalc without difficulty, but I have not done it.

Hope this helps.

Bill

-- 
Bill Perkins
Battelle Pacific Northwest Laboratories
Environmental Technologies Division, Hydrology Group
P.O. Box 999 MSIN K9-36
Richland, Washington, USA  99352
voice: (509) 372-6131 fax: (509) 372-6328 email: wa_perkins at pnl.gov








More information about the grass-user mailing list