R растр getZ возвращает ноль, даже если setZ работает нормально - PullRequest
0 голосов
/ 28 сентября 2018

Я обрабатываю данные MOD16, используя растровый пакет в R. Я хотел бы установить подмостки, которые я создал по дате.Я написал так:

all_ET<-grep(list.files(full.names = TRUE,
                   pattern = "ET_500m.tif$"),
                   pattern = "PET", inv=T, value=T) #totally 505 raster 
layers

date <- read_csv("date.csv") #505 dates
ET_stack <- stack(all_ET)
#set dates for rastestack layers
setZ(ET_stack, date$date)
getZ(ET_stack)

Результаты примерно такие:

> setZ(ET_stack, date$date)
class       : RasterStack 
dimensions  : 4000, 7405, 29620000, 505  (nrow, ncol, ncell, nlayers)
resolution  : 0.005, 0.005  (x, y)
extent      : 101.5427, 138.5677, 10, 30  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
names       : MOD16A2.A2001001.ET_500m, MOD16A2.A2001009.ET_500m, 
MOD16A2.A2001017.ET_500m, MOD16A2.A2001025.ET_500m, 
MOD16A2.A2001033.ET_500m, MOD16A2.A2001041.ET_500m, 
MOD16A2.A2001049.ET_500m, MOD16A2.A2001057.ET_500m, 
MOD16A2.A2001065.ET_500m, MOD16A2.A2001073.ET_500m, 
MOD16A2.A2001081.ET_500m, MOD16A2.A2001089.ET_500m, 
MOD16A2.A2001097.ET_500m, MOD16A2.A2001105.ET_500m, 
MOD16A2.A2001113.ET_500m, ... 
min values  :                   -32768,                   -32768,                   
-32768,                   -32768,   ``                -32768,                   
-32768,                   -32768,                   -32768,                   
-32768,                   -32768,                   -32768,                   
-32768,                   -32768,                   -32768,                   
-32768, ... 
max values  :                    32767,                    32767,                    
32767,                    32767,                    32767,                    
32767,                    32767,                    32767,                    
32767,                    32767,                    32767,                    
32767,                    32767,                    32767,                    
32767, ... 
time        : 2001-01-01 - 2011-12-27 (range)

> getZ(ET_stack)
NULL

Мне интересно, почему getZ возвращает ноль?Что-то не так с моим кодом?

Любые подсказки приветствуются.

Спасибо !!

1 Ответ

0 голосов
/ 28 сентября 2018

На основе примера из документации (введите ?setZ, чтобы узнать).

library(raster)

r <- raster(ncol=10, nrow=10)
s <- stack(lapply(1:3, function(x) setValues(r, runif(ncell(r)))))
s <- setZ(s, as.Date('2000-1-1') + 0:2)
s
getZ(s)

Вам необходимо сохранить вывод setZ в новом или существующем объекте.Таким образом, следующий код будет работать.

ET_stack <- setZ(ET_stack, date$date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...