Releases: r-lidar/lidR
Releases · r-lidar/lidR
v1.6.0
lidR v1.6.0 (2018-07-20)
NEW FEATURE
- New function
tree_hulls
that computes a convex or concave hull for each segmented tree. - New option
stop_early
that enables processing of an entire catolog or stops if an error occurs. - New function
catalog_retile
supersedes the functioncatalog_reshape
and performs the same task while adding much more functionality.
ENHANCEMENTS
- When processing a
LAScatalog
, error handling has been seriouly improved. A process can now run until the end even with errors. In this case clusters with errors are skipped. - When processing a
LAScatalog
, the graphical progress now uses 3 colors. green: ok, red: error, gray: null. as.spatial()
forLAS
object preserves the CRS.- All the functions now have strong assertions to check user inputs.
plot.LAScatalog
always displays the catalog withmapview
by default even if the CRS is empty.- In
lastrees_dalponte
the matching between the seeds and the canopy is more tolerant. Rasters can have different resolution and/or extent. lasground
uses (as an option) only the last and single returns to perform the segmentation.
OTHER CHANGES
catalog()
displays a message when finding overlaps between files.- The LAScatalog class is more thoroughly documented.
- Clusters now align on (0,0) by default when processing a
LAScatalog
by cluster.
BUG FIXES
lasscanline()
did not compute the scanline because the conditional statement that checked if the field was properly populated was incorrect.- [#146] Fix matching between tree tops, raster and canopy raster.
tree_detection
when used with a point cloud was not properly coded and tended to miss some trees.- In
lasclip*
ifofile
was non empty, the function wrote properly the file but returned a non-expected error. - [#155] user supplied function was being analysed by
future
and some function were missing. User supplied function is now manually analysed. - [#156] Fix error when
lasclip
was used with aSpatialPolygonDataFrame
.
v1.5.0
lidR v1.5.0 (2018-05-13)
SIGNIFICANT CHANGES
catalog_options()
is formally deprecated. UseLAScatalog
properties instead (see?catalog
).- The package
magrittr
is no longer loaded withlidR
. Thus, piping operators are no longer usable by default. To use piping operators uselibrary(magrittr)
.
NEW FEATURES
- New
lassmooth
function. A point cloud-based smoothing function. - New
lasfiltersurfacepoints
function to filter surface points. - New
grid_catalog
function is a simplified and more powerful function likecatalog_apply
but specifically dedicated togrid_*
outputs. - New functions
lasadddata
,lasaddextrabyte
andlasaddextrabyte_manual
to add new data in aLAS
object. lasclip
can clip aSpatialPolygonsDataFrame
lasclipRectangle
andlasclipCircle
can clip multiple selections (non-documented feature).- The
treeID
computed withlastrees_*
functions can now be written in alas/laz
file by default.
OTHER CHANGES
LAScatalog
objects are processed with a single core by default.lasdecimate
is formally deprecated. Uselasfilterdecimate
grid_density
now returns both the point and the pulse density, where possible.- The option
P
is no longer set by default inreadLAS
. - The documentation of
lastrees
has been split into several pages. - When a catalog is processed using several cores, if an error is raised the process triggers an early signal to stop the loop. In previous releases the entire process was run and the error was raised at the end when the futures were evaluated.
BUG FIXES
grid_metrics(lidar, stdmetrics_i(Intensity))
returned and emptydata.table
- [#128] Fix raster data extraction using the slower and memory-greedy, but safer
raster::extract
function. - [#126] propagate the CRS in filter functions.
- [#116] Fix clash between function
area
fromlidR
and fromraster
. - [#110] Fix out-of-bounds rasterization.
v1.4.1
lidR v1.4.1 (2018-02-01)
OTHER CHANGES
- Removed examples and unit tests that imply the watershed segmentation to make CRAN check happy with the new rules relative to bioconductor packages.
NEW FEATURES
- Parameter
start
has been enabled ingrid_metrics
withcatalogs
.
v1.4.0
lidR v1.4.0 (2018-01-24)
NEW FEATURES
lasclip
andlasclip*
can extract from a catalog.lasclip
supportssp::Polygon
objects.lastrees
gains a new algorithm from Silva et al. (2016).lastrees
with the Li et al. (2012) algorithm gains a new parameter to prevent over-segmentation.- new function
lassnags
for classifying points as snag points or for segmenting snags. - new function
tree_detection
to detect individual trees. This feature has been extracted fromlastrees
's algorithms and it is now up to the users to uselidR
's algos or other input sources. plot
supports natively thePointCloudViewer
package avaible on github.
BUG FIXES
- Fix missing pixel in DTM that made normalization impossible.
- [#80] fix segfault.
- [#84] fix bug in
lasscanline
.
ENHANCEMENTS
lastrees
with the Li et al. (2012) algorithm is now 5-6 times faster and much more memory efficient.lastrees
with the Li et al. (2012) algorithm no longer sorts the original point cloud.lastrees
with the Dalponte et al (2016) algorithm is now computed in linear time and is therefore hundreds to millions times faster.catalog_reshape()
streams the data and uses virtually zero memory to run.grid_canopy()
has been rewritten entirely in C++ and is now 10 to 20 times faster both with the optionsubcircle
or without it.grid_canopy()
with the optionsubcircle
uses only 16 bytes of extra memory to run, while this feature previously required the equivalent of several copies of the point cloud (several hundreds of MB).as.raster()
is now three times faster.lasclassify
now uses a QuadTree and is therefore faster. This enables several algorithms to run faster, such aslastrees
with Silva's algo.
OTHER CHANGES
lasground
with the PMF algorithm now accepts user-defined sequences.lasground
with the PMF algorithm has simplified parameter names to make them easier to type and understand, and to prepare the package for new algorithms.lasground
documentation is more explicit about the actual algorithm used.lasground
now computes the windows size more closely in line with the original Zhang paper.lastrees
when used with raster-based methods now accepts a missing las object. In that caseextra
is turned totrue
.- new parameter
p
(for power) added to functions that enable spatial interpolation with IDW.
v1.3.1
lidR v1.3.1 (Release date: 2017-09-21)
BUG FIXES
- Fix a bug of computer precision leading to non interpolated pixels at the boundaries of the QuadTree.
v1.3.0
lidR v1.3.0 (Release date: 2017-09-16)
This version is dedicated to extending functions and processes to entire catalogs in a continuous way.
Major changes are:
- How
catalog_apply
works. More powerful but no longer compatible with previous releases - Former existing functions that now natively support a
Catalog
- Management of buffered areas
NEW FEATURES
catalog_apply
has been entirely re-designed. It is more flexible, more user-friendly and enables loading of buffered data.catalog_queries
has now an argument...
to pass any argument ofreadLAS
.catalog_queries
has now an argumentbuffer
to load extra buffered points around the region of interest.grid_metrics
accepts a catalog as input. It allows users to grid an entire catalog in a continuous way.grid_density
also inherits this new featuregrid_terrain
also inherits this new featuregrid_canopy
also inherits this new featuregrid_tincanopy
also inherits this new featuregrid_metrics
has now has an argumentfilter
for streaming filters when used with a catalog- New function
catalog_reshape
OTHER CHANGES
lasnormalize
updates the point cloud by reference and avoids making deep copies. An optioncopy = TRUE
is available for compatibility with former versions.readLAS
arguments changed. The new syntax is simpler. The previous syntax is still supported.catalog_index
is no longer an exported function. It is now an internal function.plot.Catalog
accepts the usualplot
argumentscatalog_queries
andcatalog_apply
do not expect a parametermc.cores
. This is now driven by global options incatalog_options()
.grid_metrics
andlasmetrics
do not expect a parameterdebug
. This is now driven by global options inlidr_options
.catalog
can build a catalog from a set of paths to files instead of a path to a folder.- removed
$
access to LAS attribute (incredibly slow) catalog_select
is more pleasant an more interactive to use.- S3
Catalog
class is now a S4LAScatalog
class LAS
andLAScatalog
class gain a slotcrs
automatically filled with a proj4 stringplot.LAScatalog
display a google map background if the catalog has a CRS.plot.LAScatalog
gains an argumenty
to display a either a terrain, raod, satellite map.lasarea
is deprecated. Use the more generic functionarea
BUG FIXES
- Computer precision errors lead to holes in raster computed from a Delaunay triangulation.
- Message in
writeLAS
for skipped fields when no field is skipped is now correct.
ENHANCEMENTS
grid_terrain
with delaunay allocates less memory, makes fewer deep copies and is 2 to 3 times fastergrid_terrain
with knnidw allocates less memory, makes fewer deep copies and is 2 to 3 times fasterlasnormalize
andlasclassify
no longer rely onraster::extract
but on internalfast_extract
, which is memory efficient and more than 15 times faster.catalog
enables aLAScatalog
to be built 8 times faster than previously.- removed dependencies to
RANN
package using internal k-nearest neighbor search (2 to 3 times faster)
v1.2.1
lidR v1.2.1 (Release data: 2017-06-12)
NEW FEATURES
- new function
tree_metrics
. - new function
stdtreemetrics
. grid_tincanopy()
gains a parametersubcircle
likegrid_canopy()
- new function
rumple_index
for measuring roughness of a digital model (terrain or canopy) - global options to parameterize the package - avaible with
lidr_options()
BUG FIXES
- Installation fails if package sp is missing.
- Memory leak in QuadTree algorithm. Memory is now free after QuadTree deletion.
- Dalponte's algorithm had a bug due to the use of std::abs which works with intergers. Replaced by std::fabs which works with doubles.
- In
grid_tincanopy
x > 0
was replaced byx >= 0
to avoid errors in the canopy height models - Triangle boudaries are now taken into account in the rasterization of the Delaunay triangulation
OTHER CHANGES
lastrees
Li et al. algorithm for tree segmentation is now ten to a thousand of times faster than in v1.2.0grid_terrain
, the interpolation is now done only within the convex hull of the point cloudgrid_tincanopy
makes the triangulation only for highest return per grid cell.grid_tincanopy
andgrid_terrain
using Delaunay triangulation is now ten to a hundred times faster than in v1.2.0as.raster
now relies onsp
and is more flexibleas.raster
automatically returns aRasterStack
if no layer is provided.plot.lasmetrics
inheritsas.raster
changes and can display aRasterStack
v1.2.0
lidR v1.2.0 (Release date: 2017-03-26)
NEW FEATURES
- new function
lasground
for ground segmentation. - new function
grid_tincanopy
. Canopy height model using Khosravipour et al. pit-free algorithm. - new function
grid_hexametrics
. Area-based approach in hexagonal cells. lasnormalize
allows for "non-discretized" normalization i.e interpolating each point instead of using a raster.- internally
lascheck
performs more tests to check if the header is in accordance with the data.
BUG FIXES
- [#48]
gap_fraction_profile()
bug with negative values (thanks to Florian de Boissieu) - [#49] typo error leading to the wrong metric in
stdmetric_i
- [#50] typo error leading to the wrong metric in
stdmetric
- Fix bug in
stdmetric_z
whenmax(Z) = 0
- [#54] better recomputation of the header of LAS objects.
OTHER CHANGES
- Slightly faster point classification from shapefiles.
- [#51] in
grid_terrain
, forcing the lowest point to be retained is now an optionkeep_lowest = FALSE
v1.1.0
lidR v1.1.0 (Release date: 2017-02-05)
NEW FEATURES
lastree()
for individual tree segmentationreadLAS()
gains a parameterfilter
fromrlas (>= 1.1.0)
catalog_queries()
relies onrlas (>= 1.1.0)
. It saves a lot of memory, it is 2 to 6 times faster and supports .lax files.
OTHER CHANGES
colorPalette
parameter inplot.LAS()
now expects a list of colors instead of a function. Useheight.colors(50)
instead ofheight.colors
- The header of a LAS object is now an S4 class called
LASheader
- The spatial interpolation method called
akima
is now calleddelaunay
because it corresponds to what is actually computed. - The spatial interpolation method called
akima
lost its parameterlinear
. - The spatial interpolation method called
kriging
now performs a KNN kriging. catalog_queries()
lost the parameter...
all the fields are loaded by default.- Removed
lasterrain()
which was not consistent with other functions and not useful.
BUG FIXES
- The header of LAS objects automatically updates
Number of point records
andNumber of nth return
. lasnormalize()
updates the header and returns warnings for some behaviors- #39 - interpolation with duplicated ground points
v1.0.2
Available on CRAN