0

I'm trying to learn how to use the options of catalog() within the lidR package in R. I'd like to save directly the processed files, for example, using grid_terrain() function over a catalog and save files keeping the filename of the original LAZ/LAS file.

As you can see in the guide of the package, catalog has the option of save the file using things like {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}

I'd like to save the files using the same filename, but, I don't know how to configure that part with {} in the opt_output_files() option. I tried several things like, for instance: opt_output_files(cat) <- paste0(output,"/{data$filename}") but, it doesn't work.

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)) 
JRR
  • 3,024
  • 2
  • 13
  • 37

1 Answers1

2

Found the answer in the grid_terrain help section "supported processing options":

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

This is the solution:

opt_output_files(cat) <- paste0(output,"/{ORIGINALFILENAME}")
JRR
  • 3,024
  • 2
  • 13
  • 37