stac-extensions / pointcloud

Provides a way to 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.
Apache License 2.0
12 stars 3 forks source link

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 Name Type Description
pc:count integer REQUIRED. The number of points in the Item.
pc:type string REQUIRED. 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:density number Number 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 Name Type Description
name string REQUIRED. The name of the dimension.
size integer REQUIRED. The size of the dimension in bytes. Whole bytes only are supported.
type string REQUIRED. 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 Name Type Description
name string REQUIRED. The name of the channel.
position integer Position of the channel in the schema.
average number The average of the channel.
count integer The number of elements in the channel.
maximum number The maximum value of the channel.
minimum number The minimum value of the channel.
stddev number The standard deviation of the channel.
variance number The 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