Home

Awesome

Point Cloud Extension Specification

This document explains the Point Cloud Extension to the SpatioTemporal Asset Catalog (STAC) specification. It adds fields to a STAC Item, to enable STAC to more fully describe point cloud datasets. The point clouds can come from either active or passive sensors, and data is frequently acquired using tools such as LiDAR or coincidence-matched imagery.

Item Properties

Field NameTypeDescription
pc:countintegerREQUIRED. The number of points in the Item.
pc:typestringREQUIRED. Phenomenology type for the point cloud. Possible valid values might include lidar, eopc, radar, sonar, or other
pc:schemas[Schema Object]A sequential array of Items that define the dimensions and their types.
pc:densitynumberNumber of points per square unit area.
pc:statistics[Stats Object]A sequential array of Items mapping to pc:schemas defines per-channel statistics.

Schema Object

A sequential array of Items that define the dimensions or channels of the point cloud, their types, and their sizes (in full bytes).

Field NameTypeDescription
namestringREQUIRED. The name of the dimension.
sizeintegerREQUIRED. The size of the dimension in bytes. Whole bytes only are supported.
typestringREQUIRED. Dimension type. Valid values are floating, unsigned, and signed

Stats Object

A sequential array of Items mapping to pc:schemas defines per-channel statistics. The channel name is required and at least one statistic.

Field NameTypeDescription
namestringREQUIRED. The name of the channel.
positionintegerPosition of the channel in the schema.
averagenumberThe average of the channel.
countintegerThe number of elements in the channel.
maximumnumberThe maximum value of the channel.
minimumnumberThe minimum value of the channel.
stddevnumberThe standard deviation of the channel.
variancenumberThe variance of the channel.

Contributing

All contributions are subject to the STAC Specification Code of Conduct. For contributions, please follow the STAC specification contributing guide Instructions for running tests are copied here for convenience.

Running tests

The same checks that run as checks on PR's are part of the repository and can be run locally to verify that changes are valid. To run tests locally, you'll need npm, which is a standard part of any node.js installation.

First you'll need to install everything with npm once. Just navigate to the root of this repository and on your command line run:

npm install

Then to check markdown formatting and test the examples against the JSON schema, you can run:

npm test

This will spit out the same texts that you see online, and you can then go and fix your markdown or examples.

If the tests reveal formatting problems with the examples, you can fix them with:

npm run format-examples