Del ejercicio pasado, tenemos que importar el set de datos y volver a darle coordenadas

datosTodo =  read.csv("tricahue.csv") |>
st_as_sf(coords = c("lon", "lat"), crs= "epsg:4326") |>
filter(year > 2000) |>
dplyr::select(scientificName,locality,year) |>
  distinct()

 datosNorte =  read.csv("tricahueNorte.csv") |>
 st_as_sf(coords = c("lon", "lat"), crs= "epsg:4326") |>
 filter(year > 2000) |>
 dplyr::select(scientificName,locality,year) |>
  distinct()

datosSur =  read.csv("tricahueSur.csv") |>
st_as_sf(coords = c("lon", "lat"), crs= "epsg:4326") |>
  filter(year > 2000) |>
  dplyr::select(scientificName,locality,year) |>
    distinct()

Nicho climático

Vamos a buscar cuáles son las condiciones climáticas en que están estos registros para generar asi, una definición (gruesa) del nicho climático para Tricahue.

Usaremos los datos de Worldclim, que se encuentran documentados aquí. Sólo usaremos las variables bioclimáticas, en este ejemplo, pero debes complementar esto con variables de precipitaciones, temperatura y radiación solar si fuera necesario.

#TODOS LOS DATOS
Bioclim <- worldclim_country(c("Chile","Argentina"), 
                             var=c("bio"), res=0.5, path=getwd()) #|>
   #terra::crop(st_transform(datosTodo,'EPSG:4326')) # reproyectamos 'al vuelo', pues bioclim viene en epsg:4326
names(Bioclim) <- sapply(strsplit(names(Bioclim), split='30s_', fixed=TRUE), function(x) (x[2])) # renombra columnas
names(Bioclim) <- sapply(gsub('_','',names(Bioclim)), function(x) (x))
plot(Bioclim)

Si quieres ver una sola capa y un poco mas grande

capa = 'bio10'
plot(Bioclim[[capa]],main=capa)

Clima en registros de C. patagonus

Para extraer los datos bioclimáticos en las coordenadas geográficas, debemos consultar los pixeles de los rasters bioclimáticos donde existen ocurrencias en nuestra bas de datos.

Ejemplo de consulta de valores de raster en coordenadas
Ejemplo de consulta de valores de raster en coordenadas

La función a usar está en la librería raster y se llama extract().

Con eso generamos una tabla con las variables climáticas en cada una de las coordenadas en que tenemos registros.

#Con todos los datos
ClimaTodo <- terra::extract(Bioclim, st_transform(datosTodo,'EPSG:4326'))
ClimaTodo <- ClimaTodo[,-1]

#Con los datos del norte
ClimaNorte <- terra::extract(Bioclim, st_transform(datosNorte,'EPSG:4326'))
ClimaNorte <- ClimaNorte[,-1]

#Con los datos del Sur
ClimaSur <- terra::extract(Bioclim, st_transform(datosSur,'EPSG:4326'))
ClimaSur <- ClimaSur[,-1]

Vemos la tabla con los datos bioclimáticos para cada registro. (filas = primero 15 registros)

