opengeospatial / ogcapi-environmental-data-retrieval

A Web API that provides a family of lightweight interfaces for accessing Environmental Data resources.
https://ogcapi.ogc.org/edr
Other
59 stars 26 forks source link

Document design patterns for common EDR use cases? #304

Open dblodgett-usgs opened 3 years ago

dblodgett-usgs commented 3 years ago

There was some discussion of doing something similar to this: https://github.com/opengeospatial/ogcapi-environmental-data-retrieval/wiki/Monitoring-network-mockup for other use cases.

Perhaps we would include:

  1. climate model / reanalysis data to show super typical behavior
  2. geospatial grid such as elevation to show subsetting and trajectory
  3. meteorological station example to show feature response
  4. forecast model data to highlight the use of instances
  5. hydrologic sensor example to show query by identifier

Where should these examples live?

Who can contribute them?

Is the template I built for a monitoring network suitable?

discuss...

dblodgett-usgs commented 3 years ago

In discussion -- it seems that putting the list of example use case (titles) in the main README with links off to wiki-based example documents.

We need to give a simple list of "what's the point of EDR?" using simple evocative use cases that highlight what an EDR collection really is.

@dblodgett-usgs will draft the README content. Perhaps @m-burgoyne, @ShaneMill1, @tomkralidis, @boyi-shangguan could work on contributing mockups?

dblodgett-usgs commented 3 years ago

See #305 for a start

ghobona commented 3 years ago

The demos during the EDR API SWG session of the 120th OGC Member Meeting (September 2021) provided some excellent material, so I will work with @doublebyte1 to prepare an initial draft tutorial/learning resource that covers many of the aspects listed above.

dblodgett-usgs commented 2 years ago

Starting to progress this... Got a weather reanalysis example done. https://github.com/opengeospatial/ogcapi-environmental-data-retrieval/wiki/Examples

chris-little commented 2 years ago

The demos during the EDR API SWG session of the 120th OGC Member Meeting (September 2021) provided some excellent material, so I will work with @doublebyte1 to prepare an initial draft tutorial/learning resource that covers many of the aspects listed above. @ghobona Did you make any progress on the learning materials?

dblodgett-usgs commented 2 years ago

@m-burgoyne -- I got an example for a dem started -- would you mind pulling some examples out of your demo for me?

http://labs.metoffice.gov.uk/edr/collections looks like you have a DEM. Happy for you to modify the collection example that I put in there as a place holder if you just want to copy paste out of your demo. I just don't know how to drive your demo right off.

m-burgoyne commented 2 years ago

@dblodgett-usgs here is the dem collection response:

