Learn R Programming

lidR (version 4.1.0)

plot: Plot a LAS* object

Description

Plot displays a 3D interactive windows based on rgl for LAS objects

Plot displays an interactive view for LAScatalog objects with pan and zoom capabilities based on mapview. If the coordinate reference system (CRS) of the LAScatalog is non empty, the plot can be displayed on top of base maps (satellite data, elevation, street, and so on).

Plot displays a LASheader object exactly like it displays a LAScatalog object.

Usage

plot(x, y, ...)

# S4 method for LAS,missing plot( x, y, ..., color = "Z", pal = "auto", bg = "black", breaks = "pretty", nbreaks = "auto", backend = "rgl", clear_artifacts = TRUE, axis = FALSE, legend = FALSE, add = FALSE, voxel = FALSE, NAcol = "lightgray", mapview = FALSE )

# S4 method for LAScatalog,missing plot(x, y, mapview = FALSE, chunk_pattern = FALSE, overlaps = FALSE, ...)

# S4 method for LASheader,missing plot(x, y, mapview = FALSE, ...)

height.colors(n)

forest.colors(n)

random.colors(n)

pastel.colors(n)

Arguments

x

A LAS* object

y

Unused (inherited from R base)

...

Will be passed to points3d (LAS) or plot if mapview = FALSE or to mapview if mapview = TRUE (LAScatalog).

color

characters. The attribute used to color the point cloud. Default is Z coordinates. RGB is an allowed string even if it refers to three attributes simultaneously.

pal

palette function, similar to heat.colors, or palette values. Default is "auto" providing an automatic coloring depending on the attribute color

bg

The color for the background. Default is black.

breaks

either a numeric vector with the actual breaks, or a name of a method accepted by the style argument of classIntervals

nbreaks

Number of colors breaks.

backend

character. Can be "rgl" or "lidRviewer". If "rgl" is chosen the display relies on the rgl package. If "lidRviewer" is chosen it relies on the lidRviewer package, which is much more efficient and can handle million of points using less memory. lidRviewer is not available on CRAN yet and should be installed from github (see. https://github.com/Jean-Romain/lidRviewer).

clear_artifacts

logical. It is a known and documented issue that the 3D visualisation with rgl displays artifacts. The points look aligned and/or regularly spaced in some view angles. This is because rgl computes with single precision float. To fix that the point cloud is shifted to (0,0) to reduce the number of digits needed to represent its coordinates. The drawback is that the point cloud is not plotted at its actual coordinates.

axis

logical. Display axis on XYZ coordinates.

legend

logical. Display a gradient colour legend.

add

If FALSE normal behaviour otherwise must be the output of a prior plot function to enable the alignment of a second point cloud.

voxel

boolean or numeric. Displays voxels instead of points. Useful to render the output of voxelize_points, for example. However it is computationally demanding to render and can easily take 15 seconds for 10000 voxels. It should be reserved for small scenes. If boolean the voxel resolution is guessed automatically. Otherwise users can provide the size of the voxels. To reduce the rendering time, an internal optimization removes voxels that are not visible when surrounded by other voxels.

NAcol

a color for NA values.

mapview

logical. If FALSE the catalog is displayed in a regular plot from R base. Since v4.0.4 `mapview = TRUE` is also possible with LAS objects.

chunk_pattern

logical. Display the current chunk pattern used to process the catalog.

overlaps

logical. Highlight the overlaps between files.

n

The number of colors (> 1) to be in the palette

Examples

Run this code
if (FALSE) {
LASfile <- system.file("extdata", "MixedConifer.laz", package="lidR")
las <- readLAS(LASfile)

plot(las)
plot(las, color = "Intensity")
plot(las, color = "ScanAngleRank", pal = rainbow)

# If outliers break the color range, use the breaks parameter
las$Intensity[150] <- 1000L
plot(las, color = "Intensity")
plot(las, color = "Intensity", breaks = "quantile", nbreaks = 50)

plot(las, color = "Classification")

# This dataset is already tree segmented
plot(las, color = "treeID")
plot(las, color = "treeID", pal = random.colors)


# single file LAScatalog using data provided in lidR
ctg = readLAScatalog(LASfile)
plot(ctg)
plot(ctg, map = T, map.types = "Esri.WorldImagery")
}

Run the code above in your browser using DataLab