bio1 bio2 bio3 bio4 bio5 bio6 bio7 bio8 bio9 bio10 bio11 bio12 bio13 bio14 bio15 bio16 bio17 bio18 bio19
10.145833 13.791667 49.96981 515.1587 26.1 -1.5 27.6 4.666667 16.63333 16.63333 3.866667 839 180 12 86.68415 477 42 42 453
12.625000 12.883333 48.98606 490.2202 28.0 1.7 26.3 7.416666 18.88333 18.88333 6.716667 917 196 12 87.47552 523 41 41 487
15.454166 12.941667 49.58493 478.5464 30.3 4.2 26.1 10.300000 20.88333 21.35000 9.666667 717 180 3 101.38228 453 15 20 428
14.825000 9.033334 54.74748 282.3561 23.3 6.8 16.5 11.466667 17.51667 18.41667 11.466667 61 19 0 112.24976 47 0 0 47
17.183332 12.550000 48.26923 492.0474 31.9 5.9 26.0 11.750000 22.73333 23.20000 11.216666 648 172 1 111.24863 445 8 11 397
12.883333 12.983334 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
12.883333 12.983334 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
12.883333 12.983334 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
12.883333 12.983334 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
12.883333 12.983334 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
12.883333 12.983334 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
7.729166 12.025001 50.10417 448.3579 21.5 -2.5 24.0 2.316667 13.40000 13.40000 2.316667 971 213 11 93.93735 569 39 39 569
12.683333 13.533334 51.45754 475.7403 27.5 1.2 26.3 7.600000 18.06667 18.56667 6.883333 747 173 4 97.46371 463 19 23 432
14.708333 11.033334 57.46528 313.9110 24.6 5.4 19.2 10.933333 18.65000 18.65000 10.933333 79 28 0 116.93127 60 0 0 60
13.729167 11.525000 58.50254 310.6917 23.9 4.2 19.7 10.000000 16.88333 17.61667 10.000000 52 16 0 109.42775 38 0 0 38
bio1 bio2 bio3 bio4 bio5 bio6 bio7 bio8 bio9 bio10 bio11 bio12 bio13 bio14 bio15 bio16 bio17 bio18 bio19
14.825000 9.033334 54.74748 282.3561 23.3 6.8 16.5 11.466667 17.51667 18.41667 11.466667 61 19 0 112.24976 47 0 0 47
14.708333 11.033334 57.46528 313.9110 24.6 5.4 19.2 10.933333 18.65000 18.65000 10.933333 79 28 0 116.93127 60 0 0 60
13.729167 11.525000 58.50254 310.6917 23.9 4.2 19.7 10.000000 16.88333 17.61667 10.000000 52 16 0 109.42775 38 0 0 38
14.804167 10.974999 56.86528 315.9579 24.7 5.4 19.3 11.000000 18.76667 18.76667 11.000000 77 26 0 113.75033 58 0 0 58
13.550000 12.000000 62.17617 280.8348 23.6 4.3 19.3 10.216667 16.90000 17.13333 10.216667 19 6 0 84.90230 15 0 0 15
11.854167 11.475000 62.36413 267.9252 21.4 3.0 18.4 8.716667 15.06667 15.30000 8.716667 36 13 0 106.60036 28 0 0 28
9.820833 11.825000 57.96569 336.9209 20.3 -0.1 20.4 5.750000 11.55000 14.05000 5.750000 89 28 1 102.26337 60 5 5 60
13.333333 10.450000 59.03955 275.4363 22.5 4.8 17.7 10.083333 16.61667 16.85000 10.083333 48 15 0 106.51505 36 0 0 36
13.229167 11.941667 62.85088 267.3052 23.1 4.1 19.0 10.083333 16.48333 16.65000 10.083333 26 8 0 87.09186 19 0 0 19
14.841666 11.000000 57.29166 314.1716 24.7 5.5 19.2 11.083333 18.80000 18.80000 11.083333 78 27 0 115.33000 59 0 0 59
14.837500 10.958333 57.07465 313.9204 24.7 5.5 19.2 11.083333 18.80000 18.80000 11.083333 77 26 0 113.75033 58 0 0 58
13.045834 11.791667 60.47009 293.6096 23.2 3.7 19.5 9.566667 16.46667 16.76667 9.566667 51 18 0 113.74330 39 0 0 39
14.916667 9.266666 54.19103 291.9553 23.7 6.6 17.1 11.450000 18.63333 18.63333 11.450000 78 27 0 118.23620 60 0 0 60
15.345834 10.075000 54.75544 310.2892 24.9 6.5 18.4 11.683333 19.06667 19.28333 11.683333 121 44 0 124.86967 91 0 0 91
15.420834 10.108334 54.63964 313.0020 25.0 6.5 18.5 11.733334 19.16667 19.40000 11.733334 116 42 0 123.75086 87 0 0 87
bio1 bio2 bio3 bio4 bio5 bio6 bio7 bio8 bio9 bio10 bio11 bio12 bio13 bio14 bio15 bio16 bio17 bio18 bio19
10.145833 13.79167 49.96981 515.1587 26.1 -1.5 27.6 4.666667 16.63333 16.63333 3.866667 839 180 12 86.68415 477 42 42 453
12.625000 12.88333 48.98606 490.2202 28.0 1.7 26.3 7.416666 18.88333 18.88333 6.716667 917 196 12 87.47552 523 41 41 487
15.454166 12.94167 49.58493 478.5464 30.3 4.2 26.1 10.300000 20.88333 21.35000 9.666667 717 180 3 101.38228 453 15 20 428
17.183332 12.55000 48.26923 492.0474 31.9 5.9 26.0 11.750000 22.73333 23.20000 11.216666 648 172 1 111.24863 445 8 11 397
12.883333 12.98333 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
12.883333 12.98333 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
12.883333 12.98333 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
12.883333 12.98333 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
12.883333 12.98333 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
12.883333 12.98333 49.74457 478.1800 28.2 2.1 26.1 7.800000 19.01667 19.01667 7.150000 927 205 10 90.69820 541 35 35 500
7.729166 12.02500 50.10417 448.3579 21.5 -2.5 24.0 2.316667 13.40000 13.40000 2.316667 971 213 11 93.93735 569 39 39 569
12.683333 13.53333 51.45754 475.7403 27.5 1.2 26.3 7.600000 18.06667 18.56667 6.883333 747 173 4 97.46371 463 19 23 432
15.204166 12.94167 49.96783 474.6121 29.8 3.9 25.9 10.066667 20.53333 21.05000 9.450000 680 165 3 100.25771 424 15 18 405
12.283334 13.20000 49.25373 496.7134 27.9 1.1 26.8 7.000000 18.61667 18.61667 6.283333 925 198 12 87.41022 528 42 42 493
12.625000 12.88333 48.98606 490.2202 28.0 1.7 26.3 7.416666 18.88333 18.88333 6.716667 917 196 12 87.47552 523 41 41 487

