Container for Envelope data (bounding box), x and y min and max and an optional spatial reference
Field | Type | Label | Description |
xmin | double | min x value |
|
ymin | double | min y value |
|
xmax | double | max x value |
|
ymax | double | max y value |
|
proj | ProjectionData | spatial reference of envelope |
|
zmin | double |
|
|
zmax | double |
|
Field | Type | Label | Description |
nested_request | GeometryRequest |
|
|
result_encoding_type | Encoding |
|
|
input_proj | ProjectionData |
|
|
result_proj | ProjectionData |
|
|
data | bytes |
|
|
size | int64 |
|
|
offset | int64 |
|
|
file_name | string |
|
|
is_last_chunk | bool |
|
Field | Type | Label | Description |
az12 | double | Azimuth from the first to the second point |
|
az21 | double | Azimuth from the second to the first point |
|
distance | double | Geodesic distance |
Container for Geometry data, has id, encoded geometry coordinates and shape, spatial reference and envelope
Field | Type | Label | Description |
geometry_id | uint64 | geometry id as an integer |
|
feature_id | string | feature id as a string (for guids and other ids that aren't numeric) |
|
wkt | string | well known text format for geometry encoding, https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry |
|
geojson | string | geojson format for geometry encoding, https://en.wikipedia.org/wiki/GeoJSON |
|
wkb | bytes | well known binary format for geometry encoding, https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary |
|
esri_shape | bytes | ESRI shape binary format for geometry encoding (fastest decoding and encoding for geometry service) https://www.esri.com/library/whitepapers/pdfs/shapefile.pdf |
|
ewkb | bytes | extended well known binary format |
|
proj | ProjectionData | spatial reference of geometry |
|
envelope | EnvelopeData | envelope or bounding box of geometry |
|
simple | SimpleState | state of the geometry topological correctness. at geometry creation, it is unknown if it is simple |
response message for insertion and updates to stac db
Field | Type | Label | Description |
geometry | GeometryData | geometry to be operated on |
|
left_geometry | GeometryData | if there are two geometries to operate on, then this is the first geometry |
|
geometry_request | GeometryRequest | the result of the geometry request is to be operated on by this request |
|
left_geometry_request | GeometryRequest | if there are two geometries, the left geometry request is to be operated on by this request |
|
right_geometry | GeometryData | if there are two geometries to operate on, then this is the second geometry |
|
right_geometry_request | GeometryRequest | if there are two geometries, the right geometry request is to be operated on by this request |
|
operator | OperatorType | (default is PROJECT) geometry operation to perform on input geometries |
|
result_encoding | Encoding | (default is wkb) encoding, wkt, wkb, esri_shape, etc |
|
operation_proj | ProjectionData | (optional) the spatial reference the geometric operation should take place in. If both inputs are in different spatial references, you can use this to define a common reference system for the geometric operation. |
|
result_proj | ProjectionData | (optional) after the operation has been completed, project the results to a new spatial reference. |
|
buffer_params | Params.Buffer |
|
|
convex_params | Params.Convex |
|
|
relate_params | Params.Relate |
|
|
random_points_params | Params.RandomPoints |
|
|
generalize_params | Params.Generalize |
|
|
intersection_params | Params.Intersection |
|
|
offset_params | Params.Offset |
|
|
cut_params | Params.Cut |
|
|
clip_params | Params.Clip |
|
|
densify_params | Params.Densify |
|
|
simplify_params | Params.Simplify |
|
|
generalize_by_area_params | Params.GeneralizeByArea |
|
|
affine_transform_params | Params.AffineTransform |
|
|
geodetic_buffer_params | Params.GeodeticBuffer |
|
response message geometry request
Field | Type | Label | Description |
geometry | GeometryData | if geometry result, then this field holds the geometry data |
|
spatial_relationship | bool | if a topo spatial relationship request, then this field holds the true or false result |
|
measure | double | a measure result will be a float for area and length requests |
|
geodetic_inverse | GeodeticInverse |
|
|
relate_map | GeometryResponse.RelateMapEntry | repeated |
|
Field | Type | Label | Description |
key | int64 |
|
|
value | bool |
|
Field | Type | Label | Description |
geodetic | bool |
|
|
x_offset | double |
|
|
y_offset | double |
|
oneof https://github.com/golang/protobuf/issues/283
oneof densifier {
Field | Type | Label | Description |
distance | double |
|
|
max_deviation | double |
|
|
union_result | bool | oneof https://github.com/golang/protobuf/issues/283 } |
|
max_vertices_in_full_circle | int32 |
|
Field | Type | Label | Description |
envelope | EnvelopeData |
|
Field | Type | Label | Description |
merge | bool |
|
Field | Type | Label | Description |
consider_touch | bool |
|
Field | Type | Label | Description |
max_length | double |
|
Field | Type | Label | Description |
max_deviation | double |
|
|
remove_degenerates | bool |
|
Field | Type | Label | Description |
percent_reduction | double | oneof https://github.com/golang/protobuf/issues/283 oneof method { |
|
max_point_count | int32 |
|
|
remove_degenerates | bool |
|
oneof https://github.com/golang/protobuf/issues/283
oneof densifier {
Field | Type | Label | Description |
distance | double |
|
|
max_deviation | double |
|
|
union_result | bool | oneof https://github.com/golang/protobuf/issues/283 } |
|
max_vertices_in_full_circle | int32 |
|
Field | Type | Label | Description |
dimension_mask | int32 |
|
Field | Type | Label | Description |
distance | double |
|
|
join_type | Params.Offset.OffsetJoinType |
|
|
bevel_ratio | double |
|
|
flatten_error | double |
|
Field | Type | Label | Description |
points_per_square_km | double |
|
|
seed | int64 |
|
Field | Type | Label | Description |
de_9im | string |
|
Field | Type | Label | Description |
force | bool |
|
Spatial Reference system. Used with a geometry to define the reference system of the geometry's coordinates
Field | Type | Label | Description |
epsg | int32 | epsg wkid (well know id), or srid (spatial reference id) of the projected or geographic coordinate system |
|
proj4 | string | proj string describing a projection or geographic coordinate system https://proj4.org/usage/projections.html |
|
custom | ProjectionData.Custom | custom projection |
|
wkt | string | well-known text string of spatial reference esri wkid (if not yet approved by epsg) |
|
geometry | GeometryData |
|
|
bbox | EnvelopeData |
|
|
centroid | GeometryData |
|
|
shape | uint32 | repeated |
|
transform | double | repeated |
|
Projected coordinate system that doesn't have a wkid / srid
Field | Type | Label | Description |
lon_0 | double | longitude of center of projection (central meridian) |
|
lat_0 | double | latitude of center of projection (latitude of origin) |
|
cs_type | ProjectionData.CSType | enum defining the type of projection |
type of geometry encodings
Name | Number | Description |
UNKNOWN_ENCODING | 0 | unknown type. |
WKB | 1 | well-known binary |
WKT | 2 | well-known text |
GEOJSON | 3 | geojson |
ESRI_SHAPE | 4 | esri shape binary |
EWKB | 5 | extended well-known binary |
Name | Number | Description |
SHAPEFILE | 0 |
type of geometry operators
Name | Number | Description |
UNKNOWN_OPERATOR | 0 | |
PROJECT | 1 | project geometry |
EXPORT_TO_JSON | 2 | |
IMPORT_FROM_JSON | 3 | |
EXPORT_TO_ESRI_SHAPE | 4 | |
IMPORT_FROM_ESRI_SHAPE | 5 | |
UNION | 6 | union one or more geometries |
DIFFERENCE | 7 | difference two geometries |
PROXIMITY_2D | 8 | |
RELATE | 9 | |
EQUALS | 10 | |
DISJOINT | 11 | |
INTERSECTS | 12 | |
WITHIN | 13 | |
CONTAINS | 14 | |
CROSSES | 15 | |
TOUCHES | 16 | |
OVERLAPS | 17 | |
BUFFER | 18 | |
DISTANCE | 19 | |
INTERSECTION | 20 | |
CLIP | 21 | |
CUT | 22 | |
DENSIFY_BY_LENGTH | 23 | |
GEODESIC_BUFFER | 26 | |
GEODETIC_DENSIFY_BY_LENGTH | 27 | |
GEODETIC_AREA | 30 | |
SIMPLIFY | 31 | |
SIMPLIFY_OGC | 32 | |
OFFSET | 33 | |
GENERALIZE | 34 | |
GENERALIZE_BY_AREA | 35 | |
EXPORT_TO_WKB | 36 | |
IMPORT_FROM_WKB | 37 | |
EXPORT_TO_WKT | 38 | |
IMPORT_FROM_WKT | 39 | |
IMPORT_FROM_GEOJSON | 40 | |
EXPORT_TO_GEOJSON | 41 | |
SYMMETRIC_DIFFERENCE | 42 | |
CONVEX_HULL | 43 | |
BOUNDARY | 44 | |
RANDOM_POINTS | 45 | |
ENCLOSING_CIRCLE | 46 | |
AFFINE_TRANSFORM | 47 | |
GEODETIC_LENGTH | 48 | |
GEODETIC_INVERSE | 49 | |
EXPORT_TO_EWKB | 50 | |
IMPORT_FROM_EWKB | 51 |
Name | Number | Description |
ROUND | 0 | |
BEVEL | 1 | |
MITER | 2 | |
SQUARE | 3 |
Projection names
Name | Number | Description |
LAMBERT_AZI | 0 | default is Lambert Azimuthal Equal Area Projection, with x origin x_0=4321000 and y origin y_0=3210000 |
the state of a geometry topological correctness
Name | Number | Description |
SIMPLE_UNKNOWN | 0 | on creation, after projection and after generalization a geometry has state simple unknown (not know if simple or not) |
WEAK_SIMPLE | 1 | weak simple (no self intersections, ring orientation is correct, but ring order is not) |
STRONG_SIMPLE | 2 | same as weak simple + OGC ring order. |
NON_SIMPLE | 3 | is_simple method has been run on the geometry and it is known to be non-simple, but the reason is unknown |
STRUCTURE_FLAW | 4 | non-simple, because the structure is bad (0 size path, for example). |
DEGENERATE_SEGMENTS | 5 | Non-simple, because there are degenerate segments. |
CLUSTERING | 6 | Non-simple, because not clustered properly, that is there are non-coincident vertices closer than tolerance. |
CRACKING | 7 | Non-simple, because not cracked properly (intersecting segments, overlaping segments) |
CROSS_OVER | 8 | Non-simple, because there are crossovers (self intersections that are not cracking case). |
RING_ORIENTATION | 9 | Non-simple, because holes or exteriors have wrong orientation. /** * The geometry is simple, but not strong-simple, because exteriors * and holes are not in the correct order, and separation into sub polygons is not possible. * Geometry needs to be resimplified with the bForceTest = true to fix this. */ RingOrder, /** * There is a self tangency or cross-over situation (strong simple, but not OGC simple) * Only OperatorSimplifyOGC returns this. */ OGCPolylineSelfTangency, /** * There is a self tangency situation (strong simple, but not OGC simple) * Only OperatorSimplifyOGC returns this. */ OGCPolygonSelfTangency, /** * Touching interioir rings make a disconnected point set from polygon interior * (strong simple, but not OGC simple). * Only OperatorSimplifyOGC returns this. */ OGCDisconnectedInterior |
gRPC Interfaces for working with geometry operators
Method Name | Request Type | Response Type | Description |
Operate | GeometryRequest | GeometryResponse | Execute a single blocking geometry operation |
OperateBiStream | GeometryRequest stream | GeometryResponse stream | stream in operator requests and get back a stream of results |
OperateBiStreamFlow | GeometryRequest stream | GeometryResponse stream | manual flow control bi-directional stream. example go shouldn't use this because of https://groups.google.com/forum/#!topic/grpc-io/6_B46Oszb4k ? |
OperateServerStream | GeometryRequest | GeometryResponse stream | Maybe a cut operation that returns a lot of different geometries? for now, this is not implemented. |
OperateClientStream | GeometryRequest stream | GeometryResponse | Maybe something like a union operation. for now, this is not implemented. |
FileOperateBiStreamFlow | FileRequestChunk stream | GeometryResponse stream | stream in file chunks for a geometry file type and stream back results for each geometry encountered |
Field | Type | Label | Description |
rel_type | FilterRelationship | relationship type of the query. EQ, LTE, GTE, LT, GT, NEQ for `value` BETWEEN or NOT_BETWEEN for `start` with `end` IN or NOT_IN for use with `set` |
|
value | double | Singular double value that, combined with rel_type, allows you to search for floats that relate to this `value`. `value` field cannot be combined with BETWEEN or the NOT_BETWEEN FilterRelationship `rel_type`. That means you can use the EQ, LTE, GTE, LT, GT, NEQ FilterRelationship `rel_type` |
|
start | double | For searching by a range. `start` with BETWEEN searches for everything in the range from `start` to `end` `start` with NOT_BETWEEN searches for everything not in the range from `start` and `end`. must be accompanied by a `end` value |
|
end | double | For searching by a range. `end` with BETWEEN searches for everything in the range from `start` to `end` `end` with NOT_BETWEEN searches for everything not in the range from `start` and `end`. must be accompanied by a `start` value |
|
sort_direction | SortDirection | sort direction for the return values |
|
set | double | repeated | 'IN' or 'NOT IN' sql operations |
Query language for float fields.
Field | Type | Label | Description |
rel_type | FilterRelationship | relationship type of the query. EQ, LTE, GTE, LT, GT, NEQ for `value` BETWEEN or NOT_BETWEEN for `start` with `end` IN or NOT_IN for use with `set` |
|
value | float | Singular float value that, combined with rel_type, allows you to search for floats that relate to this `value`. `value` field cannot be combined with BETWEEN or the NOT_BETWEEN FilterRelationship `rel_type`. That means you can use the EQ, LTE, GTE, LT, GT, NEQ FilterRelationship `rel_type` |
|
start | float | For searching by a range. `start` with BETWEEN searches for everything in the range from `start` to `end` `start` with NOT_BETWEEN searches for everything not in the range from `start` and `end`. must be accompanied by a `end` value |
|
end | float | For searching by a range. `end` with BETWEEN searches for everything in the range from `start` to `end` `end` with NOT_BETWEEN searches for everything not in the range from `start` and `end`. must be accompanied by a `start` value |
|
sort_direction | SortDirection | sort direction for the return values |
|
set | float | repeated | 'IN' or 'NOT IN' sql operations |
Field | Type | Label | Description |
value | string | for use with EQ, NEQ, LIKE and NOT_LIKE |
|
rel_type | FilterRelationship | relationship type of the query. EQ, NEQ for `value` IN or NOT_IN for use with `set` LIKE or NOT_LIKE test if the string in `value` matches or does not match the supplied pattern |
|
set | string | repeated | For use with 'IN' or 'NOT IN' sql operations |
Field | Type | Label | Description |
rel_type | FilterRelationship | relationship type of the query. EQ, LTE, GTE, LT, GT, NEQ for `value` BETWEEN or NOT_BETWEEN for `start` with `end` |
|
value | google.protobuf.Timestamp | Singular Timestamp value that, combined with rel_type, allows you to search for floats that relate to this `value`. `value` field cannot be combined with BETWEEN or the NOT_BETWEEN FilterRelationship `rel_type`. That means you can use the EQ, LTE, GTE, LT, GT, NEQ FilterRelationship `rel_type` |
|
start | google.protobuf.Timestamp | For searching by a range. `start` with BETWEEN searches for everything in the range from `start` to `end` `start` with NOT_BETWEEN searches for everything not in the range from `start` and `end`. must be accompanied by a `end` value |
|
end | google.protobuf.Timestamp | For searching by a range. `end` with BETWEEN searches for everything in the range from `start` to `end` `end` with NOT_BETWEEN searches for everything not in the range from `start` and `end`. must be accompanied by a `start` value |
|
sort_direction | SortDirection | sort direction for the return values |
Field | Type | Label | Description |
rel_type | FilterRelationship | relationship type of the query. EQ, LTE, GTE, LT, GT, NEQ for `value` BETWEEN or NOT_BETWEEN for `start` with `end` IN or NOT_IN for use with `set` |
|
value | uint32 | Singular unint32 value that, combined with rel_type, allows you to search for floats that relate to this `value`. `value` field cannot be combined with BETWEEN or the NOT_BETWEEN FilterRelationship `rel_type`. That means you can use the EQ, LTE, GTE, LT, GT, NEQ FilterRelationship `rel_type` |
|
start | uint32 | For searching by a range. `start` with BETWEEN searches for everything in the range from `start` to `end` `start` with NOT_BETWEEN searches for everything not in the range from `start` and `end`. must be accompanied by a `end` value |
|
end | uint32 | For searching by a range. `end` with BETWEEN searches for everything in the range from `start` to `end` `end` with NOT_BETWEEN searches for everything not in the range from `start` and `end`. must be accompanied by a `start` value |
|
sort_direction | SortDirection | sort direction for the return values |
|
set | uint32 | repeated | 'IN' or 'NOT IN' sql operations |
Default Value is equals, `EQ`, so if you don't set rel_type, it is assumed you mean equals.
Name | Number | Description |
EQ | 0 | for use with `value` field. return anything equaling the `value` |
LTE | 2 | for use with `value` field. return anything less than or equal to the `value` |
GTE | 4 | for use with `value` field. return anything greater than or equal to the `value` |
LT | 8 | for use with `value` field. return anything less than the `value` |
GT | 16 | for use with `value` field. return anything greater than the `value` |
BETWEEN | 32 | for use with `start` and `end`. return anything between `start` and `end` |
NOT_BETWEEN | 64 | for use with `start` and `end`. return anything not between `start` and `end` |
NEQ | 128 | for use with `value` field. return everything not equal to the `value1 |
IN | 256 | for use with with `set` field |
NOT_IN | 512 | for use with `set` field |
LIKE | 1024 | for use with `value` and StringField |
NOT_LIKE | 2048 | for use with `value` and StringField |
Not currently in use
Name | Number | Description |
NOT_SORTED | 0 | |
DESC | 1 | |
ASC | 2 |
message for an asset of a STAC item.
Field | Type | Label | Description |
href | string | href for downloading item |
|
type | string | asset type |
|
eo_bands | Eo.Band | band(s) of data in asset. https://github.com/radiantearth/stac-spec/blob/612ee4fb4f979c049d2416e7f5374a5301b8a277/extensions/eo/README.md |
|
asset_type | AssetType | enum for asset type |
|
cloud_platform | CloudPlatform | cloud platform enum (Google cloud, Azure, etc) |
|
bucket_manager | string | manager of the bucket |
|
bucket_region | string | bucket region. useful when concerned about egress |
|
bucket | string | bucket name |
|
object_path | string | path to the object in the bucket |
|
requester_pays | bool | requester_pays pertains to egress cost. Some buckets are hosted with the egress costs assigned to the requester. some hosts pay the regress costs for the requester. |
Field | Type | Label | Description |
stac_version | string | REQUIRED. The STAC version the Collection implements. STAC versions can be mixed, but please keep the recommended best practices in mind. |
|
id | string | REQUIRED. Identifier for the collection that is unique across the provider. |
|
title | string | A short descriptive one-line title for the collection. |
|
description | string | REQUIRED. Detailed multi-line description to fully explain the collection. CommonMark 0.29 syntax MAY be used for rich text representation. |
|
keywords | string | repeated | List of keywords describing the collection. |
license | string | REQUIRED. Collection's license(s), either a SPDX License identifier, various if multiple licenses apply or proprietary for all other cases. |
|
providers | Provider | repeated | A list of providers, which may include all organizations capturing or processing the data or the hosting provider. Providers should be listed in chronological order with the most recent provider being the last element of the list. |
extent | Extent | REQUIRED. Spatial and temporal extents. |
|
summaries | Collection.SummariesEntry | repeated | A map of property summaries, either a set of values or statistics such as a range. |
is_static | bool | Flag denoting that this collection is static (i.e. it's footprint will not change). |
Field | Type | Label | Description |
key | string |
|
|
value | Stats |
|
Field | Type | Label | Description |
id | string |
|
|
bbox | EnvelopeData |
|
|
intersects | GeometryData |
|
Field | Type | Label | Description |
start | google.protobuf.Timestamp |
|
|
end | google.protobuf.Timestamp |
|
message for electro-optical details of STAC items.
Field | Type | Label | Description |
cloud_cover | google.protobuf.FloatValue | percent cloud cover. 0 no clouds, 100 completely covered |
|
bands | Eo.Band | band or bands represented in data. If multiple bands, then use a bitwise operator |
sub message request for specifying electro-optical details in STAC request
Field | Type | Label | Description |
cloud_cover | FloatFilter | data with a cloud_cover equal to or in the range specified in cloud_cover |
|
bands | Eo.Band | data that possesses the bands specified in bands |
The object describes the spatio-temporal extents of the Collection. Both spatial and temporal extents are required to be specified.
Field | Type | Label | Description |
spatial | EnvelopeData | repeated | REQUIRED. Potential spatial extent covered by the collection. |
temporal | Interval | repeated | REQUIRED. Potential temporal extent covered by the collection. |
footprint | GeometryData | REQUIRED. Current footprint. |
https://github.com/radiantearth/stac-spec/blob/master/collection-spec/collection-spec.md#temporal-extent-object
The object describes the temporal extents of the Collection.
Field | Type | Label | Description |
start | google.protobuf.Timestamp |
|
|
end | google.protobuf.Timestamp |
|
https://landsat.usgs.gov/stac/landsat-extension/schema.json
Field | Type | Label | Description |
scene_id | string | id of scene should be id of STAC item, but there may be a use case where someone does not want that |
|
product_id | string |
|
|
processing_level | Landsat.ProcessingLevel |
|
|
wrs_path | int32 |
|
|
wrs_row | int32 |
|
|
cloud_cover_land | google.protobuf.FloatValue |
|
|
wrs_type | Landsat.WRSType |
|
Field | Type | Label | Description |
scene_id | string |
|
|
product_id | string |
|
|
processing_level | Landsat.ProcessingLevel |
|
|
wrs_path | int32 |
|
|
wrs_row | int32 |
|
|
cloud_cover_land | FloatFilter |
|
Experimental
Field | Type | Label | Description |
name | string | experimental name of the mosaic this item is a member of |
|
quad_key | string | experimental the quad_key of this specific item |
|
zooms | int32 | repeated | experimental an array of the zooms contained within the asset(s) |
observation_range | DatetimeRange | deprecated |
|
provenance_ids | string | repeated | experimental scene provenance. ordered list of STAC item ids that contribute to the mosaic. The 0th STAC item in provenance_ids is the front-most contributor to the mosaic, the last STAC item in bottom contributor and is likely to be partially covered by other contributing scenes |
Experimental
Field | Type | Label | Description |
name | string | experimental mosaic to search for |
|
quad_key | string | experimental quad_key to search by |
The object provides information about a provider. A provider is any of the organizations that captures or processes the content of the collection and therefore influences the data offered by this collection. May also include information about the final storage provider hosting the data.
Field | Type | Label | Description |
name | string | REQUIRED. The name of the organization or the individual. |
|
description | string | Multi-line description to add further provider information such as processing details for processors and producers, hosting details for hosts or basic contact information. CommonMark 0.29 syntax MAY be used for rich text representation. |
|
roles | string | repeated | Roles of the provider. Any of licensor, producer, processor or host. |
url | string | Homepage on which the provider describes the dataset and publishes contact information. |
place holder for SAR
Field | Type | Label | Description |
platform | Sar.Platform |
|
Field | Type | Label | Description |
relative_orbit | google.protobuf.UInt32Value | The relative orbit number at the time of acquisition. |
|
orbit_state | Sat.OrbitState | The state of the orbit. Either ascending or descending for polar orbiting satellites, or geostationary for geosynchronous satellites |
Field | Type | Label | Description |
relative_orbit | uint32 | The relative orbit number at the time of acquisition. |
|
orbit_state | Sat.OrbitState | The state of the orbit. Either ascending or descending for polar orbiting satellites, or geostationary for geosynchronous satellites |
response message for insertion and updates to STAC db
Field | Type | Label | Description |
status | string |
|
|
status_code | int32 |
|
|
data_id | string |
|
|
count | uint64 |
|
Spatio-Temporal Asset Catalog Item. This data item has a spatial and temporal extent. It has a unique identifier
downloadable assets. It may have an extension with details beyond the spatial and temporal extents. It may have
additional properties in the properties field
Field | Type | Label | Description |
id | string | Provider identifier. As most geospatial assets are already defined by some identification scheme by the data provider it is recommended to simply use that ID. Data providers are advised to include sufficient information to make their IDs globally unique, including things like unique satellite IDs. |
|
title | string | (optional) A human readable title describing the item. |
|
collection | string | (optional) The id of the STAC Collection this Item references to (see collection relation type below). This field is required if such a relation type is present. This field provides an easy way for a user to search for any Items that belong in a specified Collection. |
|
properties | google.protobuf.Any | the properties of an item that are not defined within the STAC specification. Requires marshalling and un-marshalling https://developers.google.com/protocol-buffers/docs/proto3#any |
|
assets | StacItem.AssetsEntry | repeated | Dictionary of asset objects that can be downloaded, each with a unique key. Some pre-defined keys are listed in the chapter 'Asset types'. |
geometry | GeometryData | the spatial shape of the item. must have a spatial reference defined. |
|
bbox | EnvelopeData | the bounding box of the spatial shape of the item. must have a spatial reference defined. |
|
datetime | google.protobuf.Timestamp | deprecated |
|
start_datetime | google.protobuf.Timestamp | deprecated |
|
observed | google.protobuf.Timestamp | timestamp at which data was observed (optional if datetime set) |
|
start_observation | google.protobuf.Timestamp | start timestamp for a period of observation |
|
end_datetime | google.protobuf.Timestamp | deprecated |
|
end_observation | google.protobuf.Timestamp | end timestamp for a period of observation |
|
created | google.protobuf.Timestamp | timestamp when it was created (according to STAC spec this applies to metadata only, but in our case we haven't implemented the asset level created date yet, so we don't have a differentiation yet between metadata creation and asset creation. used to be `processed`) |
|
updated | google.protobuf.Timestamp | last timestamp when STAC metadata itself was updated |
|
proj | ProjectionData | spatial reference of the assets (if assets have different projections, those can be assigned on the assets and any not defined default to this projection) |
|
platform_enum | Platform | platform from which the data was collected |
|
platform | string | platform from which the data was collected |
|
instrument_enum | Instrument | instrument which collected the data |
|
instrument | string | instrument which collected the data |
|
constellation_enum | Constellation | constellation of data collectors |
|
constellation | string |
|
|
mission_enum | Mission |
|
|
mission | string |
|
|
gsd | google.protobuf.FloatValue | ground sampling distance |
|
stac_version | string | version of JSON STAC that this protobuf attempts to match |
|
stac_pb_version | string | version of protobuf STAC |
|
stac_extensions | string | repeated | STAC |
eo | Eo | electro-optical data message |
|
view | View | view of the asset, includes all relevant angular information |
|
landsat | Landsat | Landsat Message |
|
mosaic | Mosaic |
|
Field | Type | Label | Description |
key | string |
|
|
value | Asset |
|
message for making a request for STAC items.
Field | Type | Label | Description |
limit | uint32 | limit the number of results returned |
|
offset | uint64 | the offset from which the query should start |
|
id | string | if id matches, return the one matching STAC item |
|
id_complex | StringFilter | more complex id search. allows for searching by pattern or by IN or NOT_IN sets |
|
collection | string |
|
|
properties | google.protobuf.Any | search by properties specified by user using a request object known by user and the Any marshalling pattern |
|
intersects | GeometryData | search by the spatial extent as defined by geometry |
|
bbox | EnvelopeData | search by the spatial extent as defined by the envelope bounds |
|
geometry_request | GeometryRequest | search by a geometry request. this sends a geometry operator to a geometry service, and the returned geometry is in turn used as the spatial extent |
|
datetime | TimestampFilter | search for the datetime that matched by bounds defined by the exact timestamp or a range of timestamp |
|
observed | TimestampFilter | search for the moment the data was observed by bounds defined by the exact timestamp or a range of timestamp |
|
created | TimestampFilter | search for the moment the asset data was created by bounds defined by the exact timestamp or a range of timestamp |
|
updated | TimestampFilter | search for the moment the STAC item metadata was updated by bounds defined by the exact timestamp or a range of timestamp |
|
proj | ProjectionData | spatial reference. (currently only supports epsg field) |
|
platform_enum | Platform | only data from the platform specified |
|
instrument_enum | Instrument | only data from the instrument specified |
|
constellation_enum | Constellation | only data from the constellation specified |
|
mission_enum | Mission |
|
|
gsd | FloatFilter | data with a gsd equal to or in the range specified in gsd |
|
eo | EoRequest | use certain electro-optical search parameters in your query |
|
view | ViewRequest |
|
|
landsat | LandsatRequest |
|
|
mosaic | MosaicRequest |
|
Field | Type | Label | Description |
off_nadir | google.protobuf.FloatValue | Viewing angle. The angle from the sensor between nadir (straight down) and the scene center. Measured in degrees (0-90). |
|
incidence_angle | google.protobuf.FloatValue | The incidence angle is the angle between the vertical (normal) to the intercepting surface and the line of sight back to the satellite at the scene center. Measured in degrees (0-90). |
|
azimuth | google.protobuf.FloatValue | The angle measured from the sub-sensor point (point on the ground below the platform) between the scene center and true north. Measured clockwise from north in degrees (0-360). |
|
sun_azimuth | google.protobuf.FloatValue | Sun azimuth angle. From the scene center point on the ground, this is the angle between truth north and the sun. Measured clockwise in degrees (0-360). |
|
sun_elevation | google.protobuf.FloatValue | Sun elevation angle. The angle from the tangent of the scene center point to the sun. Measured from the horizon in degrees (0-90). |
Field | Type | Label | Description |
off_nadir | FloatFilter | data with a off_nadir equal to or in the range specified in off_nadir |
|
incidence_angle | FloatFilter | data with a incidence equal to or in the range specified in incidence |
|
azimuth | FloatFilter | data with a azimuth equal to or in the range specified in azimuth |
|
sun_azimuth | FloatFilter | data with a sun_azimuth equal to or in the range specified in sun_azimuth |
|
sun_elevation | FloatFilter | data with a sun_elevation equal to or in the range specified in sun_elevation |
Name | Number | Description |
UNKNOWN_ASSET | 0 | |
JPEG | 1 | |
GEOTIFF | 2 | geotiff https://www.gdal.org/frmt_gtiff.html |
LERC | 3 | Limited Error Raster Compression |
MRF | 4 | metadata raster file https://github.com/nasa-gibs/mrf/blob/master/spec/mrf_spec.md#mrf-metadata-file-mrf |
MRF_IDX | 5 | metadata raster file index https://github.com/nasa-gibs/mrf/blob/master/spec/mrf_spec.md#mrf-index-file-idx |
MRF_XML | 6 | |
CO_GEOTIFF | 7 | cloud optimized geotiff https://www.cogeo.org/ |
RAW | 8 | Generic raw data |
THUMBNAIL | 9 | thumbnail. could be jpg or png |
TIFF | 10 | |
JPEG_2000 | 11 | |
XML | 12 | |
TXT | 13 | |
PNG | 14 | |
OVERVIEW | 15 | GDAL overview file https://gdal.org/programs/gdaladdo.html |
JSON | 16 | |
HTML | 17 | |
WEBP | 18 |
Name | Number | Description |
UNKNOWN_CLOUD_PLATFORM | 0 | |
AWS | 1 | Amazon Web Services |
GCP | 2 | Google Cloud Platform |
AZURE | 3 | Microsoft's Azure |
IBM | 4 | IBM |
Name | Number | Description |
UNKNOWN_CONSTELLATION | 0 |
Name | Number | Description |
UNKNOWN_BAND | 0 | band type not specified. default value. if used in query, any band type is acceptable |
COASTAL | 2 | |
BLUE | 4 | |
GREEN | 8 | |
RED | 16 | |
RGB | 28 | |
NIR | 32 | |
NIR_2 | 33 | special case for landsat 1-3 |
RGBIR | 60 | |
SWIR_1 | 64 | |
SWIR_2 | 128 | |
PAN | 256 | |
CIRRUS | 512 | |
LWIR_1 | 1024 | |
LWIR_2 | 2048 |
Name | Number | Description |
UNKNOWN_INSTRUMENT | 0 | |
OLI | 2 | |
TIRS | 4 | |
OLI_TIRS | 6 | |
POM_1 | 8 | near space labs instrument 1 |
TM | 16 | |
ETM | 32 | |
MSS | 64 | |
POM_2 | 128 | near space labs instrument 2 |
Name | Number | Description |
UNKNOWN_COLLECTION_CATEGORY | 0 | |
A1 | 1 | |
A2 | 2 | |
T1 | 3 | |
T2 | 4 | |
RT | 5 |
Name | Number | Description |
UNKNOWN_PROCESSING_LEVEL | 0 | |
L1G | 1 | |
L1TP | 2 | |
L1T | 3 | |
L1GT | 4 | |
L1GS | 5 |
Name | Number | Description |
UKNOWN_WRS | 0 | |
WRS1 | 1 | |
WRS2 | 2 |
Name | Number | Description |
UNKNOWN_MISSION | 0 | |
LANDSAT | 2 | |
NAIP | 4 | |
PNOA | 8 | spanish aerial dataset |
SWIFT | 16 | near space labs dataset |
Name | Number | Description |
UNKNOWN_PLATFORM | 0 | |
LANDSAT_1 | 2 | |
LANDSAT_2 | 4 | |
LANDSAT_3 | 8 | |
LANDSAT_123 | 14 | |
LANDSAT_4 | 16 | |
LANDSAT_5 | 32 | |
LANDSAT_45 | 48 | |
LANDSAT_7 | 64 | |
LANDSAT_8 | 128 | |
SWIFT_2 | 256 | near space labs platform |
SWIFT_3 | 512 |
Name | Number | Description |
UNKNOWN_INSTRUMENT | 0 |
Name | Number | Description |
UNKNOWN_PLATFORM | 0 | |
ENVISAT | 1 | |
SENTINEL_1A | 2 |
Name | Number | Description |
UKNOWN_ORBIT_STATE | 0 | |
ASCENDING_ORBIT | 1 | |
DESCENDING_ORBIT | 2 | |
GEOSTATIONARY_ORBIT | 3 |
gRPC Interfaces for working with stac metadata
Method Name | Request Type | Response Type | Description |
SearchItems | StacRequest | StacItem stream | using a search request, stream all the results that match the search filter |
InsertItems | StacItem stream | StacDbResponse stream | insert a stream of items into the STAC service |
UpdateItems | StacItem stream | StacDbResponse stream | update a stream of items in the STAC service |
CountItems | StacRequest | StacDbResponse | count all the items in the Stac service according to the StacRequest filter |
DeleteOneItem | StacItem | StacDbResponse | delete an item from the STAC service |
SearchOneItem | StacRequest | StacItem | using a search request get the first item that matches the request |
InsertOneItem | StacItem | StacDbResponse | Insert one item into the STAC service |
UpdateOneItem | StacItem | StacDbResponse | Update one item in the STAC service |
SearchCollections | CollectionRequest | Collection stream | Search existing Collections |
InsertOneCollection | Collection | StacDbResponse | Create a new Collection |
UpdateCollection | Collection | StacDbResponse | Update an existing Collection's metadata and/or footprint |
.proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
double | double | double | float | float64 | double | float | Float | |
float | float | float | float | float32 | float | float | Float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |