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)]: 较长的物体长度不是较短的物体长度的倍数
我该如何解决?谢谢。
答案 0 :(得分:0)
问题在于数据的大小。在运行整个研究区域的脚本的普通计算机上,会导致问题,但是这些问题只能通过提取一小部分数据来解决。