——— Introducción a R - Cargando datos ———

“Herramientas de análisis cuantitativo y su aplicación en la conservación de la biodiversidad”

Ecodiversa Tropical


1. Objetivos de aprendizaje

Al final de este taller usted podrá saber cómo:

  • Cargar datos en varios formatos

2. Para empezar

Inicie R Studio y abra un nuevo R Script utilizando el menu: File > New File > R Script

3. Introducción

Los datos son el insumo más importante para el análisis cuantitativo.

En general conocemos los datos en forma de tablas, por ejemplo un hoja de cálculo (extensión ‘.xlsx’). Sin embargo, los datos también pueden venir en otros formatos como texto, rasters o vectores.

Mostraremos rápidamente los formatos y las formas mas básicas de cargarlos en R.

Con estas herramientas que le presentamos en este taller usted podrá aventurarse a implementar procesos más complejas.

4. Formato de los datos

CSV

CSV (comma-separated values, por sus siglas en inglés) es un archivo delimitado; es decir utiliza comas (,) para separar los valores.

Recuerde que usted puede generar un archivo con extensión ‘.csv’ desde su hoja de cálculo en Excel.

En el ejemplo de abajo (visto en un editor de texto), el archivo ‘.csv’ presenta sus elementos separados por comas.


Texto

El formato de texto .txt es muy similar a .csv, pero los elementos están separados por espacios (Tabs en inglés).

Al guardar el arhivo de Excel en formato texto, es decir con extensión .txt, el resultado es el siguiente:


Raster

El formato raster es información representada en pixeles o mallas (pixels, grids; en inglés). Raster es un formato muy importante en los análisis espaciales.

Cada celda o pixel contiene un valor único y puede tener un tamano diferente (lo que se conoce como resolución espacial).

En la figura se presenta un ejemplo de datos en raster. Es la precipitación total en las Américas, con base en datos tomados de WorldClim.


Vectores

Los vectores o datos vectoriales están representados por fíguras geométricas: puntos, líneas o polígonos.

El ejemplo en la figura muestra los límites administrativos (polígonos) de los países del mundo, utilizando el paquete::función maps:map().


5. Cargando tablas

Existen varios funciones en R que le permiten cargar datos con diferentes formatos y extensiones como: ‘.csv’, ‘.xlsx’ o ‘.txt’.

Las siguientes funciones vienen incorporadas en el paquete utils:: que se carga automáticamente cuando usted inicia su sesión en R.

  • read.table()
  • read.csv()
  • read.delim()

Es probable que read.table sea la función que más utilice en un futuro.

read.table()

La función read.table() carga sus datos en R en forma tabular (una tabla), es decir filas (registros) y columnas (variables o propiedades).

La función tiene tres parámetros principales (vea el código abajo):

  • El nombre del archivo, incluyendo la ruta a su disco duro y carpetas (utilice comillas).

  • header, puede ser TRUE or T (verdadero), si la primera fila es el encabezado de las columnas; es decir el nombre de las variables

  • sep, define el caracter que se utiliza para separar los valores de cada linea (utilice comillas).

    • ‘;’ (punto y coma)
    • ‘,’ (coma)
    • ’ ’ (espacio)

Por ejemplo, utilicemos el siguiente código (click en “Code”, a la derecha) para cargar una tabla que hemos creado en Excel con extensión ‘.csv’.

# Cargar la tabla 
  read.table("./ejemplo1.csv", header=T, sep=";")
##   Especie.Riqueza
## 1          sp1,10
## 2          sp2,25
## 3          sp3,32

En esta caso no funciono. La razón es que el separador no es sep = ‘;’ sino que es sep = ‘,’.

Ejecutemos el nuevo código…. Sí, parece que ya tenemos una tabla que podemos usar en R.

# Cargar la tabla 
  read.table("./ejemplo1.csv", header=T, sep=",")
##   Especie Riqueza
## 1     sp1      10
## 2     sp2      25
## 3     sp3      32

