Giter VIP home page Giter VIP logo

stac-spec's Introduction

stac-logo

CircleCI

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 initial focus is primarily remotely-sensed imagery (from satellites, but also planes, drones, balloons, etc), but the core is designed to be extensible to SAR, full motion video, point clouds, hyperspectral, LiDAR and derived data like NDVI, Digital Elevation Models, mosaics, etc.

The goal is for all major providers of imagery and other earth observation data to expose their data as SpatioTemporal Asset Catalogs, so that new code doesn't need to be written whenever a new JSON-based REST API comes out that makes its data available in a slightly different way. This will enable standard library components in many languages. STAC can also be implemented in a completely 'static' manner, enabling data publishers to expose their data by simply publishing linked JSON files online.

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, so implementors can expect that most things will stay fairly stable. So at this point we don't anticipate any major changes, but reserve the right to make them if we get feedback that something just doesn't work. Which is to say the next couple months are a great time to implement STAC, as your changes will be head. After 1.0 our goal is to not change the core in any backwards incompatible way for a very long time, if ever, so that people can build on this until JSON is no longer relevant. The STAC specification follows Semantic Versioning, so once 1.0.0 is reached any breaking change will require the spec to go to 2.0.0.

Current version and branches

The master branch is the 'stable' version of the spec. It is currently version 1.0.0-beta.2 of the specification. The dev branch is where active development takes place, and may have inconsistent examples. Whenever dev stabilizes a release is cut and we merge dev in to master. So master should be stable at any given time. It is possible that there may be small releases in quick succession, especially if they are nice improvements that do not require lots of updating. More information on how the STAC development process works can be found in process.md.

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

This repository contains the core specifications plus examples and validation schemas. Also included are a few documents that provide more context and plans for the evolution of the specification. Each spec folder contains a README explaining the layout of the folder, the main specification document, examples, and validating schemas. And there is one more specification in the STAC 'family', which is the STAC API specification, now living in its own repository. It provides API endpoints, based on the OGC API - Features standard, that enable clients to search for items that match their filtering criteria. The four specifications are meant to be used together, but are designed so each piece is small, self-contained and reusable in other contexts.

The Overview describes the three core specifications and how they relate to one another.

The Item Specification defines a STAC Item, which is a GeoJSON Feature with additional fields for things like time, links to related entities and assets (including thumbnails). This is the atomic unit that describes the data to be discovered.

The Catalog Specification specifies a structure to link various STAC Items together to be crawled or browsed. It is a simple, flexible JSON file of links to Items, Catalogs or Collections that can be used in a variety of ways.

The Collection Specification provides additional information about a spatio-temporal collection of data. In the context of STAC it is most likely a collection of STAC Items that is made available by a data provider. It includes things like the spatial and temporal extent of the data, the license, keywords, etc. It enables discovery at a higher level than individual items, providing a simple way to describe sets of data.

Extensions: The extensions/ folder is where extensions live. Extensions can extend the functionality of the core spec or add fields for specific domains.

Additional documents: The supporting documents include a complementary best practices document, and information on contributing (links in the next section). We also maintain a changelog of what was modified in each version, as well as a UML overview (and source).

Contributing

Anyone building software that catalogs imagery or other geospatial assets is welcome to collaborate. Beforehand, please review our guidelines for contributions and code of conduct. You may also be interested in our overall process, and the principles that guide our collaboration

stac-spec's People

Contributors

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

Watchers

James Cloos avatar  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.