Giter Site home page Giter Site logo

rao-monu / stac-api-spec Goto Github PK

View Code? Open in Web Editor NEW

This project forked from radiantearth/stac-api-spec

0.0 0.0 0.0 7.19 MB

SpatioTemporal Asset Catalog API specification - an API to make geospatial assets openly searchable and crawlable

Home Page: http://stacspec.org

License: Apache License 2.0

Shell 31.12% JavaScript 48.18% HTML 20.70%

stac-api-spec's Introduction

stac-logo

STAC API

About

The SpatioTemporal Asset Catalog (STAC) specification aims to standardize the way geospatial assets are exposed online and queried. A 'spatiotemporal asset' is any file that represents information about the earth captured in a certain space and time. The core STAC specification lives at gitub.com/radiantearth/stac-spec.

A STAC API is the dynamic version of a SpatioTemporal Asset Catalog. It returns a STAC Catalog, Collection, Item, or a STAC API ItemCollection, depending on the endpoint. Catalog and Collection objects are JSON, while Item and ItemCollection objects are GeoJSON-compliant entities with foreign members.
Typically, a Feature is used when returning a single Item object, and FeatureCollection when multiple Item objects (rather than a JSON array of Item entities).

The API can be implemented in compliance with the OGC API - Features standard (we'll use OAFeat for shorthand). In this case STAC API can be thought of as a specialized Features API to search STAC catalogs, where the features returned are STAC Item objects, that have common properties, links to their assets and geometries that represent the footprints of the geospatial assets.

The specification for STAC API is provided as files that follow the OpenAPI 3.0 specification, rendered online into HTML at https://api.stacspec.org/v1.0.0-beta.2, in addition to human-readable documentation.

Stability Note

This specification has evolved over the past couple years, and is used in production in a variety of deployments. It is currently in a 'beta' state, with no major changes anticipated. For 1.0-beta we remain fully aligned with OGC API - Features Version 1.0, and we are working to stay aligned as the additional OGC API components mature. This may result in minor changes as things evolve. The STAC API specification follows Semantic Versioning, so once 1.0.0 is reached any breaking change will require the spec to go to 2.0.0.

Communication

For any questions feel free to jump on our gitter channel or email our google group. The majority of communication about the evolution of the specification takes place in the issue tracker and in pull requests.

In this repository

The Overview document describes all the various parts of the STAC API and how they fit together.

STAC API - Core Specification: The core folder describes the core STAC API specification that enables browsing catalogs and retrieving the API capabilities. This includes the OpenAPI schemas for STAC Item, Catalog and Collection objects.

STAC API - Item Search Specification: The item-search folder contains the Item Search specification, which enables cross-collection search of STAC Item objects at a search endpoint, as well as a number of extensions.

STAC API - Features: The ogcapi-features folder describes how a STAC API can fully implement OGC API - Features to expose individual items endpoints for search of each STAC collection. It also includes extensions that can be used to further enhance OAFeat.

Extensions: The extensions document describes how STAC incubates new functionality, and it links to the existing extensions that can be added to enrich the functionality of a STAC API. Each has an OpenAPI yaml, but some of the yaml documents live as fragments in the fragments/ folder.

Fragments: The fragments/ folder contains re-usable building blocks to be used in a STAC API, including common OpenAPI schemas and parameters for behavior like sorting and filtering. Most all of them are compatible with OGC API - Features, and the plan is to fully align the relevant functionality and have it be useful for all OAFeat implementations. OpenAPI YAML documents are provided for each extension with additional documentation and examples provided in a README.

STAC Specification: This repository includes a 'sub-module', which is a copy of the STAC specification tagged at the latest stable version. Sub-modules aren't checked out by default, so to get the directory populated either use git submodule update --init --recursive if you've already cloned it, or clone from the start with git clone --recursive [email protected]:radiantearth/stac-api-spec.git.

Implementation Recommendations: Recommendations for implementing a STAC API may be found here. These are mostly concerns that apply to an entire API implementation and are not part of the specification itself.

Contributing

Anyone building software that catalogs imagery or other geospatial assets is welcome to collaborate. Beforehand, please review our guidelines for contributions and development process.

stac-api-spec's People

Contributors

m-mohr avatar cholmes avatar matthewhanson avatar philvarner avatar hgs-msmith avatar joshfix avatar mojodna avatar jbants avatar fredliporace avatar scisco avatar anayeaye avatar jeffnaus avatar davidraleigh avatar lossyrob avatar nrweir avatar aaronxsu avatar jisantuc avatar vmx avatar duckontheweb avatar hobu avatar daveluo avatar rouault avatar constantinius avatar francbartoli avatar pramukta avatar danlopez00 avatar hemphillda avatar kbgg avatar brianbancroft avatar dglesher avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.