Ahora, a qué corresponde bio1, bio2, etc…??

Veamos, por una parte, qué son estas variables:

Por otra parte, la inspección de la tabla muestra que sólo tiene los valores bioclimáticos. Necesitamos, ciertamente, asociar los registros y probablemente otros datos climáticos como temperatura, precipitaciones, radiación, por ejemplo.

Pero miremos primero cómo se relacionan los valores bioclimáticos recuperados para GBIF tiene registros de C. patagonus en Chile.

Selección de vaiables (bioclimáticas)

Sabemos que las variables bioclimáticas son variables derivadas de la variables de clima. Por lo tanto, han de tener fuertes correlaciones entre ellas. La pregunta es cuales elegir y minimizar asi, esta correlación espuria que sólo incrementará el ajuste del modelo de forma artificial.

  • Ver aqui la descripción de las variable bioclimáticas de worldclim.

A continuación se describen las 19 variables bioclimáticas: - bio1 = Temperatura media anual - bio2 = amplitud diurna media (media de la temperatura máxima y mínima) - bio3 = Isotermia (bio2/bio7) (* 100) - bio4 = Estacionalidad de la temperatura (desviación típica *100) - bio5 = Temperatura máxima del mes más cálido - bio6 = Temperatura mínima del mes más frío - bio7 = Rango anual de temperaturas (bio5-bio6) - bio8 = Temperatura media del trimestre más húmedo - bio9 = Temperatura media del trimestre más seco - bio10 = Temperatura media del trimestre más cálido - bio11 = Temperatura media del trimestre más frío - bio12 = Precipitación total (anual) - bio13 = Precipitación del mes más húmedo - bio14 = Precipitación del mes más seco - bio15 = Estacionalidad de las precipitaciones (coeficiente de variación) - bio16 = Precipitación del trimestre más húmedo - bio17 = Precipitaciones del trimestre más seco - bio18 = Precipitaciones del trimestre más cálido - bio19 = Precipitaciones del trimestre más frío