Tips!

Para tener mas información sobre la función read.table u otras funciones, utilice:

  • help(“read.table”)

  • ?read.table

  • O ilumine la función read.table con el cursor y después presione F1


Ejercicio

Ahora es su turno de practicar:

Ejercicio!

Cree una tabla en Excel con dos o tres columnas y unos cinco registros (filas) con valores. Finalmente, guarde su tabla con extensión ‘.csv’.

Intente cargar la tabla utilizando varias funciones y varios parámetros.

  • read.table
  • read.csv()
  • read.delim()

¿Cuáles son los resultados?


read.csv() vs. read.csv2()

Cuando usted tiene comas separando los números, como en el caso que se presenta en la tabla de abajo (en la primera columna), y usted carga los datos utilizando la funcion read.csv() las comas se mantienen (ver la columna ‘Sitio’).

# Cargar la tabla 
  read.csv("./ejemplo3.csv", header=T, sep=",")
##   Sitio Sitio2
## 1   1,1    1.1
## 2   1,2    1.2
## 3   1,3    1,3
## 4   1,4    1,4

Pero la función read.csv2() asume que la coma entre los números corresponde a un decimal y la convierte a un punto (es decir decimal).

Vea denuevo la primera columna (‘Sitio’) generada con el nuevo código.

# Cargar la tabla 
  read.csv2("./ejemplo3.csv", header=T, sep=",")
##   Sitio Sitio2
## 1   1.1    1.1
## 2   1.2    1.2
## 3   1.3    1,3
## 4   1.4    1,4

Ahora bien, las funiones read.csv2() o read.delim2() no solucionan todos los problemas con que viene una hoja de cálculo. La columna 2 (‘Sitio2’) muestra que cuando hay registros originales variados, es decir, con comas y puntos no se realiza ninguna transformación.

Tips!

En este punto es bueno hacer notar que el separador de miles y decimales es tratado de forma diferente:

  • En Norte América: miles (,) y decimales (.).

  • En Colombia: miles (.) y decimales (,)

Tenga en cuenta que:

  • R utiliza la forma de Norte América: miles (,) y decimales (.).

  • La coma para miles no se utiliza cuando se escriben códigos u hojas de cálculo.

  • Cuando hay registros originales variados, es decir, con comas y puntos no se realiza ninguna transformación.

read.xlsx() y read.xlsx2()

El paquete readxl contiene dos funciones para cargar y guardar archivos generados en su hoja de cálculo de Excel (es decir con extension ‘.xlsx’).

  • read.xlsx()
  • read.xlsx2()

Ejercicio

Ahora es su turno de practicar:

Ejercicio!

Descargue en su computador una de las tablas de ’Promedios climatológicos" (encontrará dos: 1971-2000 y 1981-2010) en formato .xlsx que se encuentra en la pagina del IDEAM.

Luego carguela en R utilizando estas funciones e intente varios parámetros.

  • read.xlsx()
  • read.xlsx2()

Recuerde que puede obterner ayuda para saber los parámetros que tienen estas funciones.

6. Cargando raster y vector

raster()

La función raster() del paquete raster le permite cargar archivos como ‘.tif’ or ‘.grid’.

Por ejemplo, la imagen que se ve en la figura de abajo representa la cobertura de bosques (en verde) en Cundinamarca, Colombia

La ventana muestra en detalle un area en donde se muestra el efecto pixelado de la imagen.

Fuente: IDEAM, esta capa Bosque_No_Bosque_2019.zip .

Este es el código que utilizaría para cargar su archivo raster. Puede utilizar raster o terra (recuerde instalar el paquete correspondiente). Mas adelante le mostraremos un ejemplo concreto con una imagen que puede bajar de la red.

# Opcion 1:
  # install.packages("raster") 
  # raster("./cund_bosq")

# Opcion 2:
  # install.packages("terra")
  # rast("./cund_bosq")

