28.1.14. Point Cloud Extraction

Note

These algorithms are only available if QGIS uses the PDAL library version 2.5.0 or newer.

28.1.14.1. Boundary

Exports a polygon file containing point cloud layer boundary. It may contain holes and it may be a multi-part polygon.

../../../../_images/point_cloud_boundary.png

Fig. 28.16 Extracting high vegetation and building polygons from an input point cloud layer

Parameters

Basic parameters

Label

Name

Type

Description

Input layer

INPUT

[point cloud]

Input point cloud layer to calculate boundary for

Resolution of cells used to calculate boundary

Optional

RESOLUTION

[number]

Resolution of cells used to calculate boundary

Minimal number of points in a cell to consider cell occupied

Optional

THRESHOLD

[number]

Minimal number of points in a cell to consider cell occupied

Boundary

OUTPUT

[vector: polygon]

Default: [Save to temporary file]

Specify the point cloud file to use as output. One of:

  • Save to a Temporary File

  • Save to File…

Advanced parameters

Label

Name

Type

Description

Filter expression

Optional

FILTER_EXPRESSION

[expression]

A PDAL expression for selecting a subset of features in the point cloud data

Cropping extent

Optional

FILTER_EXTENT

[extent]

A map extent for selecting a subset of features in the point cloud data

Available methods are:

  • Calculate from layer…: uses extent of a layer loaded in the current project

  • Calculate from layout map…: uses extent of a layout map item in the active project

  • Calculate from bookmark…: uses extent of a saved bookmark

  • Use map canvas extent

  • Draw on canvas: click and drag a rectangle delimiting the area to take into account

  • Enter the coordinates as xmin, xmax, ymin, ymax

Outputs

Label

Name

Type

Description

Boundary

OUTPUT

[vector: polygon]

Output polygon vector layer with the point cloud boundary. Currently supported format is .GPKG.

Python code

Algorithm ID: pdal:boundary

import processing
processing.run("algorithm_id", {parameter_dictionary})

The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.

28.1.14.2. Density

Exports a raster file based on the number of points within each raster cell - useful for quality checking of point cloud datasets.

../../../../_images/point_cloud_density.png

Fig. 28.17 Point density (number of points per 2x2 m) as a raster

Parameters

Basic parameters

Label

Name

Type

Description

Input layer

INPUT

[point cloud]

Input point cloud layer to export

Resolution of the density raster

RESOLUTION

[number]

Default: 1.0

Cell size of the output raster

Tile size for parallel runs

TILE_SIZE

[number]

Default: 1000

Size of the tiles to split the data into for parallel runs

Density

OUTPUT

[raster]

Default: [Save to temporary file]

Specify the raster file to export the data to. One of:

  • Save to a Temporary File

  • Save to File…

Advanced parameters

Label

Name

Type

Description

Filter expression

Optional

FILTER_EXPRESSION

[expression]

A PDAL expression for selecting a subset of features in the point cloud data

Cropping extent

Optional

FILTER_EXTENT

[extent]

A map extent for selecting a subset of features in the point cloud data

Available methods are:

  • Calculate from layer…: uses extent of a layer loaded in the current project

  • Calculate from layout map…: uses extent of a layout map item in the active project

  • Calculate from bookmark…: uses extent of a saved bookmark

  • Use map canvas extent

  • Draw on canvas: click and drag a rectangle delimiting the area to take into account

  • Enter the coordinates as xmin, xmax, ymin, ymax

X origin of a tile for parallel runs

Optional

ORIGIN_X

[number]

Y origin of a tile for parallel runs

Optional

ORIGIN_Y

[number]

Outputs

Label

Name

Type

Description

Density

OUTPUT

[raster]

Output raster layer with number of points within each cell. Currently supported format is .TIF.

Python code

Algorithm ID: pdal:density

import processing
processing.run("algorithm_id", {parameter_dictionary})

The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.

28.1.14.3. Filter

Extracts point from the input point cloud which match PDAL expression and/or are inside of a cropping rectangle.

../../../../_images/point_cloud_filter.png

Fig. 28.18 Filtering of high vegetation class from an input point cloud layer

Parameters

Label

Name

Type

Description

Input layer

INPUT

[point cloud]

Input point cloud layer to export

Filter expression

Optional

FILTER_EXPRESSION

[expression]

A PDAL expression for selecting a subset of features in the point cloud data

Cropping extent

Optional

FILTER_EXTENT

[extent]

A map extent for selecting a subset of features in the point cloud data

Available methods are:

  • Calculate from layer…: uses extent of a layer loaded in the current project

  • Calculate from layout map…: uses extent of a layout map item in the active project

  • Calculate from bookmark…: uses extent of a saved bookmark

  • Use map canvas extent

  • Draw on canvas: click and drag a rectangle delimiting the area to take into account

  • Enter the coordinates as xmin, xmax, ymin, ymax

Filtered

OUTPUT

[point cloud]

Default: [Save to temporary file]

Specify the point cloud file to export the data to. One of:

  • Save to a Temporary File

  • Save to File…

Outputs

Label

Name

Type

Description

Filtered

OUTPUT

[point cloud]

Output point cloud layer with the filtered features of the input point cloud layer. Currently supported formats are .LAS, .LAZ, .COPC.LAZ and .VPC.

Python code

Algorithm ID: pdal:filter

import processing
processing.run("algorithm_id", {parameter_dictionary})

The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.