Buscamos comprender cuáles variables bioclimáticas son significativamente relevantes para describir, y predecir, la distribución de la especies. Esto significa que debemos poder tener una variables que representan, en realidad, un mismo aspecto del clima a la hora de generar una predicción.

Veamos la correlación entre la variables bioclimáticas donde hay C. patagonus. Fíjense que se han agrupados las filas y columnas con correlaciones similares para facilitar la interpretación. Eso puede hacerse con la librería ggcorrplot y su parámetro hc.order.

# install.packages("ggcorrplot")
# library(ggcorrplot)
p_load(ggcorrplot)
#Con todos los datos
corr <- cor(ClimaTodo[,-1],use = "pairwise") # ojo que removemos la primera columna que es el 'ID'
ggcorrplot::ggcorrplot(corr,method='square',pch=2,show.diag = FALSE,type="upper",
           ggtheme = theme_minimal(),hc.order = TRUE, title = "ConClimaTodo")

#Con los datos del Norte
corr <- cor(ClimaNorte[,-1],use = "pairwise") # ojo que removemos la primera columna que es el 'ID'
ggcorrplot::ggcorrplot(corr,method='square',pch=2,show.diag = FALSE,type="upper",
           ggtheme = theme_minimal(),hc.order = TRUE, title = "ConClimaNorte")

#Con los datos del Sur
corr <- cor(ClimaSur[,-1],use = "pairwise") # ojo que removemos la primera columna que es el 'ID'
ggcorrplot::ggcorrplot(corr,method='square',pch=2,show.diag = FALSE,type="upper",
           ggtheme = theme_minimal(),hc.order = TRUE, title = "ConClimaSur")

#escoger los que presenten una correlacion mas baja entre siiii (se ven en blanquitoo)

Seleccionamos entonces algunas variables de Bioclim que muestren baja correlación (no negativa!).

yo veo las variables :

  • BIO?? = XXX
  • BIO?? = XXX
  • BIO?? = XXX
  • BIO?? = XXX
  • BIO?? = XXX

(son todas de temperatura?…. mmmh sus. Creo que será importante considerar directamente las variables climáticas.)

#Con Todos
Var_ambientalesT <- ClimaTodo|>
  dplyr::select(bio1,bio5,bio9,bio10)

#Con lo del Norte
Var_ambientalesS <- ClimaNorte|>
  dplyr::select(bio14,bio3,bio7,bio2,bio15)

#Con lo del Sur
Var_ambientalesN <- ClimaSur|>
  dplyr::select(bio4,bio7,bio6,bio15,bio8)

# borramos para aliviar la memoria del compu!
rm(Clima) 
## Warning in rm(Clima): objeto 'Clima' no encontrado
rm(ClimaTodo)
rm(ClimaNorte)
rm(ClimaSur)

Guardamos los datos

Necesitamos guardar algunos de los objetos creados para usarlos en otra sesion.

# escribir un raster al disco como .tif
writeRaster(Bioclim, "Bioclim_raster.tif", overwrite=TRUE)
## 
|---------|---------|---------|---------|
=========================================
                                          
# ocurrencias
write_sf(datosTodo, "tricahue.gpkg")
write_sf(datosNorte, "tricahueNorte.gpkg")
write_sf(datosSur, "tricahueSur.gpkg")

# Var ambientales
write.csv(Var_ambientalesT,"Var_ambientalesTODO.csv")
write.csv(Var_ambientalesS,"Var_ambientalesSUR.csv")
write.csv(Var_ambientalesN,"Var_ambientalesNORTE.csv")

Resumen

En esta sesion perparamos los datos para el análisis de nicho climático