Reads .las or .laz files into an object of class LAS. If several files are read at
once the returned LAS object is considered as one LAS file. The optional parameters enable the user
to save a substantial amount of memory by choosing to load only the attributes or points of interest.
LAS formats 1.0 to 1.4 are supported. Point Data Record Format 0 to 10 are supported.
readLAS
is the original function and always works. Using one of the read*LAS
functions
adds information to the returned object to register a point-cloud type. Registering the correct point
type may improve the performance of some functions by enabling users to select an appropriate spatial index.
See spatial indexing. Notice that by legacy and for backwards-compatibility reasons,
readLAS()
and readALSLAS()
are equivalent because lidR was originally designed for ALS and thus the
original function readLAS()
was (supposedly) used for ALS. Reading a TLS dataset with readLAS()
instead
of readTLSLAS()
is perfectly valid and performs similarly to versions <= 3.0.0
, with neither
performance degradation nor improvements.
readLAS(files, select = "*", filter = "")readALSLAS(files, select = "*", filter = "")
readTLSLAS(files, select = "*", filter = "")
readUAVLAS(files, select = "*", filter = "")
readDAPLAS(files, select = "*", filter = "")
readMSLAS(files1, files2, files3, select = "*", filter = "")
A LAS object
characters. Path(s) to one or several a file(s). Can also be a LAScatalog object.
character. Read only attributes of interest to save memory (see details).
character. Read only points of interest to save memory (see details).
characters. Path(s) to one or several a file(s). Each argument being one channel (see section 'Multispectral data'). `files2` and `files3` can be missing.
With most recent versions of the rlas
package, full waveform (FWF) can be read and lidR
provides some compatible functions. However, the support of FWF is still a work-in-progress
in the rlas
package. How it is read, interpreted and represented in R may change. Consequently,
tools provided by lidR
may also change until the support of FWF becomes mature and
stable in rlas
. See also rlas::read.las.
Remember that FWF represents an insanely huge amount of data. It terms of memory it is like
having between 10 to 100 times more points. Consequently, loading FWF data in R should be
restricted to relatively small point clouds.
Multispectral laser data are often stored in 3 different files. If this is the case
readMSLAS
reads the .las or .laz files of each channel and merges them into
an object of class LAS and takes care of attributing an ID to each
channel. If the multisprectral point cloud is already stored in a single file
leave file2
and file3
missing.
Select: the 'select' argument specifies the data that will actually be loaded. For example,
'xyzia' means that the x, y, and z coordinates, the intensity and the scan angle will be loaded.
The supported entries are t - gpstime, a - scan angle, i - intensity, n - number of returns,
r - return number, c - classification, s - synthetic flag, k - keypoint flag, w - withheld flag,
o - overlap flag (format 6+), u - user data, p - point source ID, e - edge of flight line flag,
d - direction of scan flag, R - red channel of RGB color, G - green channel of RGB color,
B - blue channel of RGB color, N - near-infrared channel, C - scanner channel (format 6+),
W - Full waveform.
Also numbers from 1 to 9 for the extra bytes data numbers 1 to 9. 0 enables all extra bytes to be
loaded and '*' is the wildcard that enables everything to be loaded from the LAS file.
Note that x, y, z are implicit and always loaded. 'xyzia' is equivalent to 'ia'.
Filter: the 'filter' argument allows filtering of the point cloud while reading files.
This is much more efficient than filter_poi in many ways. If the desired filters are known
before reading the file, the internal filters should always be preferred. The available filters are
those from LASlib
and can be found by running the following command: readLAS(filter = "-help")
.
(see also rlas::read.las). From rlas
v1.3.6 the transformation commands
can also be passed via the argument filter.
LASfile <- system.file("extdata", "Megaplot.laz", package="lidR")
las = readLAS(LASfile)
las = readLAS(LASfile, select = "xyz")
las = readLAS(LASfile, select = "xyzi", filter = "-keep_first")
las = readLAS(LASfile, select = "xyziar", filter = "-keep_first -drop_z_below 0")
# Negation of attributes is also possible (all except intensity and angle)
las = readLAS(LASfile, select = "* -i -a")
Run the code above in your browser using DataLab