INTRODUCCIÓN

Este es un cuaderno de R Markdown para ilustrar el cálculo de pendiente y aspecto. En matemáticas, la pendiente o gradiente de un plano es un número que describe tanto la dirección como la inclinación del plano. Por otro lado, el aspecto se refiere a la orientación de la pendiente del plano en relación con los puntos cardinales.

rm(list = ls())
library(raster)
## Warning: package 'raster' was built under R version 3.5.3
## Loading required package: sp
## Warning: package 'sp' was built under R version 3.5.3

Vamos a crear un objeto DEM. Tenga en cuenta que es necesario pasar las coordenadas del cuadro delimitador (mínimo y máximo a lo largo de los dos ejes, “x” y “y”):

dem = raster(ncol=3, nrow=3, xmn=100, xmx=115, ymn=100, ymx=115)

¿Cuántas celdas componen un DEM?

ncell(dem)
## [1] 9

¿Cuál es la resolución espacial (Tamaño de celda) de DEM?

res(dem)
## [1] 5 5

Asigne valores de elevación a DEM:

valores = c(50, 45, 50, 30, 30, 30, 8, 10, 10)
(values(dem)= valores)
## [1] 50 45 50 30 30 30  8 10 10

Tracemos el DEM a lo largo de los valores de elevación:

plot(dem, main = "DEM")
text(dem)

Asignemos un sistema de referencia de coordenadas a DEM:

crs(dem) = CRS('+init=epsg:3115')

Calculo de pendiente y aspecto

(slope = terrain(dem, 'slope', unit='degrees', neighbors=8))
## class      : RasterLayer 
## dimensions : 3, 3, 9  (nrow, ncol, ncell)
## resolution : 5, 5  (x, y)
## extent     : 100, 115, 100, 115  (xmin, xmax, ymin, ymax)
## crs        : +init=epsg:3115 +proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs 
## source     : memory
## names      : slope 
## values     : 75.25766, 75.25766  (min, max)
plot(slope, main = "Pendiente")
text(slope)

(aspecto = terrain(dem, 'aspect', unit='degrees', neighbors=8))
## class      : RasterLayer 
## dimensions : 3, 3, 9  (nrow, ncol, ncell)
## resolution : 5, 5  (x, y)
## extent     : 100, 115, 100, 115  (xmin, xmax, ymin, ymax)
## crs        : +init=epsg:3115 +proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs 
## source     : memory
## names      : aspect 
## values     : 180.7538, 180.7538  (min, max)
plot(aspecto, main= "Aspecto")
text(aspecto)

Ejercicio

Calcular la pendiente y el aspecto para el siguiente DEM, usando el código R

#[1] 16
#[1] 5 5

Crear un objeto DEM. Tenga en cuenta que es necesario pasar las coordenadas del cuadro delimitador (mínimo y máximo a lo largo de los dos ejes, “x” y “y”):

dem <- raster(ncol=4, nrow=4, xmn=100, xmx=120, ymn=100, ymx=120)

¿Cuantas celdas tiene el DEM?

ncell(dem)
## [1] 16

¿Cúal es la resolución espacial (tamaño de celda)?

res(dem)
## [1] 5 5

Asignar valores a cada una de las celdas del DEM, para ello se debe tener en cuenta el orden.

valores <- c(50, 45, 50, 48, 30, 29, 30, 29, 10, 9, 9, 10, 25, 23, 19, 21)
(values(dem) <- valores)
##  [1] 50 45 50 48 30 29 30 29 10  9  9 10 25 23 19 21

Trazar el DEM a lo largo de los valores de elevación:

plot(dem, main = "DEM")
text(dem)

Asignar sismeta de coordenadas al DEM

crs(dem) = CRS('+init=epsg:3115')
(slope = terrain(dem, 'slope', unit='degrees', neighbors=8))
## class      : RasterLayer 
## dimensions : 4, 4, 16  (nrow, ncol, ncell)
## resolution : 5, 5  (x, y)
## extent     : 100, 120, 100, 120  (xmin, xmax, ymin, ymax)
## crs        : +init=epsg:3115 +proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs 
## source     : memory
## names      : slope 
## values     : 36.05503, 75.62313  (min, max)

Cálculo de pendiente y aspecto

Para la Pendiente

(slope = terrain(dem, 'slope', unit='degrees', neighbors=8))
## class      : RasterLayer 
## dimensions : 4, 4, 16  (nrow, ncol, ncell)
## resolution : 5, 5  (x, y)
## extent     : 100, 120, 100, 120  (xmin, xmax, ymin, ymax)
## crs        : +init=epsg:3115 +proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs 
## source     : memory
## names      : slope 
## values     : 36.05503, 75.62313  (min, max)
plot(slope, main = "Pendiente")
text(slope)

Para el Aspecto

(aspecto = terrain(dem, 'aspect', unit='degrees', neighbors=8))
## class      : RasterLayer 
## dimensions : 4, 4, 16  (nrow, ncol, ncell)
## resolution : 5, 5  (x, y)
## extent     : 100, 120, 100, 120  (xmin, xmax, ymin, ymax)
## crs        : +init=epsg:3115 +proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs 
## source     : memory
## names      : aspect 
## values     : 164.0546, 181.4688  (min, max)
plot(aspecto, main= "Aspecto")
text(aspecto)

Agradezco la atención prestada.