lasclip
andlasclip*
can extract from a cataloglasclip
supportssp::Polygon
objectslastrees
gain a new algorithm from Silva et al. (2016).lastrees
with Li's algorithm gain a new paramter to prevent over-segmentation.- new function
lassnags
for classifying points as snag points or 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.
- Fix missing pixel in DTM leading to the impossibility to normalize.
- [#80] fix segfault
- [#84] fix bug in
lasscanline
lastrees
with Li et al. (2012) algorithm is 5-6 times faster and much memory efficient.lastrees
with Li et al. (2012) algorithm does not sort the original point cloud anymore.lastrees
with Dalponte et al (2016) algorithm is now computed in a linear time and is therefore hundreds to millons times fastercatalog_reshape()
stream the data and use virtually 0 memory to run.grid_canopy()
has been rewritten enterly in C++ and is 10 to 20 times faster both with the optionsubcircle
or notgrid_canopy()
with the optionsubcircle
uses only 16 bytes of extra memory to be ran while this feature previously requiered the equivalent of several copies of the point cloud (several hundreds of MB).as.raster()
is three times faster.lasclassify
use now a QuadTree and is therfore faster. This enable to speed up several algorithm such aslastrees
with Silva's algo
lasground
with PMF algorithm changed the parameter names for something easier to type and to understand and to prepare the package to get new algorithms.lasground
documentation is more explicit on the actual algorithm used.lasground
computes the windows size more closely to the orinal Zhang paper.
- Fix a bug of computer precision leading to non interpolated pixels at the boundaries of the QuadTree.
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
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
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
- 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.
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)
- 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 - available with
lidr_options()
- 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 integers. 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
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
- 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.
- [#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.
- Slightly faster point classification from shapefiles.
- [#51] in
grid_terrain
, forcing the lowest point to be retained is now an optionkeep_lowest = FALSE
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, is 2 to 6 times faster and supports .lax files.
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 object called
LASheader
- The spatial interpolation method
akima
is now calleddelaunay
because it corresponds to what is actually computed. - The spatial interpolation method
akima
lost its parameterlinear
. - The spatial interpolation method
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.
- 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
Third submission
- Change: explain LiDAR in the Description - requested by Kurt Hornik.
Second submission - rejected
- Change: split the package in two parts. 'lidR' relies on 'rlas' to read binary files.
First submission - rejected