Treeclim

时间:2017-10-09 22:55:54

标签: r

我试图使用package treeclim来分析我的树木年轮生长数据和气候。我测量了CooRecorder中的宽度,将它们分组为CDENDRO系列,并使用dplR read.rwl函数将它们读入R-Studio。但是,我一直收到错误信息

  

" dcc出错(Plot92.crn,Site92PRISM,selection = -6:9,method =" response",:     计时和气候记录的重叠时间跨度小于参数数量!考虑将参数数量调整为最多100个。"

我有100年的月度气候数据,如下所示:

# head(Site92PRISM)
  year month  ppt tmax tmin tmean vpdmin..hPa. vpdmax..hPa. site
1 1915    01 0.97 26.1 12.3  19.2         0.97         2.32   92
2 1915    02 1.20 31.5 16.2  23.9         1.03         3.30   92
3 1915    03 2.51 36.0 17.0  26.5         0.97         4.69   92
4 1915    04 3.45 48.9 26.3  37.6         1.14         8.13   92
5 1915    05 3.95 44.6 29.1  36.9         0.94         5.58   92
6 1915    06 6.64 51.0 31.5  41.3         1.04         7.93   92

我在dplR中制作的年表如下所示:

#head(Plot92.crn)
        CAMstd samp.depth
1840 0.7180693          1
1841 0.3175528          1
1842 0.5729651          1
1843 0.9785082          1
1844 0.7676334          1
1845 0.3633687          1

我哪里错了?这两个文件都包含1915年至2015年的数据。

1 个答案:

答案 0 :(得分:0)

我在软件包的Google论坛(即https://groups.google.com/forum/#!forum/treeclim)中向作者发布了类似的问题。

您需要确定的是,参数数量(n_param)小于或等于树状年代学数据的样本量。 “参数数量”是指气候变量矩阵中的总列数。

例如,在以下分析中:

resp <- dcc(chrono = my_chrono,
            climate = list(precip, temp),
            boot = 'stationary')

您需要确保以下内容为TRUE

length(unique(rownames(my_chrono))) >= (ncol(precip)-1) + (ncol(temp)-1)

ncol(precip)-1而不是ncol(precip),因为矩阵的第一列是YEAR。还要注意,在我的示例中,my_chrono中的年份与preciptemp中的年份相同,而不必一定要运行该函数(它将自动普通年份)。

最后,如果上一行代码为您提供FALSE,则可以像这样使用参数selection减少参数的数量:

resp <- dcc(chrono = my_chrono,
            climate = list(precip, temp),
            selection = .range(6:12,'prec') + .range(6:12, 'temp'),
            var_names = c('prec', 'temp'),
            boot = 'stationary')

由于dcc功能会自动花费从上一个六月到当前九月的所有月份(即.range(-6:9)),因此您可能需要缩小该范围。