Instalar y cargar paquetes

#install.packages(pkgs=c("sp", "rgdal", "raster", "RStoolbox"))
library(sp)
library(rgdal)
library(raster)
library(RStoolbox)
library(tidyverse)

Hacer una lista de los datos raster

list_dirs <- list.files(path = "DATA/raster/", pattern = glob2rx("*tif$"), all.files=T, full.names=T)
names(list_dirs)<- basename(list_dirs)

Apilar todos los raster en un solo objeto

timeStart<- proc.time()
chelsa_data<- stack(list_dirs)
proc.time() - timeStart
   user  system elapsed 
   0.85    0.06    1.00 

Leer y crear el archivo de coordenadas

pointCoordinates<- read.csv(file = "DATA/coord.csv", sep = ";", dec = ".")
coordinates(pointCoordinates)= ~ Long+ Lat

Extraer los valores del la imagen multibanda a cada uno de los puntos seleccionados

timeStart<- proc.time()
rasValue<- raster::extract(chelsa_data, pointCoordinates)
proc.time() - timeStart
   user  system elapsed 
   4.86    0.00    4.86 

Asignarle los valores a cada localizacion y crear el data frame

combinePointValue<- cbind(pointCoordinates,rasValue)
datos<- as.data.frame(combinePointValue)
datos$ID<- as.factor(datos$ID)

Exportar

write.table(datos, file = "data_Miquel.txt", append = FALSE, sep = ",", row.names = FALSE, col.names = TRUE)
LS0tDQp0aXRsZTogIkV4dHJhZXIgZGF0b3MgZGUgQ2hlbHNhIg0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KICBodG1sX2RvY3VtZW50Og0KICAgIGRmX3ByaW50OiBwYWdlZA0KLS0tDQoNCiMjIyBJbnN0YWxhciB5IGNhcmdhciBwYXF1ZXRlcw0KYGBge3J9DQppbnN0YWxsLnBhY2thZ2VzKHBrZ3M9Yygic3AiLCAicmdkYWwiLCAicmFzdGVyIiwgIlJTdG9vbGJveCIpKQ0KbGlicmFyeShzcCkNCmxpYnJhcnkocmdkYWwpDQpsaWJyYXJ5KHJhc3RlcikNCmxpYnJhcnkoUlN0b29sYm94KQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpgYGANCg0KDQojIyMgSGFjZXIgdW5hIGxpc3RhIGRlIGxvcyBkYXRvcyByYXN0ZXINCg0KYGBge3J9DQpsaXN0X2RpcnMgPC0gbGlzdC5maWxlcyhwYXRoID0gIkRBVEEvcmFzdGVyLyIsIHBhdHRlcm4gPSBnbG9iMnJ4KCIqdGlmJCIpLCBhbGwuZmlsZXM9VCwgZnVsbC5uYW1lcz1UKQ0KbmFtZXMobGlzdF9kaXJzKTwtIGJhc2VuYW1lKGxpc3RfZGlycykNCmBgYA0KDQojIyMgQXBpbGFyIHRvZG9zIGxvcyByYXN0ZXIgZW4gdW4gc29sbyBvYmpldG8NCmBgYHtyfQ0KdGltZVN0YXJ0PC0gcHJvYy50aW1lKCkNCmNoZWxzYV9kYXRhPC0gc3RhY2sobGlzdF9kaXJzKQ0KcHJvYy50aW1lKCkgLSB0aW1lU3RhcnQNCmBgYA0KDQojIyMgTGVlciB5IGNyZWFyIGVsIGFyY2hpdm8gZGUgY29vcmRlbmFkYXMNCg0KYGBge3J9DQpwb2ludENvb3JkaW5hdGVzPC0gcmVhZC5jc3YoZmlsZSA9ICJEQVRBL2Nvb3JkLmNzdiIsIHNlcCA9ICI7IiwgZGVjID0gIi4iKQ0KY29vcmRpbmF0ZXMocG9pbnRDb29yZGluYXRlcyk9IH4gTG9uZysgTGF0DQpgYGANCg0KDQojIyMgRXh0cmFlciBsb3MgdmFsb3JlcyBkZWwgbGEgaW1hZ2VuIG11bHRpYmFuZGEgYSBjYWRhIHVubyBkZSBsb3MgcHVudG9zIHNlbGVjY2lvbmFkb3MNCg0KYGBge3J9DQp0aW1lU3RhcnQ8LSBwcm9jLnRpbWUoKQ0KcmFzVmFsdWU8LSByYXN0ZXI6OmV4dHJhY3QoY2hlbHNhX2RhdGEsIHBvaW50Q29vcmRpbmF0ZXMpDQpwcm9jLnRpbWUoKSAtIHRpbWVTdGFydA0KYGBgDQoNCiMjIyBBc2lnbmFybGUgbG9zIHZhbG9yZXMgYSBjYWRhIGxvY2FsaXphY2lvbiB5IGNyZWFyIGVsIGRhdGEgZnJhbWUNCmBgYHtyfQ0KY29tYmluZVBvaW50VmFsdWU8LSBjYmluZChwb2ludENvb3JkaW5hdGVzLHJhc1ZhbHVlKQ0KZGF0b3M8LSBhcy5kYXRhLmZyYW1lKGNvbWJpbmVQb2ludFZhbHVlKQ0KZGF0b3MkSUQ8LSBhcy5mYWN0b3IoZGF0b3MkSUQpDQpgYGANCg0KIyMjIEV4cG9ydGFyDQpgYGB7cn0NCndyaXRlLnRhYmxlKGRhdG9zLCBmaWxlID0gImRhdGFfTWlxdWVsLnR4dCIsIGFwcGVuZCA9IEZBTFNFLCBzZXAgPSAiLCIsIHJvdy5uYW1lcyA9IEZBTFNFLCBjb2wubmFtZXMgPSBUUlVFKQ0KDQpgYGANCg0K