[R-sig-Geo] calculate "regional" slope

Dominik Schneider Dominik.Schneider at colorado.edu
Sat Feb 20 01:08:23 CET 2016


Chris R,
I'd be happy to use grass7 but I can't get it to run on my mac. osx
10.11.3. I have a working qgis from kyngchaos, installed pandoc and cairo
on top of that, and disabled sip but the grass7.app just hangs when I try
to open it.
Chris E,
I will try to clarify. Rather than thinking about "side of a mountain",
think about "side of a mountain **range**".  The point of calculating a
regional slope is that if I am on the west side of a continental divide but
on the east side of mountain, the function still returns a value indicating
west-facing.  so maybe it's easier to think in meters.   lets assume my DEM
is a 500m grid. the slope calculation would give a local value at 500m.
This local slope might be east facing, but I am interested in the overall
slope across 10km to indicate which way e.g. the watershed is draining.
What do you mean with "transect along the z. I.e. roll your dem on it's
side."?


On Fri, Feb 19, 2016 at 2:50 PM, chris english <
englishchristophera at gmail.com> wrote:

> Dominik,
> Sorry, I'm still trying to understand your 0.05 to 1.5 degree part of your
> problem.
>
> Otherwise, I think you are limited to 8 neighbors as this reflects the
> documentation as I read it.
>
> Even Roualt perhaps would be up in arms; but, there's nothing saying you
> can't do a 16 vs 8 neighbor. You'd have to examine the impacts thereafter,
> but basically you'd be amending some gdal (probably a line or two of code)
> for your purposes.
>
> There are a bunch of things to consider, theoretical and practical; but,
> why 16 better than 8. And more importantly as you relax, as a matter of
> rings (in this case), would your analytical result be better? Or
> potentially have any remainder meaning at all, I.e. I don't know my
> neighbor's neighbor's neighbor (does that get us out to 16?).
> And so generalizing beyond some given point might yield not much on a knn
> influence/likeness basis.
>
> I think we're first better off dialing back in on what you mean by
> regional or the 0.5 to 1.5 resolution and then neighborhood size (4, 8,16?).
>
> Of course another approach to this "what side of the mountain am I on" is
> to transect along the z. I.e. roll your dem on it's side.
>
> Anyway, clarify the 0.5/1.5 so I don't go too far astray.
> Chris
> Thanks for the suggestion Chris.  I'm familiar with gdaldem, which
> raster::terrain is based on, to compute slope from a dem. I now realize
> that my example isnt a good one because neighbors=8 would achieve what I
> described. However I actually want some flexibility such that I can
> specifiy neighbors=16 so that it uses the next "ring" of cells.
>
> I played around with focal() with weight argument =
> matrix(rep(c(1,0,0,0,1),5),byrow=T) but couldn't figure out how to solve
> for a directional slope.
>
> On Fri, Feb 19, 2016 at 4:09 AM, chris english <
> englishchristophera at gmail.com> wrote:
>
>> Dominik,
>>
>> r <- raster(nrows=22, ncols=20, xmn=-58, xmx=-48, ymn=-33, ymx=-22)
>>  vals <- sample.int(1e3,440)
>> r[ ] <- vals
>> #raster::terrain
>> terr_r <- terrain(r, opt='slope', unit='degrees', neighbors=8)
>> Ah, but it appears you want up sampling to 1.5 degrees rather than 0.5
>> deg.
>> so maybe spatial.tools::projectRaster_rigorous then raster:terrain.
>>
>> I'm inclined to end that last so maybe with a question mark. Sorry for an
>> essentially inconclusive response but I was happy to find terrain in any
>> case.
>> Chris
>>
>> On Fri, Feb 19, 2016 at 2:59 AM, Dominik Schneider <
>> Dominik.Schneider at colorado.edu> wrote:
>>
>>> I need to calculate slope at different scales. In the case below, r is a
>>> 0.5deg resolution raster and I want the slope for 1.5 deg centered on
>>> each
>>> of those 0.5 deg pixels. I'm trying to estimate which side of mountain
>>> range each pixel is on. So the resulting raster would have the same
>>> number
>>> of pixels as r. The edges can be NA.
>>> any suggestions would be appreciated. Thanks
>>>
>>>
>>> r <- raster(nrows=22, ncols=20, xmn=-58, xmx=-48, ymn=-33, ymx=-22)
>>> setValues(r,rnorm(440))
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-sig-Geo mailing list
>>> R-sig-Geo at r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>
>>
>>
>

	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list