栅格堆栈或积木无法处理绿棕包中的趋势图功能

时间:2019-11-06 22:33:03

标签: r time-series raster

greenbrown软件包不适用于栅格时间序列(RTS),因此我想使用栅格堆栈或砖块。在存在长度问题的情况下,趋势图函数仍然无法使用,但是堆栈和时间函数具有相同数量的变量。数据是MODIS EVI。

此处显示http://greenbrown.r-forge.r-project.org/trends.php

  

趋势图<-TrendRaster(ndvimap,start = c(1982,1),freq = 12,method =“ AAT”,breaks = 1,funAnnual = max)

library(bfastSpatial)
library(raster)
library(rgdal)
library(greenbrown)
library(rts)
library(lubridate)


#All file names
all_NDVI_files = c('MOD13Q1_EVI_2000_049.tif',
                   'MOD13Q1_EVI_2000_065.tif',
                   'MOD13Q1_EVI_2000_081.tif',
                   'MOD13Q1_EVI_2000_097.tif',
                   'MOD13Q1_EVI_2000_113.tif',
                   'MOD13Q1_EVI_2000_129.tif',
                   'MOD13Q1_EVI_2000_145.tif',
                   'MOD13Q1_EVI_2000_161.tif',
                   'MOD13Q1_EVI_2000_177.tif',
                   'MOD13Q1_EVI_2000_193.tif',
                   'MOD13Q1_EVI_2000_209.tif',
                   'MOD13Q1_EVI_2000_225.tif',
                   'MOD13Q1_EVI_2000_241.tif',
                   'MOD13Q1_EVI_2000_257.tif',
                   'MOD13Q1_EVI_2000_273.tif',
                   'MOD13Q1_EVI_2000_289.tif',
                   'MOD13Q1_EVI_2000_305.tif',
                   'MOD13Q1_EVI_2000_321.tif',
                   'MOD13Q1_EVI_2000_337.tif',
                   'MOD13Q1_EVI_2000_353.tif',
                   'MOD13Q1_EVI_2001_001.tif',
                   'MOD13Q1_EVI_2001_017.tif',
                   'MOD13Q1_EVI_2001_033.tif',
                   'MOD13Q1_EVI_2001_049.tif',
                   'MOD13Q1_EVI_2001_065.tif',
                   'MOD13Q1_EVI_2001_081.tif',
                   'MOD13Q1_EVI_2001_097.tif',
                   'MOD13Q1_EVI_2001_113.tif',
                   'MOD13Q1_EVI_2001_129.tif',
                   'MOD13Q1_EVI_2001_145.tif',
                   'MOD13Q1_EVI_2001_161.tif',
                   'MOD13Q1_EVI_2001_177.tif',
                   'MOD13Q1_EVI_2001_193.tif',
                   'MOD13Q1_EVI_2001_209.tif',
                   'MOD13Q1_EVI_2001_225.tif',
                   'MOD13Q1_EVI_2001_241.tif',
                   'MOD13Q1_EVI_2001_257.tif',
                   'MOD13Q1_EVI_2001_273.tif',
                   'MOD13Q1_EVI_2001_289.tif',
                   'MOD13Q1_EVI_2001_305.tif',
                   'MOD13Q1_EVI_2001_321.tif',
                   'MOD13Q1_EVI_2001_337.tif',
                   'MOD13Q1_EVI_2001_353.tif',
                   'MOD13Q1_EVI_2002_001.tif',
                   'MOD13Q1_EVI_2002_017.tif',
                   'MOD13Q1_EVI_2002_033.tif')

EVI_path <- //path
all_EVI <- list.files(EVI_path,
                      full.names = TRUE,
                      pattern = ".tif$")

EVI_stack <- stack(all_EVI)

EVI_Brick <- brick(EVI_stack)

ndvi.time = data.frame(year=substr(basename(all_NDVI_files),13,16),
                       julD=substr(basename(all_NDVI_files),18,20))
ndvi.time$dateJ = paste(ndvi.time$year,ndvi.time$julD,sep='-')
ndvi.time$julD = parse_date_time(ndvi.time$dateJ,'y-j')

trendmap <- TrendRaster(
     EVI_stack, start=min(ndvi.time$julD), freq=23, method='AAT', breaks=4)

错误是

  

趋势图<-TrendRaster(EVI_Brick,start = min(ndvi.time $ julD),freq = 23,method ='AAT',breaks = 4)   Kendall(1:length(x),x)中的错误:length(x)<3   另外:警告消息:   处理中[-(1:nh)]-处理[1:(n-nh + 1)]:     较长的物体长度不是较短的物体长度的倍数   趋势图<-TrendRaster(EVI_stack,start = min(ndvi.time $ julD),freq = 23,method ='AAT',breaks = 4)   Kendall(1:length(x),x)中的错误:length(x)<3   另外:警告消息:   1:在.Internal(gc(verbose,reset,full))中:     关闭未使用的连接4(C:/Users/Test/AppData/Local/Temp/Rtmpkbf9IT/raster/r_tmp_2019-11-07_040206_15796_57306.gri)   2:在.Internal(gc(verbose,reset,full))中:     关闭未使用的连接3(C:\ Users \ Test \ AppData \ Local \ Temp \ Rtmpkbf9IT \ raster \ r_tmp_2019-11-07_035713_15796_14107.gri)   3:处理中[-(1:nh)]-处理[1:(n-nh + 1)]:     较长的物体长度不是较短的物体长度的倍数

我该如何解决?谢谢。

1 个答案:

答案 0 :(得分:0)

问题在于数据的大小。在运行整个研究区域的脚本的普通计算机上,会导致问题,但是这些问题只能通过提取一小部分数据来解决。