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

WCS for STAC Catalog MVP #168

Closed
echeipesh opened this issue Oct 28, 2019 · 0 comments
Closed

WCS for STAC Catalog MVP #168

echeipesh opened this issue Oct 28, 2019 · 0 comments

Comments

@echeipesh
Copy link
Collaborator

echeipesh commented Oct 28, 2019

STAC catalogs form a graph (not acyclic!) of catalogs and items and assets.
This complex structure does not map naturally to WCS endpoint.

In this use case we limit the possible acceptable structure of STAC catalog such that this mapping exists and we can have "low friction" publishing of STAC catalog through WCS endpoint.

  • Configuration file for WSC service points to a single STAC catalog or collection
    Note: "every Collection is also a valid Catalog"
  • WCS endpoint can/will crawl and cache the full catalog at startup
  • Each STAC item will correspond to single WCS Coverage

GetCapabilities for STAC Item

For each item in catalog WCS GetCapabilities request includes a CoverageSummary which uses STAC item id as its own identification. STAC item ids are expected to be globally unique, we're using that feature here.

WCS 1.1.1 Spec - Figure 4

CoverageSummary shall include metadata element with items for:

  • Every element in STAC links section using their values xlink:href in xml elemet.

    • self, root, collection (if present)
  • STACT asset named meatadata with xlink:href (if present)

  • Every field in STAC item properties list. For example Landsat 8 STAC item may have:

    "properties": {
      "datetime": "2014-06-02T09:22:02Z",
      "collection": "L1T",
      "eo:gsd": 30.0,
      "eo:cloud_cover" : 10,
      "eo:off_nadir" : 0.000,
      "eo:azimuth": 0.00,
      "eo:sun_azimuth" : 149.01607154,
      "eo:sun_elevation" : 59.21424700,
      "landsat:wrs_path": 153,
      "landsat:wrs_row": 25,
      "landsat:earth_sun_distance": 1.0141560,
      "landsat:ground_control_points_verify": 114,
      "landsat:geometric_rmse_model": 7.562,
      "landsat:image_quality_tirs": 9,
      "landsat:ground_control_points_model": 313,
      "landsat:geometric_rmse_model_x": 5.96,
      "landsat:geometric_rmse_model_y": 4.654,
      "landsat:geometric_rmse_verify": 5.364,
      "landsat:image_quality_oli": 9
    }

Note: The spec talks about ows:Metadata

STAC Assets

Each STAC item may has a list of assets some of which may be a raster file that could be served through WCS. STAC does not restrict what can be an asset.

For purpose of this feature:

  • assets that have type=: image/tiff will be included
  • configuration will provide a list of assets to be included per item (ex: B1, B2, etc. for LC8)

Available assets will be encoded as bands through wcs:Range element per coverage.
If range is not specified per during request time, the first asset is served.

Note: This seems correct but very hard to get right. The mapping between STAC assets and WCS range elements is obviously not direct.

The "correct" behavior is to consider the stac extensions (ex: #171). So efforts here should tend towards "MVP" side of things rather than fully configurable system.

We should also consider creating a WCS coverage for Identification/Asset combination and using a naming template to smash the two identifiers together in predictable and configurable way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant