Read and Write 'las' and 'laz' Binary File Formats Used for
Remote Sensing Data
Read and write 'las' and 'laz' binary file formats. The LAS file format is a public file format for the interchange of 3-dimensional point cloud data between data users. The LAS specifications are approved by the American Society for Photogrammetry and Remote Sensing < https://www.asprs.org/committee-general/laser-las-file-format-exchange-activities.html>. The LAZ file format is an open and lossless compression scheme for binary LAS format versions 1.0 to 1.3 < https://www.laszip.org/>.
R package to read and write
.laz binary files used to store LiDAR data.
rlas relies on a modified version of
LASzip that were modified to be compatible with
R. The library can therefore be compiled into
R without any complaints from
R CMD check. It enables R users to read and write binary files commonly used to store LiDAR data. LAS version 1.0 to 1.4 are supported. Point data record format 0,1,2,3,6,7,8 are supported.
lasdata <- read.las("<myfile.las>")
lasheader <- read.lasheader("<myfile.las>")
rlas contains code written by both Jean-Romain Roussel and Martin Isenburg. The latter is included
for technical reasons. Details below.
rlas code enabling Martin Isenburg's code to be wrapped into R:
- (c) 2016-2018 Jean-Romain Roussel
- Provided under GPL-3 license.
rlas v1.3.2 (Release date: 2019-04-26)
- Fix: #33 it is now allowed to write
ScanAngleRank above 90 degrees but not above 127 degrees.
- Fix: #34 fix a misinterpretation of the LAS specification. Offset can be negative.
- Fix: #35 Erreur reading a specific laz file. The actual problem is unknown. This has been fixed by updating
- Fix: #36 Classification was zeroed when writing LAS1.4 prf 6. The actual problem is not known. This has been fixed by updating
ScanAngle was rounded to integer for LAS 1.4 prf >= 6 before to be written. With the 0.006 factor conversion this lead to unrelated values when reading back a written file.
header_create() does not generates random UUID. The UUID is set to
"00000000-0000-0000-0000-000000000000". Dependence to
uuid has been removed.
- Change: Dependancies to
rgeos were no longer useful.
rlas only depends on
data.table + Rcpp.
rlas v1.3.1 (Release date: 2019-02-08)
- Fix: valgrind - Conditionnal jump on uninitialized value (consequentless for users)
- Fix: valgrind - Invalid read of size 2
- Fix: USBAN-ASAN - heap-buffer-overflow on address
rlas v1.3.0 (Release date: 2019-02-03)
- New: write.las is 25% faster
- New: #27 improved support of LAS specifications including LAS 1.4.
- New: introduction of a set of 50+ functions to test compliance with LAS specifications
- New: introduction of a set of 5+ functions to modify a header easily repecting LAS specifications
- Fix: #26 segfault in
read.las when using an inappropriated filter such as -keep_class 123.
rlas v1.2.9 (Release date: 2018-10-26)
write.las writes the epsg code in the header.
rlas v1.2.6 (Release date: 2018-08-20)
check_data now check the adequation between the
las format 7 was supported at the C++ level when reading a file but an old test still throw an error at the R level stating that this format was not supported.
- fix several compilation warnings on CRAN
readlasheader were definitively removed.
rlas v1.2.4 (Release date: 2018-06-10)
- Reupload on CRAN after being removed.
rlas v1.2.3 (Release date: 2018-05-17)
- Read the classification flags in fields
- Fix: point in polygon includes the points that define the polygon.
- Fix: [#21] writing a vector that contains only NAs in extra bytes
- Fix: additional warnings on CRAN with gcc 8+
- Fix: [#19] additional errors on CRAN with valgrind
rlas v1.2.1 (Release date: 2018-04-13)
- Fix: [#18] additional errors on CRAN with ASAN and USBAN
rlas v1.2.0 (Release date: 2018-04-10)
- Enables the support of files with point data formats 6, 7 and 8 in read mode.
- Enables the support of extra bytes attributes in write mode.
- New function
read.las that replaces
readlasdata, which is now deprecated. The selection of the field to be loaded is made easier by use of string syntax instead of multiple logical parameters.
- New function
read.lasheader that replaces
readlasheader, which is now deprecated. This change was made only for naming consistency.
- New functions
header_* that allows the user to make valid headers and thus properly write the las files.
- New functions
check_* that check data integrity.
- Fix [#9] with valgrind: uninitialized value(s)
rlas v1.1.9 (Release date: 2018-01-17)
- Fix a segfault when reading extrabytes
rlas v1.1.8 (Release date: 2018-01-15)
- new straighforward C++ class
RLASstreamer to use
rlasat the C++ level.
- Support of extra bytes attributes in
- Fix some internal features that cannot be used by regular users. Does not affect users.
rlas v1.1.5 (Release date: 2017-10-23)
writelax enabled for writing LAX files.
readlasdata enabled for reading several files.
- Moved the headers in
inst/include to make the lib callable from other packages
- The las files were read twice every time.
lasdatareader is twice as fast since it reads files only once
readlasdata enables loading (or not) of the gpstime field.
rlas v1.1.4 (Release date: 2017-07-26)
- Solved the compilation issue on CRAN with clang++ and gnu++11
rlas v1.1.3 (Release date: 2017-06-09)
- Fix [#4] bug of computer precision when writing files
- Fix [#61] wrong header size for files version 1.3
- Update LASlib and LASzip
- Better integration of LASlib and LASzip in R
rlas v1.1.2 (Release date: 2017-05-04)
- Write the proper RGB colors instead of 0.
rlas v1.1.1 (Release date: 2017-03-15)
readlasdata() is able to read file when LAS specifications are not respected.
writelas performs tests on the header before entering C++ code (enable to fail with informative errors).
rlas v1.1.0 (Release date: 2017-02-04)
readlasdata() gains a parameter
filter enabling use of memory-optimized streaming filters.
readlasdata() supports .lax files for faster filter (thanks to Florian de Boissieu #2)
- All the default options for
readlasdata() are now
readlasheader() is now able to read the
Variable length record
rlas v1.0.3 (Release date: 2016-12-24)
CRAN does not build binary packages. After exchanges with prof Bryan Ripley
- Change: removed CXX_STD flag in Makevars. g++ compile whith flag -std=c++98
- Change: removed std::to_string, replaced by a macro ISO C++98
- Change: replaced formats specifiers which were ISO C++11 but not ISO C++98
- Change: added prepocessor statements to get proper path to libraries when clang++ is used with flag -stdlib=libc++
- Change: title in DESCRIPTION according to prof Bryan Ripley
- Change: description in DESCRIPTION according to prof Bryan Ripley
rlas v1.0.2 (Release date: 2016-12-23)
- Change: Manually list sources in makevars
- Change: Remove SystemRequirements field in DESCRIPTION
rlas v1.0.1 (Release date: 2016-12-22)
- Add: runnable examples in documentaion
- Add: tiny 755 bytes 'laz' file
- Change: single quoted 'las' and 'laz' in Description and Title fields in DESCRIPTION
rlas v1.0.0 (Release date: 2016-12-22)