如何配置 lidR 目录以使用文件名保存文件

How to configure lidR catalog to save files with file name

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

如您在 guide of the package 中所见,目录可以选择使用 {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)) 

grid_terrain 帮助部分找到答案 "supported processing options":

output_files: Return the output in R or write each cluster’s output in a file. Supported templates are ... , ORIGINALFILENAME.

这是解决方案:

opt_output_files(cat) <- paste0(output,"/{ORIGINALFILENAME}")