plot function

Plot a LAS* object

Plot a LAS* object

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() from package 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.

plot(x, y, ...) ## S4 method for signature '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 signature 'LAScatalog,missing' plot(x, y, mapview = FALSE, chunk_pattern = FALSE, overlaps = FALSE, ...) ## S4 method for signature '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

## Not run: 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") ## End(Not run)
  • Maintainer: Jean-Romain Roussel
  • License: GPL-3
  • Last published: 2024-07-09