0

我正在尝试学习如何在 R 中的 lidR 包中使用 catalog() 的选项。我想直接保存处理过的文件,例如,在目录上使用 grid_terrain() 函数并保存保持文件名的文件原始 LAZ/LAS 文件。

正如您在包指南中看到的那样,目录可以选择使用 {XBOTTOM}_{ID} 之类的内容保存文件:

# Internal engine will not return results into R. Instead it will write results in files.
opt_output_files(ctg) <- "/path/to/folder/templated_filename_{XBOTTOM}_{ID}

我想使用相同的文件名保存文件,但是,我不知道如何在 opt_output_files() 选项中使用 {} 配置该部分。我尝试了几件事,例如:opt_output_files(cat) <- paste0(output,"/{data$filename}")但是,它不起作用。

lasdir <- "C:/lazfiles"
output <- "C:/output"

cat <- catalog(lasdir)
lasfiles <- cat@data$filename #with this you can see the filenames
opt_progress(cat) <- TRUE
opt_output_files(cat) <- paste0(output,"/{data$filename}")
opt_cores(cat) <- 3
opt_chunk_buffer(cat) <- 20

#function that I want to use over the catalog files
mdt <- grid_terrain(cat, res = 5, algorithm = "knnidw"(k = 5, p = 2)) 
4

1 回答 1

1

grid_terrain在帮助部分“支持的处理选项”中找到了答案:

output_files:返回 R 中的输出或将每个集群的输出写入文件。支持的模板是 ...、ORIGINALFILENAME。

这是解决方案:

opt_output_files(cat) <- paste0(output,"/{ORIGINALFILENAME}")
于 2019-03-06T12:23:39.130 回答