El paquete raster será reemplazado por el paquete terra, pero las fucionalidades permaneceran similares. Veremos en detalle estos paquetes dentro del “Taller de análisis espacial”. Por ahora nos interesa que usted sepa que existen paquetes y funciones en R para cargar rasters.

st_read()

La funcion st_read() que se encuentra dentro del paquete sf (“simple feature” en inglés) le permite cargar figuras geométricas como puntos, líneas o polígonos. Generalmente en estas figuras vienen en formato shapefile (con extensión ‘.shp’).

Como lo muestra la figura la división político administrativa de Cundinamarca y Bogota podría ser cargada en R.

Este es el código que utilizaría para cargar su archivo shapefile.

# Opción 1:
  # install.packages("sf")
  # st_read("./Cundinamarca.shp")

# Opción 2:
  # install.packages("rgdal")
  # readOGR("./Cundinamarca.shp")

# Opción 2:
  # install.packages("maptools")
  # readShapeSpatial("./Cundinamarca.shp")

El paquete sf reemplazará los paquetes rgdal y sp. Veremos en detalle estos paquetes dentro del taller de análisis espacial. Por ahora nos interesa que usted sepa que existen paquetes y funciones en R para cargar vectores.

7. Cargando desde la web

Existe gran cantidad de bases de datos en la web (tablas, vectores, rasters) que pueden ser cargados en R.

Información!

Usuarios y servidores se comunican via HyperText Transfer Protocol (HTTP, por sus siglas en inglés) y otros protocolos.

HTTP puede ser utilizado para transferir documentos, imágenes, videos, datos, y muchos recursos más desde la web.

  • El protocolo HTTP tiene ‘http://’ en el nombre de la página web
  • El protocolo HTTPS tiene ‘https://’ en el nombre de la página web, siendo mucho más segura porque encripta las requisiciones del usuario y las respuestas del servidor. Por esto HTTPS podría ser más difícil de acceder desde R.

Veamos ahora unos ejemplos de cómo podría cargarlos usando R:

7.1. html_nodes()

Podemos utilizar la función html_nodes() del paquete rvest para explorar que tablas hay disponibles en la web.

Veamos por ejemplo unas tablas la página de Wikipedia sobre la población en Colombia.

Parece que hay un lista grande (~23 objetos en esa página).

# install.packages("rvest") # recuerde instalar el paquete

# Cargar el paquete
  library(rvest) 

# definir un objeto con la página web
  url_col <- "https://en.wikipedia.org/wiki/Demographics_of_Colombia" 
 
# Leer los objetos en forma de tablas (data.frame en lenguaje R)  
  tb <- html_nodes(read_html(url_col), "table")

  # Mostrar los objetos
  tb 
## {xml_nodeset (23)}
##  [1] <table class="infobox" style="width: 25em"><tbody>\n<tr><th colspan="2" class="infobox-above" style=" ...
##  [2] <table class="toccolours" style="width:15em;border-top-width:0;border-spacing: 0;float:right;clear:ri ...
##  [3] <table class="wikitable sortable" style="width:100%; text-align:center;"><tbody>\n<tr style="vertical ...
##  [4] <table class="wikitable" style="text-align: right;"><tbody>\n<tr>\n<th>\n</th>\n<th width="70pt">Tota ...
##  [5] <table class="wikitable"><tbody>\n<tr>\n<th width="80pt">Age Group\n</th>\n<th width="80pt">Male\n</t ...
##  [6] <table class="wikitable"><tbody>\n<tr>\n<th width="50">Age group\n</th>\n<th width="80pt">Male\n</th> ...
##  [7] <table class="wikitable sortable"><tbody>\n<tr>\n<th>Rank\n</th>\n<th>Place name\n</th>\n<th>2018 Cen ...
##  [8] <table class="wikitable" style="text-align: right;"><tbody>\n<tr>\n<th width="50pt">Period\n</th>\n<t ...
##  [9] <table class="wikitable sortable"><tbody>\n<tr>\n<th width="70">Year\n</th>\n<th width="70">Populatio ...
## [10] <table class="wikitable" style="text-align:center;">\n<caption>\n</caption>\n<tbody>\n<tr>\n<th>Perio ...
## [11] <table class="wikitable sortable">\n<caption>\n<b>Departments by demographic indicators during 2020</ ...
## [12] <table class="wikitable"><tbody>\n<tr>\n<th style="width:60pt;">Year\n</th>\n<th style="width:50pt;"> ...
## [13] <table style="text-align:left; border-collapse:collapse; width:100%;"><tbody>\n<tr style="background: ...
## [14] <table class="box-POV plainlinks metadata ambox ambox-content ambox-POV" role="presentation"><tbody>< ...
## [15] <table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;bac ...
## [16] <table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;backgroun ...
## [17] <table class="nowraplinks hlist mw-collapsible uncollapsed navbox-inner" style="border-spacing:0;back ...
## [18] <table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody>\n<tr><td colspan="2" clas ...
## [19] <table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody>\n<tr><td colspan="2" clas ...
## [20] <table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody>\n<tr><td colspan="2" clas ...
## ...

