【发布时间】:2022-02-25 14:04:54
【问题描述】:
问题: 如何格式化 Terra 包中预测函数的“const”参数?
背景和细节:
我正在使用 Terra 的预测功能从模型创建空间地图。当我为我的三个常量值创建完整的栅格时,该函数按预期工作。当我看到 predict 对常量有一个参数 'const' 时,我决定改用它。不幸的是,帮助文档没有指定如何构造数据,超出了它们应该在数据框中的结构。
来自?terra::predict的'const'的参数描述:
data.frame。可用于添加一个常量值作为预测变量,这样您就不需要为其制作 SpatRaster 图层
文档底部列出的任何示例中也没有使用该参数。
我尝试了什么:
我尝试将数据框格式化为单行,其中包含模型中所需的每个常量值的命名列。该函数接受它并发出警告:
警告信息: 1:在 data.frame(..., check.names = FALSE) : 行名是从一个短变量中找到的,已被丢弃
但这在结果输出中产生了明显不正确的值。可能只是对所有三个常量使用了第一个值,但我不知道。
我还尝试用两列格式化数据框,一列用于变量名称,另一列用于变量值。这失败并出现以下错误:
h(simpleError(msg, call)) 中的错误: 在为函数“writeRaster”选择方法时评估参数“x”时出错:参数暗示不同的行数:10000、3
10000 可能指的是栅格数据的维度 (10k x 10k),而 3 可能指的是我提供的常量数据帧中的三行。
我不想再为每个常量编写栅格,因为我要生成许多地图,并且每个地图都需要使用常量值生成 3 个 10k x 10k 栅格,这很耗时并且可能会导致内存占用问题。
任何建议将不胜感激!
【问题讨论】: