Почему я получаю NA, когда пытаюсь извлечь значения из tif-файла? - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть tif-файл из WORLDCLIM, и мне нужно извлечь значения, связанные с температурой.

Пример кода:

t_min_jan2 <-raster::brick("wc2.0_30s_tmin_01.tif")
t_min_fev <-raster::brick("wc2.0_30s_tmin_02.tif")
t_min_mar <-raster::brick("wc2.0_30s_tmin_03.tif")
t_min_abr <- raster::brick("wc2.0_30s_tmin_04.tif")
t_min_maio <- raster::brick("wc2.0_30s_tmin_05.tif")
t_min_jun <- raster::brick("wc2.0_30s_tmin_06.tif")
t_min_jul <-raster::brick("wc2.0_30s_tmin_07.tif")
t_min_ago <-raster::brick("wc2.0_30s_tmin_08.tif")
t_min_set <-raster::brick("wc2.0_30s_tmin_09.tif")
t_min_out <- raster::brick("wc2.0_30s_tmin_10.tif")
t_min_nov <-raster::brick("wc2.0_30s_tmin_11.tif")
t_min_dez <-raster::brick("wc2.0_30s_tmin_12.tif")
t <-stack(t_min_jan2,t_min_fev,t_min_mar,t_min_abr,t_min_maio,t_min_jun,t_min_jul,t_min_ago,t_min_set,t_min_out,t_min_nov,t_min_dez)`

plot(t)

newt <- c(-10, 5, 35, 45)
tmin1 <- crop(t, newt)
plot(tmin1)

С помощью этого кода я получаю карту, которую хочу ...У меня есть файл с координатами (локальный), и мне нужно извлечь значения температуры из этих координат

xy<-local[,c("Longitude" ,"Latitude")]
spdf <- SpatialPointsDataFrame(coords = xy, data = local,
proj4string = CRS("+proj=longlat +datum=WGS84 +ellps=WGS84+towgs84=0,0,0"))
value<-extract(tmin1,spdf)
value

Но когда я запускаю код, я получаю NA вместо получения средних температур.Может быть, я не пишу код правильно.Вы можете заметить какие-либо ошибки?

1 Ответ

0 голосов
/ 11 февраля 2019

Более простой способ объединения данных:

library(raster)
# get all filenames
ff <- paste0(sprintf("wc2.0_30s_tmin_%02d", 1:12), ".tif")
wtmin <- stack(ff)
tmin <- crop(wtmin, c(-10, 5, 35, 45))

Начните с проверки, находятся ли точки в растре (вероятно, их нет)

xy <- local[,c("Longitude" ,"Latitude")]
plot(tmin[[1]])
points(xy)

Если они включеныtop, это должно работать

value <- extract(tmin, xy)

Если это не так, и вы не можете понять, почему, покажите нам, что возвращает

tmin
extent(xy)
...