Veamos el primer objeto (presentado en el pantallazo de abajo y utilizando el código de la derecha). Parece ser que son los datos de la primera tabla a la derecha en la página de Wikipedia (ver la figura de Wikipedia más abajo).

Requiere un poco de manejo y limpieza, pero esto lo veremos en el taller de “Manejo de datos”.

pop <- html_table(tb[1], fill = T) # Seleccionamos el primer objeto ([1]),
                                   # lo convertimos en tabla y lo salvamos como un objeto llamado 'pop'
pop <- pop[[1]] # seleccionamos el primer objeto de la lista
pop # presentamos los resultados
##               Demographics of Colombia                       Demographics of Colombia
## 1  Colombia population pyramid in 2020            Colombia population pyramid in 2020
## 2                           Population            51,049,498 (2021 estimate)(29th)[1]
## 3                              Density                      42.25 inhab/sq km (139th)
## 4                          Growth rate                                   0.8% (105th)
## 5                           Birth rate           18.9 births/1,000 population (111th)
## 6                           Death rate                   5.8/1,000 population (178th)
## 7                      Life expectancy                                      79 (34th)
## 8                               • male                                      76 (37th)
## 9                             • female                                      83 (22nd)
## 10                      Fertility rate                    1.80 children/woman (122nd)
## 11                  Net migration rate                                -0.65 (2014)[2]
## 12                       Age structure                                  Age structure
## 13                          0–14 years                                          22.5%
## 14                         15–64 years                                          64.1%
## 15                         65 and over                                          13.4%
## 16                           Sex ratio                                      Sex ratio
## 17                               Total                            1.03 male(s)/female
## 18                            Under 15                            1.02 male(s)/female
## 19                         15–64 years                            0.95 male(s)/female
## 20                         65 and over                            0.75 male(s)/female
## 21                            Language                                       Language
## 22                              Spoken Spanish, English and other european languages.

Ejercicio

Ahora es su turno de practicar:

Ejercicio!

Cree una tabla seleccionado el tercer objeto de la lista de 23 objetos que obtuvimos con uno de los códigos anteriores.

¿Cual es la tabla que obtiene?

La puede comparar con la tabla que corresponde en la página de Wikipedia sobre la población en Colombia.

¿En qué condiciones está la tabla?

7.2. download.file(), raster(), getData()

Veamos ahora un ejemplo un poco mas interactivo con la web, en donde cargaremos en nuestro computador un archivo raster usando la función download.file().

En este caso, vamos a utilizar la huella humana en 2009 desarrollada por Venter et al (2016) y disponible en wcshumanfootprint.org.

Este código tomará tiempo en ejecutarse, porque es un archivo grande que viene comprimido.

 # Verificar si ya se bajó la base de datos
   if(dir.exists("./hfp_2009")){
     
      print("El archivo ya existe, ha sido bajado de la web previamente") #si ya se bajó entonces provea este mensaje
     
          }else{ # si la base de datos no se ha bajado ahora lo va hacer.

  # Bajar la información
    download.file("https://wcshumanfootprint.org/data/HFP2009.zip", 
              destfile = 'hfp.zip') # este es el nombre del archivo que se guarda en el directorio raiz

  # Descomprimir el archivo
    unzip(zipfile = "hfp.zip", 
      exdir = 'hfp_2009')  # este es el folder donde se guardan los archivos

        }
## [1] "El archivo ya existe, ha sido bajado de la web previamente"

Veamos el raster a nivel global: valores cerca a zero (0) indican que la huella humana es baja.

# Cargar el paquete
  library(raster)

# Cargar el raster y guadarlos como el objeto 'hfp'
  hfp <- raster("./hfp_2009/HFP2009.tif")

# Presentar el mapa
  plot(hfp)

Veamos ahora para Colombia. Utilizaremos la función getData() del paquete raster que permite extraer polígonos que corresponden a los limites administrativos de los países (en este caso Colombia).

Finalmente, utilizaremos este polígono para extraer la información de huella humana para Colombia.

Recuerde que el manejo de rasters lo veremos más en detalle en el ‘Taller e análisis espacial’. Por ahora enfoquémonos en como bajar información de la web.

# Carguemos el mapa de Colombia
  Colombia <- raster::getData("GADM", country = "CO", level = 0)
  Colombia_t <- spTransform(Colombia, crs(hfp)) # Utilizar las mismas coordenadas de hfp para Colombia

# Extraer la información de huella humana para Colombia
  hfp_col <- crop(hfp, Colombia_t)
  hfp_col_m <- mask(hfp_col, Colombia_t)

# Graficar
  plot(hfp_col_m)
  plot(Colombia_t, add=T)

7.3. getURL()

La función getURL() del paquete RCurl permite acceder a los archivos que se encuentran en una página web.

Una vez ejecutado el código podemos ver el número de objetos identificados en esa página web.

# Recuerde instalar el paquete
  # install.packages("XML")

# Cargar paquete
  library(XML)

# Página web
  url_ideam <- "http://bart.ideam.gov.co/cneideam/Capasgeo/"

# Lista de archivos en la página web
  list_files_ideam <- getHTMLLinks(url_ideam)
  
# ¿Cuantos archivos hay en esta página web?
  length(list_files_ideam) 
## [1] 676

Luego listamos los primeros 20.

# Ver los primero 20 archivos
  head(list_files_ideam, 20) 
##  [1] "?C=N;O=D"                                                                                                                     
##  [2] "?C=M;O=A"                                                                                                                     
##  [3] "?C=S;O=A"                                                                                                                     
##  [4] "?C=D;O=A"                                                                                                                     
##  [5] "/cneideam/"                                                                                                                   
##  [6] "Absorciones_GEI_Colombia_TCNCC_2016.zip"                                                                                      
##  [7] "Agua_subterranea_concesionada_cobro_TUA_ENA2014.zip"                                                                          
##  [8] "Alteraciones%20Precipitaci%c3%b3n%20Temporada%20Lluviosa%20Trapecio%20Amaz%c3%b3nico%20FT%20El%20Ni%c3%b1o%201981%20-2010.zip"
##  [9] "Alteraciones_Precipitaci%c3%b3n_1a_Temporada_Seca_R_Andina%20por%20FT%20El%20Ni%c3%b1o,%201981%20-2010.zip"                   
## [10] "Alteraciones_Precipitaci%c3%b3n_1er_Trimestre_2do_A%c3%b1o_FM_La_Ni%c3%b1a_1981-2010.zip"                                     
## [11] "Alteraciones_Precipitaci%c3%b3n_1er_Trimestre_2do_A%c3%b1o_FT_La_Ni%c3%b1a_1981-2010.zip"                                     
## [12] "Alteraciones_Precipitaci%c3%b3n_2da_Temporada_Seca_R_Andina_por_FT_El_Ni%c3%b1o,_1981_-2010.zip"                              
## [13] "Alteraciones_Precipitaci%c3%b3n_2do_Trimestre_1er_A%c3%b1o_FD_La_Ni%c3%b1a_1981-2010.zip"                                     
## [14] "Alteraciones_Precipitaci%c3%b3n_2do_Trimestre_1er_A%c3%b1o_FM_La_Ni%c3%b1a_1981-2010.zip"                                     
## [15] "Alteraciones_Precipitaci%c3%b3n_2do_Trimestre_1er_A%c3%b1o_FT_La_Ni%c3%b1a_1981-2010.zip"                                     
## [16] "Alteraciones_Precipitaci%c3%b3n_2do_Trimestre_2do_A%c3%b1o_FD_El_Ni%c3%b1o_1981-2010.zip"                                     
## [17] "Alteraciones_Precipitaci%c3%b3n_2do_Trimestre_2do_A%c3%b1o_FD_La_Ni%c3%b1a_1981-2010.zip"                                     
## [18] "Alteraciones_Precipitaci%c3%b3n_2do_Trimestre_2do_A%c3%b1o_FF_El_Ni%c3%b1o_1981-2010.zip"                                     
## [19] "Alteraciones_Precipitaci%c3%b3n_2do_Trimestre_2do_A%c3%b1o_FM_El_Ni%c3%b1o_1981-2010.zip"                                     
## [20] "Alteraciones_Precipitaci%c3%b3n_2do_Trimestre_2do_A%c3%b1o_FM_La_Ni%c3%b1a_1981-2010.zip"

Si le interesa un archivo en particular (por ejemplo el de la línea 676) puede utilizar una de estas funciones: download.file() o curl_download() para bajar el archivo comprimido a su disco duro.

La función curl_download() reemplazará download.file().

No vamos a correr este código porque toma mucho tiempo. Pero lo puede hacer como ejercicio.

# Opción 1:
  #download.file(paste0(url_ideam, list_files_ideam[676]), destfile = 'test.zip')

# Opción 2:
# Si es necesio Instale el paquete
  # install.packages("RCurl")
  # library(RCurl)

  # curl_download(paste0(url_ideam, list_files_ideam[676]), "test2.zip")

8.Paquetes y funciones especializadas

Existen varios paquetes y funciones especializadas que permiten no solo cargar bases de datos desde sus repositorios, sino que tambien tienen funciones para manipular datos, realizar análisis, modelos, simulaciones, crear gráficas y mapas, etc.

Estos son algunos ejemplos:

8.1. occ_data()

La función occ_data() dentro del paquete rgbif permite cargar datos relacionados con observaciones de especies a nivel global del Global Biodiversity Information Facility (GBIF).

La tabla muestra el número de registros y la información asociada a ellos.

# Recuerde instalar el paquete
  # install.packages("rgbif")

# Cargar el paquete
  library(rgbif)

# Seleccionar una especie
  mi_especie <- "Panthera onca"
  
# Bajar información de GBIF (https://www.gbif.org/) para COlombia
  Observaciones_gbif <- occ_data(scientificName = mi_especie, hasCoordinate = TRUE, country="CO")

# Seleccionar columnas que necesitamos:
  mi_specie_data <- Observaciones_gbif$data[ , c("decimalLongitude", "decimalLatitude", "individualCount", "occurrenceStatus", "coordinateUncertaintyInMeters", "institutionCode", "references")]

# Presentar información
  mi_specie_data
