## Description

This tools sets the RGB colour values of an input LiDAR point cloud (`input`) based on the point classifications. Rendering a point cloud in this way can aid with the determination of point classification accuracy, by allowing you to determine if there are certain areas within a LiDAR tile, or certain classes, that are problematic during the point classification process.

By default, the tool renders buildings in red (see table below). However, the tool also provides the option to render each building in a unique colour (`use_unique_clrs_for_buildings`), providing a visually stunning LiDAR-based map of built-up areas. When this option is selected, the user must also specify the `radius` parameter, which determines the search distance used during the building segmentation operation. The `radius` parameter is optional, and if unspecified (when the `use_unique_clrs_for_buildings` flag is used), a value of 2.0 will be used.

The specific colours used to render each point class can optionally be set by the user with the `clr_str` parameter. The value of this parameter may list specific class values (0-18) and corresponding colour values in either a red-green-blue (RGB) colour triplet form (i.e. `(r, g, b)`), or or a hex-colour, of either form `#e6d6aa` or `0xe6d6aa` (note the `#` and `0x` prefixes used to indicate hexadecimal numbers; also either lowercase or capital letter values are acceptable). The following is an example of the a valid `clr_str` that sets the ground (class 2) and high vegetation (class 5) colours used for rendering:

`2: (184, 167, 108); 5: #9ab86c`

Notice that 1) each class is separated by a semicolon (';'), 2) class values and colour values are separated by colons (':'), and 3) either RGB and hex-colour forms are valid.

If a `clr_str` parameter is not provided, the tool will use the default colours used for each class (see table below).

Class values are assumed to follow the class designations listed in the LAS specification:

| Classification Value | Meaning | Default Colour
0 | Created never classified |
1 | Unclassified |
2 | Ground |
3 | Low Vegetation |
4 | Medium Vegetation |
5 | High Vegetation |
6 | Building |
7 | Low Point (noise) |
8 | Reserved |
9 | Water |
10 | Rail |
11 | Road Surface |
12 | Reserved |
13 | Wire – Guard (Shield) |
14 | Wire – Conductor (Phase) |
15 | Transmission Tower |
16 | Wire-structure Connector (e.g. Insulator) |
17 | Bridge Deck |
18 | High noise |

The point RGB colour values can be blended with the intensity data to create a particularly effective visualization, further enhancing the visual interpretation of point return properties. The `intensity_blending` parameter value, which must range from 0% (no intensity blending) to 100% (all intensity), is used to set the degree of intensity/RGB blending.

Because the output file contains RGB colour data, it is possible that it will be larger than the input file. If the input file does contain valid RGB data, the output will be similarly sized, but the input colour data will be replaced in the output file with the point-return colours.

The output file can be visualized using any point cloud renderer capable of displaying point RGB information. We recommend the plas.io LiDAR renderer but many similar open-source options exist.

## See Also

colourize_based_on_point_returns, lidar_colourize

## Function Signature

`def colourize_based_on_class(self, input_lidar: Optional[Lidar], intensity_blending_amount: float = 50.0, clr_str: str = "", use_unique_clrs_for_buildings: bool = False, search_radius: float = 2.0) -> Optional[Lidar]: ...`

## Project Links

WbW Homepage User Manual Support WbW