[R-sig-Geo] Extracting Temperature by exactextractr
Pietro Andre Telatin Paschoalino
p|etro_te|@to @end|ng |rom hotm@||@com
Wed Oct 26 15:54:15 CEST 2022
Sorry, forgot the packages:
library(raster)
library(sp)
library(geobr)
library(sf)
library(cruts)
library(exactextractr)
Pietro Andre Telatin Paschoalino
Doutor em Ciências Econômicas pela Universidade Estadual de Maringá - PCE.
Professor temporário do departamento de Economia da UEM.
________________________________
De: R-sig-Geo <r-sig-geo-bounces using r-project.org> em nome de Pietro Andre Telatin Paschoalino <Pietro_telato using hotmail.com>
Enviado: segunda-feira, 24 de outubro de 2022 10:52
Para: r-sig-geo using r-project.org <r-sig-geo using r-project.org>
Assunto: [R-sig-Geo] Extracting Temperature by exactextractr
Hello everyone, I am getting the year 2016 monthly average temperature for my shapefile polygons.
My data is cru_ts4.05.2011.2020.tmp.dat.nc
Follow my code. And at the end of the code my questions, if you can help.
Rasterdata <- cruts2raster("cru_ts4.05.2011.2020.tmp.dat.nc",
timeRange=c("2016-01-01","2017-01-01"))
rasterdata
# # checking raster crs
cat(wkt(crs(rasterdata)), "\n")
# getting shapefile
datasets <- list_geobr()
print(datasets)
micro <- read_micro_region(year=2013)
options(max.print = 9999)
print(micro[3:4],n=558)
sf::sf_use_s2(TRUE)
sf::st_is_longlat(micro)
# checking CRS Shapefile.
st_crs(micro)
#switching to the same CRS as the raster to do extraction.
shape<-st_transform(micro, crs(rasterdata))
st_crs(shape)
#same.
#doing extraction through exact_extract.
weath_dt = as.data.frame(matrix(NA,nrow(micro),14))
weath_dt[,1] = shape$code_micro
weath_dt[,2] = shape$name_micro
for (i in 1:length(rasterdata using layers)) {
weath_dt[,2+i] = exactextractr::exact_extract(rasterdata[[i]], shape, 'mean')
}
#generating average
#checking for Na
apply(weath_dt, 2, function(x) {sum(is.na(x))})
#all very well.
library(dplyr)
weath_dt[,15] <- rowMeans(weath_dt[,3:14])
shape$avetemp <- weath_dt[,15]
print(shape[6:7],n=558)
st_write(shape, dsn = ".", layer = "SHAPE.shp", driver = "ESRI Shapefile")
My questions:
#Code is OK?
#Any problem with the resolution or size of the polygons to the result of the extraction?
# From what I've seen the algorithm already considers the weighted average by the fraction of the cell that covers the polygon. I think it would be better than the simple average, right?
#result generated are in shapefile ID order?
#how to put raster CRS in 4326 before extraction? So, the shapefile's CRS would also end up in 4326. I believe they are in WGS 84 would this generate the same result for my extractions if they were in EPSG 4326?
Thanks.
Pietro Andre Telatin Paschoalino
Doutor em Ci�ncias Econ�micas pela Universidade Estadual de Maring� - PCE.
Professor tempor�rio do departamento de Economia da UEM.
[[alternative HTML version deleted]]
[[alternative HTML version deleted]]
More information about the R-sig-Geo
mailing list