A source that reads from a remote Cloud Optimized Point Cloud (COPC) LAS file.

LAZ decompression is done in background threads using workers. If you wish to disable workers (for a noticeable cost in performance), you can set COPCSourceOptions.enableWorkers to false in constructor options.

Note: this source uses the laz-perf package to perform decoding of point cloud data. This package uses WebAssembly. If you wish to override the path to the required .wasm file, use setLazPerfPath() before using this source. The default path is DEFAULT_LAZPERF_PATH.

This source supports decimation. By passing the COPCSourceOptions.decimate argument to a value other than 1, every Nth point will be kept and other points will be discarded during read operations.

This source supports filtering over dimensions (also known as attributes) to eliminate points during reads. For example, it is possible to remove unwanted classifications such as noise from the output points.

Note that dimension filtering is independent from the selected attribute. In other words, it is possible to select the dimension "Intensity", while filtering on dimensions "Classification" and "ReturnNumber" for example.

For example, if we wish to remove all points that have the dimension "High noise" (dimension 18 in the ASPRS classification list), as well as removing all points whose intensity is lower than 1000:

const source = new COPCSource(...);

source.filters = [
{ dimension: 'Classification', operator: 'not', value: 18 },
{ dimension: 'Intensity', operator: 'greaterequal', value: 1000 },
];

Hierarchy (view full)

Constructors

Properties

id: string = ...

An auto-generated UUID used internally to create unique keys for various purposes.

isCOPCSource: true = ...

Readonly flag to indicate that this object is a COPCSource.

isMemoryUsage: true = ...

Readonly flag to indicate that his object implements MemoryUsage.

isPointCloudSource: true = ...

Read-only flag to indicate that this object is a PointCloudSource.

type: "COPCSource" = 'COPCSource'

Accessors

  • get loading(): boolean
  • Gets whether the object is currently performing an asynchronous operation.

    Returns boolean

  • get progress(): number
  • Returns the percentage of progress, in normalized value (i.e in the [0, 1] range), of the asynchronous operations that are scheduled to run on this object. 1 means that all operations have finished.

    Returns number

Methods