NEWS


arbor 1.1.3

arbor 1.1.2

arbor 1.1.1

F- ix: CRS assignment with st_crs()<- was not returning objects with qsm and qsf classes

arbor 1.1.0

NEW FEATURES

  1. segment_instance() now detects and fixes over-segmentation, i.e. single trees split across two or more tree IDs. This occurs occasionally for large trees and especially often for buttress trees. The module is enabled by default and can be turned off with:

    arbor_parameters_default$instance$oversegmentation_solver_enabled = FALSE
    

    If disabled at segmentation time, it can still be run afterwards, e.g. in post-processing, on an already segmented point cloud, with:

    las <- resolve_oversegmentation(las)
    
  2. qsf_write() can now merge an entire forest into a single combined mesh file. Documentation for qsf_write() now explains, format by format, how well individual trees stay distinguishable when several QSMs are combined into one mesh file.

    qsf_write(qsf, "forest.obj")
    
  3. New QSF file format. When writing QSMs to .qsm files, qsf_write() now also creates a .qsf file that indexes all the .qsm files. A QSF can be reloaded with qsf_read() by reading the .qsf index file.

    qsf_write(qsf, "forest.qsf")
    qsf <- qsf_read("forest.qsf")
    
  4. qsf_log() has been redesigned. It is easier to read, and easier to manipulate.

  5. New function qsf_filter() with user-friendly wrappers that allow to filter QSMs in the QSF object by log types, by DBH, by height. E.g. :

    qsf_filter_ok(qsf)       # trees with no log entry at all
    qsf_filter_sapling(qsf)  # saplings according to arbor's definition
    qsf_filter_flagged(qsf)  # trees with at least one log entry, any kind
    qsf_filter_warnings(qsf) # trees carrying at least one warning
    qsf_filter_broken()      # automatically detected as broken trees.
    # [...] and more
    
  6. qsf_tree() produces a more comprehensive output.

ENHANCES

  1. find_seeds() no longer throw the error "No circle detected in wood slices", No shape detection is no longer an issue.

BUG FIXES

  1. Fix #15: Prevent QSM generation failure on non-constructible skeletons by defaulting to a zero-volume placeholder edge.

  2. Fix: QSM messages were not written in .qsm files. They are now recorded properly.

  3. Fix: qsf() was not propagating the CRS from the point cloud to the QSMs + fix various attribution and access to QSM and QSF CRS with st_crs().

DOCUMENTATION

  1. Added details about tree excluded by qsf() in the manual page and the arbor's book

  2. New book section about the new over-fitting solver

  3. New book section about the qsf log analysis

  4. New book section about the qsm flowchart

arbor 1.0.0

Public release