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.step...@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@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev