——— Introducción a R - Cargando datos ———
“Herramientas de análisis cuantitativo y su aplicación en la conservación de la biodiversidad”
“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 variablessep
, 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.
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
<- "https://en.wikipedia.org/wiki/Demographics_of_Colombia"
url_col
# Leer los objetos en forma de tablas (data.frame en lenguaje R)
<- html_nodes(read_html(url_col), "table")
tb
# 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”.
<- html_table(tb[1], fill = T) # Seleccionamos el primer objeto ([1]),
pop # lo convertimos en tabla y lo salvamos como un objeto llamado 'pop'
<- pop[[1]] # seleccionamos el primer objeto de la lista
pop # presentamos los resultados pop
## 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'
<- raster("./hfp_2009/HFP2009.tif")
hfp
# 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
<- raster::getData("GADM", country = "CO", level = 0)
Colombia <- spTransform(Colombia, crs(hfp)) # Utilizar las mismas coordenadas de hfp para Colombia
Colombia_t
# Extraer la información de huella humana para Colombia
<- crop(hfp, Colombia_t)
hfp_col <- mask(hfp_col, Colombia_t)
hfp_col_m
# 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
<- "http://bart.ideam.gov.co/cneideam/Capasgeo/"
url_ideam
# Lista de archivos en la página web
<- getHTMLLinks(url_ideam)
list_files_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
<- "Panthera onca"
mi_especie
# Bajar información de GBIF (https://www.gbif.org/) para COlombia
<- occ_data(scientificName = mi_especie, hasCoordinate = TRUE, country="CO")
Observaciones_gbif
# Seleccionar columnas que necesitamos:
<- Observaciones_gbif$data[ , c("decimalLongitude", "decimalLatitude", "individualCount", "occurrenceStatus", "coordinateUncertaintyInMeters", "institutionCode", "references")]
mi_specie_data
# 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
<- st_as_sf(mi_specie_data,
mi_specie_points 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
<- getData("worldclim",
temp_max 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.