Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Item example and readme #31

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 44 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
# Template Extension Specification
# COCOJSON Extension Specification

- **Title:** Template
- **Identifier:** <https://stac-extensions.github.io/template/v1.0.0/schema.json>
- **Field Name Prefix:** template
- **Scope:** Item, Collection
- **Title:** COCOJSON
- **Identifier:** <https://stac-extensions.github.io/cocojson/v1.0.0/schema.json>
- **Field Name Prefix:** coco
- **Scope:** Item
- **Extension [Maturity Classification](https://github.com/radiantearth/stac-spec/tree/master/extensions/README.md#extension-maturity):** Proposal
- **Owner**: @your-gh-handles @person2
- **Owner**: @jamesfisher-geo

This document explains the Template Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC) specification.
This is the place to add a short introduction.
This document explains the COCOJSON Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC) specification.

The COCOJSON format (Common Objects in Context JSON) is a standardized format used to represent object annotations along with metadata including
segmentations masks, pixel bounding boxes, and annotation categories commonly used in computer vision. This extension integrates the standarized
COCOJSON fields into the STAC Item spec, enabling a practitioner to embed COCOJSON annotations within STAC Items.

- Examples:
- [Item example](examples/item.json): Shows the basic usage of the extension in a STAC Item
Expand All @@ -21,41 +24,59 @@ This is the place to add a short introduction.
The fields in the table below can be used in these parts of STAC documents:

- [ ] Catalogs
- [x] Collections
- [ ] Collections
- [x] Item Properties (incl. Summaries in Collections)
- [x] Assets (for both Collections and Items, incl. Item Asset Definitions in Collections)
- [ ] Assets (for both Collections and Items, incl. Item Asset Definitions in Collections)
- [ ] Links

| Field Name | Type | Description |
| -------------------- | ------------------------- | -------------------------------------------- |
| template:new_field | string | **REQUIRED**. Describe the required field... |
| template:xyz | [XYZ Object](#xyz-object) | Describe the field... |
| template:another_one | \[number] | Describe the field... |
| coco:licenses | \[[License Object](#license-object)\] | **REQUIRED**. Describe the required field... |
| coco:categories | \[[Category Object](#category-object)\] | Describe the field... |
| coco:annotations | \[[Annotation Object](#annotation-object)\] | Describe the field... |

### Additional Field Information

#### template:new_field

This is a much more detailed description of the field `template:new_field`...

### XYZ Object
### License Object

This is the introduction for the purpose and the content of the XYZ Object...

| Field Name | Type | Description |
| ---------- | ------ | -------------------------------------------- |
| `id` | number | **REQUIRED**. Integer ID of the license |
| `name` | string | **REQUIRED**. License name |
| `url` | string | **REQUIRED**. URL to the license text |

### Category Object

This is the introduction for the purpose and the content of the XYZ Object...

| Field Name | Type | Description |
| ---------- | ------ | -------------------------------------------- |
| x | number | **REQUIRED**. Describe the required field... |
| y | number | **REQUIRED**. Describe the required field... |
| z | number | **REQUIRED**. Describe the required field... |
| `id` | number | **REQUIRED**. Integer ID of the category |
| `name` | string | **REQUIRED**. Name of the category (e.g. 'cat') |
| `supercategory` | string | **REQUIRED**. General category (e.g. 'animal') |
<!-- | `keypoints` | /[string/] | List of names which keypoint coordinates represent |
| `skeleton` | /[/[number, number/]/] | **REQUIRED**. Describe the required field... | -->

## Relation types
### Annotation Object

The following types should be used as applicable `rel` types in the
[Link Object](https://github.com/radiantearth/stac-spec/tree/master/item-spec/item-spec.md#link-object).
This is the introduction for the purpose and the content of the XYZ Object...

| Type | Description |
| -------------- | ------------------------------------- |
| fancy-rel-type | This link points to a fancy resource. |
| Field Name | Type | Description |
| ---------- | ------ | -------------------------------------------- |
| `id ` | number | **REQUIRED**. Integer ID of the annotation |
| `image_id` | number | **REQUIRED**. Integer ID of the associated images from the 'coco:images' field |
| `category_id` | number | **REQUIRED**. Integer ID of the associated category from the 'coco:categories' field |
| `bbox` | /[number/] | **REQUIRED**. Bounding box of the annotation in pixel coordinates |
| `segmentation` | /[/[number, number/]/] | Segmentation mask of the annotation as a list of image coordinates |
| `area` | number | The area of the segmentation mask in pixels |
| `iscrowd` | bool | Tag indicating if the segmentation mask is of a single object or many objects in an image |
| `score` | number | Score 0 - 1.0 indicating the annotation confidence level |

## Contributing

Expand Down
22 changes: 4 additions & 18 deletions examples/collection.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{
"stac_version": "1.0.0",
"stac_extensions": [
"https://stac-extensions.github.io/item-assets/v1.0.0/schema.json",
"https://stac-extensions.github.io/template/v1.0.0/schema.json"
"https://stac-extensions.github.io/item-assets/v1.0.0/schema.json"
],
"type": "Collection",
"id": "collection",
Expand All @@ -29,29 +28,16 @@
]
}
},
"template:new_field": "test",
"template:xyz": {
"x": 1,
"y": 2,
"z": 3
},
"template:another_one": [
1,
2,
3
],
"assets": {
"example": {
"href": "https://example.com/examples/file.xyz",
"template:new_field": "test"
"href": "https://example.com/examples/file.xyz"
}
},
"item_assets": {
"data": {
"roles": [
"data"
],
"template:new_field": "test"
]
}
},
"summaries": {
Expand All @@ -70,4 +56,4 @@
"rel": "item"
}
]
}
}
55 changes: 44 additions & 11 deletions examples/item.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,49 @@
},
"properties": {
"datetime": "2020-12-11T22:38:32Z",
"template:new_field": "test",
"template:xyz": {
"x": 1,
"y": 2,
"z": 3
},
"template:another_one": [
1,
2,
3
"coco:license": [
{
"id": 1,
"name": "MIT License",
"url": "https://link/to/license/text"
}
],
"coco:categories": [
{
"id": 1,
"name": "locomotive",
"supercategory": "train cars"
}
],
"coco:annotations": [
{
"id": 1,
"image_id": 1,
"category_id": 1,
"bbox": [
260,
177,
231,
199
],
"segmentation": [
[
260,
177
],
[
261,
178
],
[
262,
179
]
],
"area": 45969,
"iscrowd": 0,
"score": 0.75
}
]
},
"links": [
Expand All @@ -64,4 +97,4 @@
"template:new_field": "test"
}
}
}
}
Loading