Skip to content

Commit 45abb5c

Browse files
committed
Review
1 parent b5be09c commit 45abb5c

File tree

5 files changed

+156
-79
lines changed

5 files changed

+156
-79
lines changed

.github/remark.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ plugins:
2828
- 70
2929
- - remark-lint-heading-style
3030
- atx
31+
- - remark-lint-no-shortcut-reference-link
32+
- false
3133
# Lists
3234
- remark-lint-list-item-bullet-indent
3335
- remark-lint-ordered-list-marker-style

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Changelog
2+
All notable changes to this project will be documented in this file.
3+
4+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6+
7+
## [Unreleased]
8+
9+
### Added
10+
11+
### Changed
12+
13+
### Deprecated
14+
15+
### Removed
16+
17+
### Fixed
18+
19+
[Unreleased]: <https://github.com/stac-extensions/template/compare/v1.0.0...HEAD>

README.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
1-
# Point Cloud Extension
1+
# Point Cloud Extension Specification
22

33
- **Title:** Point Cloud
44
- **Identifier:** <https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json>
55
- **Field Name Prefix:** pc
66
- **Scope:** Item, Collection
77
- **Extension [Maturity Classification](https://github.com/radiantearth/stac-spec/tree/master/extensions/README.md#extension-maturity):** Proposal
88
- **Owner**: @matthewhanson
9-
- **History**: [Prior to March 2nd, 2021](https://github.com/radiantearth/stac-spec/tree/3a83d75aec7f16ae597ee9779777a97e83ff46a4/extensions/pointcloud)
9+
- **History**: [Prior to March 2, 2021](https://github.com/radiantearth/stac-spec/commits/v1.0.0-rc.1/extensions/pointcloud)
1010

11-
This document explains the Point Cloud Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC)
12-
specification. It adds fields to a STAC Item, to enable STAC to more fully describe point cloud datasets. The
13-
point clouds can come from either active or passive sensors, and data is frequently acquired using tools such as LiDAR or coincidence-matched imagery.
11+
This document explains the Point Cloud Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec)
12+
(STAC) specification. It adds fields to a STAC Item, to enable STAC to more fully describe point cloud datasets.
13+
The point clouds can come from either active or passive sensors, and data is frequently acquired using tools such as
14+
LiDAR or coincidence-matched imagery.
1415

1516
- Examples:
1617
- [Example](examples/example-autzen.json)
18+
- [PDAL to STAC Python script](pdal-to-stac.py)
1719
- [JSON Schema](json-schema/schema.json)
20+
- [Changelog](./CHANGELOG.md)
1821

19-
## Item Properties fields
22+
## Item Properties
2023

2124
| Field Name | Type | Description |
2225
| ------------- | --------------------------------- | ----------- |
@@ -52,7 +55,3 @@ A sequential array of Items mapping to `pc:schemas` defines per-channel statisti
5255
| minimum | number | The minimum value of the channel. |
5356
| stddev | number | The standard deviation of the channel. |
5457
| variance | number | The variance of the channel. |
55-
56-
## Implementations
57-
58-
None yet, still in proposal stage.

examples/example-autzen.json

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
{
2-
"stac_version": "1.0.0-beta.2",
2+
"stac_version": "1.0.0-rc.1",
33
"stac_extensions": [
4-
"https://stac-extensions.github.io/file/v1.0.0/schema.json"
4+
"https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json"
55
],
6-
"assets": {},
6+
"assets": {
7+
"data": {
8+
"href": "https://example.com/data/autzen/autzen-full.laz",
9+
"role": [
10+
"data"
11+
]
12+
}
13+
},
714
"bbox": [
815
-123.0755422,
916
44.04971882,
@@ -42,7 +49,7 @@
4249
"id": "autzen-full.laz",
4350
"links": [
4451
{
45-
"href": "/Users/hobu/dev/git/pdal/test/data/autzen/autzen-full.laz",
52+
"href": "https://example.com/data/autzen/example-autzen.json",
4653
"rel": "self"
4754
}
4855
],

json-schema/schema.json

Lines changed: 115 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,139 @@
11
{
22
"$schema": "http://json-schema.org/draft-07/schema#",
3-
"$id": "https://stac-extensions.github.io/file/v1.0.0/schema.json#",
3+
"$id": "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json#",
44
"title": "Point Cloud Extension",
5-
"description": "STAC Point Cloud Extension to a STAC Item",
6-
"allOf": [
5+
"description": "STAC Point Cloud Extension for STAC Items and STAC Collections.",
6+
"oneOf": [
77
{
8-
"$ref": "#/definitions/item_type"
8+
"$comment": "This is the schema for STAC Items.",
9+
"allOf": [
10+
{
11+
"type": "object",
12+
"required": [
13+
"type",
14+
"properties",
15+
"assets"
16+
],
17+
"properties": {
18+
"type": {
19+
"const": "Feature"
20+
},
21+
"properties": {
22+
"allOf": [
23+
{
24+
"$comment": "Require fields here for item properties.",
25+
"required": [
26+
"pc:count",
27+
"pc:type",
28+
"pc:encoding",
29+
"pc:schemas"
30+
]
31+
},
32+
{
33+
"$ref": "#/definitions/fields"
34+
}
35+
]
36+
},
37+
"assets": {
38+
"type": "object",
39+
"additionalProperties": {
40+
"$ref": "#/definitions/fields"
41+
}
42+
}
43+
}
44+
},
45+
{
46+
"$ref": "#/definitions/stac_extensions"
47+
}
48+
]
949
},
1050
{
11-
"$ref": "#/definitions/pointcloud"
51+
"$comment": "This is the schema for STAC Collections.",
52+
"allOf": [
53+
{
54+
"type": "object",
55+
"required": [
56+
"type"
57+
],
58+
"properties": {
59+
"type": {
60+
"const": "Collection"
61+
},
62+
"assets": {
63+
"type": "object",
64+
"additionalProperties": {
65+
"$ref": "#/definitions/fields"
66+
}
67+
},
68+
"item_assets": {
69+
"type": "object",
70+
"additionalProperties": {
71+
"$ref": "#/definitions/fields"
72+
}
73+
}
74+
}
75+
},
76+
{
77+
"$comment": "Remove this and the following object if this is not an extension to a Collection.",
78+
"$ref": "#/definitions/stac_extensions"
79+
},
80+
{
81+
"$ref": "#/definitions/fields"
82+
}
83+
]
1284
}
1385
],
1486
"definitions": {
15-
"item_type": {
87+
"stac_extensions": {
1688
"type": "object",
1789
"required": [
18-
"type"
90+
"stac_extensions"
1991
],
2092
"properties": {
21-
"type": {
22-
"type": "string",
23-
"const": "Feature"
93+
"stac_extensions": {
94+
"type": "array",
95+
"contains": {
96+
"const": "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json"
97+
}
2498
}
2599
}
26100
},
27-
"pointcloud": {
101+
"fields": {
28102
"type": "object",
29-
"required": [
30-
"stac_extensions",
31-
"properties"
32-
],
33103
"properties": {
34-
"stac_extensions": {
35-
"type": "array",
36-
"contains": {
37-
"enum": [
38-
"pointcloud",
39-
"https://schemas.stacspec.org/v1.0.0-beta.2/extensions/pointcloud/json-schema/schema.json"
40-
]
41-
}
104+
"pc:count": {
105+
"type": "integer",
106+
"minimum": 0
42107
},
43-
"properties": {
44-
"type": "object",
45-
"required": [
46-
"pc:count",
47-
"pc:type",
48-
"pc:encoding",
49-
"pc:schemas"
50-
],
51-
"properties": {
52-
"pc:count": {
53-
"type": "integer",
54-
"minimum": 0
55-
},
56-
"pc:type": {
57-
"type": "string"
58-
},
59-
"pc:encoding": {
60-
"type": "string"
61-
},
62-
"pc:schemas": {
63-
"type": "array",
64-
"minItems": 1,
65-
"items": {
66-
"$ref": "#/definitions/schema"
67-
}
68-
},
69-
"pc:density": {
70-
"type": "number",
71-
"minimum": 0
72-
},
73-
"pc:statistics": {
74-
"type": "array",
75-
"minItems": 1,
76-
"items": {
77-
"$ref": "#/definitions/stats"
78-
}
79-
}
108+
"pc:type": {
109+
"type": "string"
110+
},
111+
"pc:encoding": {
112+
"type": "string"
113+
},
114+
"pc:schemas": {
115+
"type": "array",
116+
"minItems": 1,
117+
"items": {
118+
"$ref": "#/definitions/schema"
80119
}
81120
},
82-
"patternProperties": {
83-
"^(?!pc:)": {}
121+
"pc:density": {
122+
"type": "number",
123+
"minimum": 0
84124
},
85-
"additionalProperties": false
86-
}
125+
"pc:statistics": {
126+
"type": "array",
127+
"minItems": 1,
128+
"items": {
129+
"$ref": "#/definitions/stats"
130+
}
131+
}
132+
},
133+
"patternProperties": {
134+
"^(?!pc:)": {}
135+
},
136+
"additionalProperties": false
87137
},
88138
"schema": {
89139
"type": "object",
@@ -143,4 +193,4 @@
143193
}
144194
}
145195
}
146-
}
196+
}

0 commit comments

Comments
 (0)