[gdal-dev] Re: Slope in gdaldem

Stephen Mather mather.stephen at gmail.com
Thu Dec 15 15:44:10 EST 2011


I agree both have their place.  Sometimes we get a more consistent or more
interesting answer from our analyses than from our field measurements.

As to the approach, I agree with your assessment, I was thinking
backwards-- one caveat-- how best to handle local minima?  Insert a null?
I'm afraid I don't know how this is normally handled.

Steve


On Thu, Dec 15, 2011 at 1:45 PM, Matt Perry <perrygeo at gmail.com> wrote:

> Stephen,
>
>
> It'd be great to see local hydrologic slope in gdaldem.
>
> I've seen a similar discrepancy between "field" slope and most
> GIS-derived slopes. The local max hydrologic slope seems to correspond
> much better to our perceived slope on the ground. The integrated slope
> used in most GIS, however, better matches the overall planar slope
> over a large extent. So they both have their place depending on scale;
> local hydrologic max slope for the micro, integrated planar slope for
> the macro.
>
> However, I don't think the algorithm that you describe below will
> work. It's currently looking for the *maximum* local elevation and
> computing slope to the center cell. Instead it should calculate the
> slope in the direction of hydrologic flow; i.e. the slope from the
> center cell to surrounding cell with the *minimum* elevation.
>
>
> - matt
>
> On Thu, Dec 15, 2011 at 10:29 AM, Stephen Mather
> <mather.stephen at gmail.com> wrote:
> > I already see a flaw-- the function should be more like:
> >
> >
> > float GDALSlopeHydroAlg (float* afWin, float fDstNoDataValue, void*
> pData)
> > {
> >     // Hydrologic Slope is the max
> >     //  local slope btw center cell and adjacent cells
> >
> >     const double radiansToDegrees = 180.0 / M_PI;
> >     GDALSlopeAlgData* psData = (GDALSlopeAlgData*)pData;
> >
> >     float pafLocalMax = afWin[0];
> >
> >     for ( int k = 1; k < 9; k++)
> >     {
> >         if (afWin[k] > pafLocalMax)
> >         {
> >             pafLocalMax=afWin[k];
> >         }
> >     }
> >     return atan(sqrt(pafLocalMax - afWin[4]) / (2*psData->scale)) *
> > radiansToDegrees;
> >
> > }
> >
> >
> >
> > On Thu, Dec 15, 2011 at 11:49 AM, Stephen Mather <
> mather.stephen at gmail.com>
> > wrote:
> >>
> >> Hi All,
> >>       A colleague tipped me off to an article in Forestry Source
> entitled
> >> "When GIS Slope Isn't What You Think" showing differences between field
> >> measured slope values and GIS results.  The differences can be
> substantial.
> >> The short and long of it is that local hydrologic slope is closer to
> what's
> >> used in the field by foresters than the integrated slope from either
> Horn or
> >> Zevenbergen-Thorne.
> >>       And so, I have a feature request.  I would like to add hydrologic
> >> slope to gdaldem.  This is max local slope rather than integrated 9 cell
> >> slope like the existing code:
> >>
> >> The existing code for Horn, e.g. is:
> >>
> >>     dx = ((afWin[0] + afWin[3] + afWin[3] + afWin[6]) -
> >>           (afWin[2] + afWin[5] + afWin[5] + afWin[8]))/psData->ewres;
> >>
> >>     dy = ((afWin[6] + afWin[7] + afWin[7] + afWin[8]) -
> >>           (afWin[0] + afWin[1] + afWin[1] + afWin[2]))/psData->nsres;
> >>
> >> I'd like something more like this (adapted from roughness):
> >>
> >> float GDALSlopeHydroAlg (float* afWin, float fDstNoDataValue, void*
> pData)
> >> {
> >>     // Hydrologic Slope is the max
> >>     //  local slope btw center cell and adjacent cells
> >>
> >>     float pafLocalMax = afWin[0];
> >>
> >>     for ( int k = 1; k < 9; k++)
> >>     {
> >>         if (afWin[k] > pafLocalMax)
> >>         {
> >>             pafLocalMax=afWin[k];
> >>         }
> >>     }
> >>     return pafLocalMax - afWin[4];
> >> }
> >>
> >> Any critques?  Reasons to not add?
> >>
> >> Best,
> >> Steve
> >>
> >> Stephen Mather
> >> GIS Manager
> >> Cleveland Metroparks
> >> 4101 Fulton Pkwy
> >> Cleveland, OH
> >> 44144
> >
> >
> >
> > _______________________________________________
> > gdal-dev mailing list
> > gdal-dev at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/gdal-dev
>
>
>
> --
> ·´¯`·.¸. , . .·´¯`·.. ><((((º>`·.¸¸.·´¯`·.¸.·´¯`·...¸><((((º>
> "The best way to predict the future is to invent it."  -- Alan Kay
> Matthew T. Perry
> http://www.perrygeo.net
> http://viedevelo.wordpress.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20111215/ed07524a/attachment.html


More information about the gdal-dev mailing list