## # A tibble: 500 x 7
##    decimalLongitude decimalLatitude individualCount occurrenceStatus coordinateUncerta~ institutionCode      
##               <dbl>           <dbl>           <int> <chr>                         <dbl> <chr>                
##  1            -76.7           1.11               NA PRESENT                          NA CORPOAMAZONÍA - Corp~
##  2            -72.6          11.1                NA PRESENT                       31158 iNaturalist          
##  3            -67.7           6.12               NA PRESENT                          NA Asociación Colombian~
##  4            -67.8           6.14               NA PRESENT                          NA Asociación Colombian~
##  5            -67.7           6.08               NA PRESENT                          NA Asociación Colombian~
##  6            -76.8           0.878               1 PRESENT                          NA CORPOAMAZONÍA - Corp~
##  7            -76.8           0.878               1 PRESENT                          NA CORPOAMAZONÍA - Corp~
##  8            -76.8           0.878               1 PRESENT                          NA CORPOAMAZONÍA - Corp~
##  9            -76.8           0.868               1 PRESENT                          NA CORPOAMAZONÍA - Corp~
## 10            -76.8           0.868               1 PRESENT                          NA CORPOAMAZONÍA - Corp~
## # ... with 490 more rows, and 1 more variable: references <chr>

A usted le gustaría ver el mapa de Colombia con las observaciones de su especie. Bueno utilicemos las coordenadas geográficas de la base de datos y el mapa de Colombia que creamos anteriormente para graficarlos.

En el taller de análisis espacial aprenderemos a mejorar la presentación de estas figuras.

# recuerde instalar el paquete
  # install.packages("sf")
# Cargar el paquete
  library(sf)

# Convertir coordenadas a puntos
  mi_specie_points <- st_as_sf(mi_specie_data,
                               coords = c("decimalLongitude", "decimalLatitude"))

# Graficar
  plot(Colombia)
  plot(mi_specie_points$geometry, add=T)

8.2. getData()

La función getData() del paquete raster permite cargar no solo los límites administrativos de los países del mundo, sino que se puede cargar otro tipo de información como:

  • Clima del proyecto WorldClim.
  • Digital Elevation Models (DEM, en inglés) del Shuttle Radar Topographic Mission SRTM, que respresenta el modelo de elevación de las masas continentales.

En el siguiente ejemplo cargamos los datos de temperatura maxima global de WorldClim a la resolución mas gruesa (~304Km2 = 10 min)

La tabla muestra la pila (stack en inglés) de rasters (12, que corresponde a los 12 meses del año), la resolución en grados decimales, así como los valores de temperatura (multiplicados por 10).

# Recuerde instalar el paquete
  # install.packages("raster")

# Cargar el paquete
  library(raster)

# Obtener Temperatura Maxima (resolucion ~340 km2) y guardala en una variable
  temp_max <- getData("worldclim", 
                      var='tmax', # puede descargar las 19 variable disponibles utilizando var='bio'.
                      res=10)

# Preseentar información
  temp_max
## class      : RasterStack 
## dimensions : 900, 2160, 1944000, 12  (nrow, ncol, ncell, nlayers)
## resolution : 0.1666667, 0.1666667  (x, y)
## extent     : -180, 180, -60, 90  (xmin, xmax, ymin, ymax)
## crs        : +proj=longlat +datum=WGS84 +no_defs 
## names      : tmax1, tmax2, tmax3, tmax4, tmax5, tmax6, tmax7, tmax8, tmax9, tmax10, tmax11, tmax12 
## min values :  -478,  -421,  -422,  -335,  -190,   -94,   -59,   -76,  -153,   -265,   -373,   -452 
## max values :   418,   414,   420,   429,   441,   467,   489,   474,   441,    401,    401,    413

Visualizamos uno de los meses (recuerde que hay que dividir por 10 los valores de temperatura).

# Presentar el mapa
  plot(temp_max$tmax6/10)

Ejercicio

Ahora es su turno de practicar:

Ejercicio!

Explore el siguiente código en R:

Colombia_alt <- getData(‘alt’, country=‘COL’, mask=TRUE)

¿Qué obtiene? Compare la resolución obtenida en este raster con la obtenida en el raster de Worldclim.

Recuerde que puede obterner ayuda para saber los parámetros que tienen estas funciones.


###########################################################################