{
  "id": "dem",
  "title": "Global digital elevation data",
  "description": "Copernicus Digital Elevation Model (DEM) data",
  "keywords": [
    "Height",
    "description",
    "licence",
    "collection",
    "position",
    "radius",
    "area",
    "trajectory"
  ],
  "links": [
    {
      "href": "http://www.edr.demo/collections",
      "hreflang": "en",
      "rel": "self",
      "type": "application/json"
    },
    {
      "href": "http://www.edr.demo/collections?f=html",
      "hreflang": "en",
      "rel": "alternate",
      "type": "text/html"
    },
    {
      "href": "http://www.edr.demo/collections?f=xml",
      "hreflang": "en",
      "rel": "alternate",
      "type": "application/xml"
    },
    {
      "href": "https://copernicus-dem-30m.s3.amazonaws.com/readme.html",
      "hreflang": "en",
      "rel": "service-doc",
      "type": "text/html"
    },
    {
      "href": "https://spacedata.copernicus.eu/documents/20126/0/CSCDA_ESA_Mission-specific+Annex.pdf",
      "hreflang": "en",
      "rel": "licence",
      "type": "text/html"
    }
  ],
  "extent": {
    "spatial": {
      "bbox": [
        [
          -180.0,
          -89.9,
          180.0,
          89.9
        ]
      ],
      "crs": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]"
    }
  },
  "data_queries": {
    "position": {
      "link": {
        "href": "http://www.edr.demo/collections/dem/position",
        "hreflang": "en",
        "rel": "data",
        "variables": {
          "title": "Position query",
          "query_type": "position",
          "output_formats": [
            "CoverageJSON"
          ],
          "default_output_format": "CoverageJSON",
          "crs_details": [
            {
              "crs": "EPSG:4326",
              "wkt": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]"
            }
          ]
        }
      }
    },
    "radius": {
      "link": {
        "href": "http://www.edr.demo/collections/dem/radius",
        "hreflang": "en",
        "rel": "data",
        "variables": {
          "title": "Radius query",
          "description": "Radius query",
          "query_type": "radius",
          "output_formats": [
            "CoverageJSON",
            "GeoTiff"
          ],
          "default_output_format": "CoverageJSON",
          "within_units": [
            "km",
            "miles"
          ],
          "crs_details": [
            {
              "crs": "EPSG:4326",
              "wkt": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]"
            }
          ]
        }
      }
    },
    "area": {
      "link": {
        "href": "http://www.edr.demo/collections/dem/area",
        "hreflang": "en",
        "rel": "data",
        "variables": {
          "title": "Area query",
          "query_type": "area",
          "output_formats": [
            "CoverageJSON",
            "GeoTiff"
          ],
          "default_output_format": "CoverageJSON",
          "crs_details": [
            {
              "crs": "EPSG:4326",
              "wkt": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]"
            }
          ]
        }
      }
    },
    "trajectory": {
      "link": {
        "href": "http://www.edr.demo/collections/dem/trajectory",
        "hreflang": "en",
        "rel": "data",
        "variables": {
          "title": "Trajectory query",
          "query_type": "trajectory",
          "output_formats": [
            "CoverageJSON"
          ],
          "default_output_format": "CoverageJSON",
          "crs_details": [
            {
              "crs": "EPSG:4326",
              "wkt": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]"
            }
          ]
        }
      }
    },
    "locations": {
      "link": {
        "href": "http://www.edr.demo/collections/dem/locations",
        "hreflang": "en",
        "rel": "data",
        "variables": {
          "title": "Locations query",
          "query_type": "locations",
          "output_formats": [
            "CoverageJSON",
            "GeoTiff"
          ],
          "default_output_format": "CoverageJSON",
          "crs_details": [
            {
              "crs": "EPSG:4326",
              "wkt": "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]"
            }
          ]
        }
      }
    }
  },
  "crs": [
    "EPSG:4326"
  ],
  "output_formats": [
    "CoverageJSON"
  ],
  "parameter_names": {
    "Height": {
      "type": "Parameter",
      "description": "Height above MSL",
      "unit": {
        "label": "m",
        "symbol": {
          "value": "m",
          "type": "http://www.opengis.net/def/uom/SI/metre"
        }
      },
      "observedProperty": {
        "id": "http://vocab.nerc.ac.uk/standard_name/height_above_mean_sea_level/",
        "label": "Height above MSL"
      },
      "measurementType": {
        "method": "instantaneous",
        "period": "PT0M"
      }
    }
  }
}
m-burgoyne commented 2 years ago

Example position request:

http://www.edr.demo/collections/dem/position?coords=POINT(-105.496 39.740)&parameter-name=Height&crs=EPSG:4326&f=CoverageJSON

Example radius request:

http://www.edr.demo/collections/dem/radius?coords=POINT(-105.235 39.753)&within=20&within-units=km&parameter-name=Height&crs=EPSG:4326&f=GeoTiff

Example area request:

http://www.edr.demo/collections/dem/area?coords=POLYGON((-105.580 39.862,-105.571 39.619,-105.150 39.608,-105.149 39.933,-105.580 39.862))&parameter-name=Height&crs=EPSG:4326&f=CoverageJSON

Example trajectory request:

http://www.edr.demo/collections/dem/trajectory?coords=LINESTRING(-105.450231 39.723032,-105.379374 39.771603,-105.244079 39.748378,-105.139688 39.808536,-104.950823 39.75049,-104.858795 39.761575)&parameter-name=Height&crs=EPSG:4326&f=CoverageJSON

dblodgett-usgs commented 2 years ago

Thanks @m-burgoyne -- I'm making progress getting these incorporated. Trying out that radius query -- why is the tiff coming back in the range 0:255? image

dblodgett-usgs commented 2 years ago

@m-burgoyne Have a look -- on a good track? https://github.com/opengeospatial/ogcapi-environmental-data-retrieval/wiki/Examples#digital-elevation-model

m-burgoyne commented 2 years ago

@dblodgett-usgs looks good, I will add some upper air examples to demonstrate queries which include a vertical dimension. The GeoTiff bug should now be fixed: image

chris-little commented 2 years ago

EDR API SWG 2022-09-22 suggested we need also example of use of ensemble (forecast) data.