# [R] Raster manipulation in R

jon.skoien at jrc.ec.europa.eu jon.skoien at jrc.ec.europa.eu
Thu Dec 1 15:05:27 CET 2011

Hi,

Alternatively you could have a look at the function "terrain" in the
raster package, it can calculate the slope for you using different
algorithms, not sure if the one below is included though.

For typical spatial requests like this, you could also use the
mailing-list r-sig-geo.

Cheers,
Jon

On 01-Dec-11 14:27, Jean V Adams wrote:
> jjcabrera20 wrote on 12/01/2011 04:02:47 AM:
>
>> Hello everyone in the forum
>> For introducing myself I would say I have a basic knowledge of R.
>> Now I am intended to implement a flood algorithm using R. I have some
> MatLab
>> experience doing these, and as an example to explain more or less what I
>> want, I have a m code to calculate the slope from a Digital elevation
> model:
>> slope=zeros(row,col);
>> for i=2:row-1
>>      for j=2:col-1
>>         dzdx=(raster(i,j+1)-raster(i,j-1))/(2*res);
>>         dzdy=(raster(i+1,j)-raster(i-1,j))/(2*res);
>>         slope(i,j)=sqrt(dzdx^2+dzdy^2);
>>      end
>> end;
>>
>> The question is to know how to do the similar procedure on R. All
>> suggestions are welcome
>> Thanks
>>
>> All best,
>>
>> Jorge
>> PD:I am using R on windows system 64 bits
>
> If I am interpreting your code correctly (I don't use MatLab myself),
> something like this should give you the same result in R:
>
> # example matrix of heights
> raster<- matrix(runif(20, 10, 30), nrow=4, ncol=5)
>
> # example resolution
> res<- 8.5
>
> # dimensions of matrix
> drast<- dim(raster)
>
> # for every non-boundary point in the matrix,
> # calculate the distances between its adjacent columns (dzdx) and rows
> (dzdy)
> dzdx<- raster[2:(drast[1]-1), 3:drast[2]] - raster[2:(drast[1]-1),
> 1:(drast[2]-2)]
> dzdy<- raster[3:drast[1], 2:(drast[2]-1)] - raster[1:(drast[1]-2),
> 2:(drast[2]-1)]
>
> # calculate the slope from these distances and the resolution
> slope<- sqrt(dzdx^2 + dzdy^2) / (2*res)
>
>
> Jean
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> and provide commented, minimal, self-contained, reproducible code.

--
Jon Olav Skøien
Joint Research Centre - European Commission
Institute for Environment and Sustainability (IES)
Global Environment Monitoring Unit

Via Fermi 2749, TP 440,  I-21027 Ispra (VA), ITALY

jon.skoien at jrc.ec.europa.eu
Tel:  +39 0332 789206

Disclaimer: Views expressed in this email are those of the individual and do not necessarily represent official views of the European Commission.