Juan Pablo Cañon Sosa

19/09/2020

1.Introduccion

Este es un R Markdown Notebook mediante el cual mostraremos como calcular la pendiente y aspecto.

En matematicas, la \(pendiente\) o gradiente de un plano es un numero que decriben la direccion y lo escarpado del terreno.

En cuanto al aspecto, este se refiere a la orientacion de la pendiente del plano en relacion a los puntos cardinales. El aspecto es la direccion de la brujula a la que esta enfrentada la pendiente.

Usamos la funcion Remove Objects (rm) para limpiar nuestro entorno de desarrollo:

rm(list=ls())

2.Creacion del Raster

Llamamos las librerias \(raster\) y \(sp\):

library(sp)
library(raster)

Vamos a crear un DEM que llamaremos dem. Es nescesario pasar las coordenadas del cuadro delimitador(minimo y maximo a lo largo de los dos ejes, x e y):

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

Para ver cuantas celdas componen dem usamos:

ncell(dem)
## [1] 9

Para ver cual es la resolucion espacial(tamaño de celda) de dem, usamos:

res(dem)
## [1] 5 5

Asignamos unos valores de elevacion a dem en un objeto que llamaremos valores:

valores <- c(50, 45, 50, 30, 30 ,30, 8, 10, 10)

Retornamos los valores del objeto rastervalores:

(values(dem) <- valores)
## [1] 50 45 50 30 30 30  8 10 10

Ploteamos los valores de elevacion que contiene el objteo dem:

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

Asignamos un sistema de referencia de coordenadas al objeto dem en este caso usamos el EPSG: 3115 que corresponde a la Zona Oeste de Colombia y comprende el area -78° 35’W a 75° 32’W:

crs(dem) <- CRS('+init=epsg:3115')
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum Marco_Geocentrico_Nacional_de_Referencia in CRS definition

3.Calculo de la Pendiente y Aspecto

Calculamos la Pendiente usando la funcion \(terrain\) proporcionada por la libreria \(raster\) y almacenamos los datos en un objeto que llamamos slope:

(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        : +proj=tmerc +lat_0=4.59620041666667 +lon_0=-77.0775079166667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs 
## source     : memory
## names      : slope 
## values     : 75.25766, 75.25766  (min, max)

Ploteamos el Calculo de la Pendiente usando la funcion \(plot\):

plot(slope, main= "Pendiente")
text(slope)

Analizando los datos obtenidos de calcular la Pendiente, podemos observar que el valor de la pendiente es de 75°.

Calculamos el Aspecto usando la funcion \(terrain\) proporcionada por la libreria \(raster\) y almacenamos los datos en un objeto que llamamos aspecto:

(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        : +proj=tmerc +lat_0=4.59620041666667 +lon_0=-77.0775079166667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs 
## source     : memory
## names      : aspect 
## values     : 180.7538, 180.7538  (min, max)
plot(aspecto, main = "Aspecto")
text(aspecto)

Analizando los datos obtenidos de calcular el aspecto, podemos observar que los datos tienen una orientacion hacia el Sur por estar en el rango (157.5-202.5).

4.Asignacion

Esctibir codigo R para calcular pendiente y aspecto para el siguiente DEM:

# [1] 16
# [1] 5 5

5.Desarrollo de la Asignacion

Primero creamos un objeto tipo raster que llamaremos demn1:

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

Usamos la funcion \(ncell\) para saber el numero de celdas de nuestro objeto dem1:

ncell(dem1)
## [1] 16

Usamod la funcion \(res\) para saber cual es la resoulcion espacial (tamaño de celda) del objeto dem1:

res(dem1)
## [1] 5 5

Asignar valores de elevacion al objeto dem1, los almacenamos en un nuevo objeto que llamamos valores1:

valores1 <- c(50, 45, 50, 48, 30, 29, 30, 29, 10, 9, 9, 10, 25, 23, 19, 21)

Asignamos valores1 a el vector dem1:

(values(dem1) <- valores1)
##  [1] 50 45 50 48 30 29 30 29 10  9  9 10 25 23 19 21

Instalamos la libreria \(RColorBrewer\), la cual usaremos para cambiar los colores del plot de Pendiente y Aspecto:

#install.packages("RColorBrewer")

Llamamos la libreria \(RColorBrewer\):

library(RColorBrewer)

##. Para conocer mas opciones de colores usamos el \(display.brewer.all()\) en el terminal.

Ploteamos el objeto dem1:

plot(dem1, main = "Calculo de Pendiente y aspecto para este DEM", col=brewer.pal(n=3, name='PuBu'))
text(dem1)

Asignamos un sistema de referencia de coordenadas al objeto dem1 en este caso usamos el EPSG: 3115 que corresponde a la Zona Oeste de Colombia y comprende el area -78° 35’W a 75° 32’W:

crs(dem1) <-CRS('+init=epsg:3115')
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO"): Discarded
## datum Marco_Geocentrico_Nacional_de_Referencia in CRS definition

Calculamos la Pendiente usando la funcion \(terrain\) proporcionada por la libreria \(raster\) y almacenamos los datos en un objeto que llamamos slope1:

(slope1 = terrain(dem1, '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        : +proj=tmerc +lat_0=4.59620041666667 +lon_0=-77.0775079166667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs 
## source     : memory
## names      : slope 
## values     : 36.05503, 75.62313  (min, max)

Ploteamos la Pendiente slope:

plot(slope1, main= "Pendiente", col=brewer.pal(n=4, name = 'PRGn'))
text(slope1)

Analizando los datos obtenidos de calcular la Pendiente, podemos observar que el terreno es irregular por cuanto tiene pendientes entre 76° y 36°.

Calculamos el Aspecto usando la funcion \(terrain\) proporcionada por la libreria \(raster\) y almacenamos los datos en un objeto que llamamos aspecto_1:

(aspecto_1 = terrain(dem1, '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        : +proj=tmerc +lat_0=4.59620041666667 +lon_0=-77.0775079166667 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs 
## source     : memory
## names      : aspect 
## values     : 164.0546, 181.4688  (min, max)

Ploteamos el Aspecto de dem1 (aspecto_1):

plot(aspecto_1, main="Aspecto", col=brewer.pal(n=4, name='Blues'))
text(aspecto_1)

Analizando los datos obtenidos de calcular el aspecto, podemos observar que los datos tienen una orientacion hacia el Sur por estar en el rango (157.5-202.5).