MetOffice / qgis-plugin-edr

GNU General Public License v3.0
3 stars 1 forks source link

Plugin fails to parse 'parameter_names' #39

Open indiejames opened 1 month ago

indiejames commented 1 month ago

When I try to load collections from my endpoint with the plugin I get the following error:

Populating data query attributes failed due to the following error: list indices must be integers or slices, not str

My EDR endpoint is simply returning the example collections output from the OGC docs here https://app.swaggerhub.com/apis/OGC/ogcapi-edr-1-example-1/1.1.0#/Capabilities/listCollections

The output is reproduced here:

{
  "links": [
    {
      "href": "https://example.org/edr/collections",
      "hreflang": "en",
      "rel": "self",
      "type": "application/yaml"
    },
    {
      "href": "https://example.org/edr/collections?f=html",
      "hreflang": "en",
      "rel": "alternate",
      "type": "text/html"
    },
    {
      "href": "https://example.org/edr/collections?f=xml",
      "hreflang": "en",
      "rel": "alternate",
      "type": "application/xml"
    }
  ],
  "collections": [
    {
      "links": [
        {
          "href": "https://example.org/service/description.html",
          "hreflang": "en",
          "rel": "service-doc",
          "type": "text/html",
          "title": ""
        },
        {
          "href": "https://example.org/service/licence.html",
          "hreflang": "en",
          "rel": "licence",
          "type": "text/html",
          "title": ""
        },
        {
          "href": "https://example.org/service/terms-and-conditions.html",
          "hreflang": "en",
          "rel": "restrictions",
          "type": "text/html",
          "title": ""
        },
        {
          "href": "https://example.org/edr/collections/the_collection_id/",
          "hreflang": "en",
          "rel": "collection",
          "type": "collection",
          "title": "Collection"
        },
        {
          "href": "https://example.org/edr/collections/the_collection_id/position",
          "hreflang": "en",
          "rel": "data",
          "type": "position",
          "title": "Position"
        },
        {
          "href": "https://example.org/edr/collections/the_collection_id/area",
          "hreflang": "en",
          "rel": "data",
          "type": "area",
          "title": "Area"
        }
      ],
      "id": "Metar data",
      "title": "Metar observations",
      "description": "Last 24 hours Metar observations",
      "keywords": [
        "string"
      ],
      "extent": {
        "spatial": {
          "bbox": [
            -180,
            -90,
            180,
            90
          ],
          "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\"]]",
          "name": "string"
        },
        "temporal": {
          "interval": [
            [
              [
                "2020-11-12T12:15Z",
                "2020-11-12T12:15Z"
              ],
              [
                "2020-11-12T12:15Z",
                "2020-11-12T12:45Z"
              ],
              [
                "2022-01-14T09:00Z",
                "2022-01-15T09:00Z"
              ],
              [
                "2022-01-14T09:00Z",
                "2022-01-14T21:00Z"
              ],
              [
                "2022-01-14T09:00Z",
                "2022-01-16T09:00Z"
              ]
            ]
          ],
          "values": [
            [
              [
                "2020-11-12T12:15Z"
              ],
              [
                "2020-11-12T12:15Z",
                "2020-11-12T12:30Z",
                "2020-11-12T12:45Z"
              ],
              [
                "R12/2022-01-14T09:00Z/2022-01-15T09:00Z"
              ],
              [
                "R12/2022-01-14T09:00Z/PT1H"
              ],
              [
                "R12/2022-01-14T09:00Z/PT1H",
                "R4/2022-01-14T21:00Z/PT3H",
                "R4/2022-01-15T09:00Z/PT6H"
              ]
            ]
          ],
          "trs": "TIMECRS[\"DateTime\",TDATUM[\"Gregorian Calendar\"],CS[TemporalDateTime,1],AXIS[\"Time (T)\",future]]",
          "name": "string"
        },
        "vertical": {
          "interval": [
            [
              [
                "2",
                "100"
              ]
            ]
          ],
          "values": [
            [
              [
                "2/100"
              ],
              [
                "R20/1000/-50"
              ],
              [
                "2",
                "10",
                "80",
                "100"
              ]
            ]
          ],
          "vrs": "VERTCS[\"WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PARAMETER[\"Vertical_Shift\",0.0],PARAMETER[\"Direction\",1.0],UNIT[\"Meter\",1.0]],AXIS[\"Up\",UP]",
          "name": "string"
        }
      },
      "data_queries": {
        "position": {
          "link": {
            "href": "https://example.com/collections/monitoringsites/position",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Position query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "position",
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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": "https://example.com/collections/monitoringsites/radius",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Radius query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "radius",
              "within_units": [
                "km",
                "miles"
              ],
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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": "https://example.com/collections/monitoringsites/area",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Area query",
              "description": "Query to return data for a defined area",
              "query_type": "area",
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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\"]]"
                }
              ]
            }
          }
        },
        "cube": {
          "link": {
            "href": "https://example.com/collections/monitoringsites/cube",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Cube query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "cube",
              "height_units": [
                "m",
                "hPa"
              ],
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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": "https://example.com/collections/monitoringsites/trajectory",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Trajectory query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "trajectory",
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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\"]]"
                }
              ]
            }
          }
        },
        "corridor": {
          "link": {
            "href": "https://example.com/collections/monitoringsites/corridor",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Corridor query",
              "description": "Query to return data for a defined corridor",
              "query_type": "corridor",
              "width_units": [
                "km",
                "miles"
              ],
              "height_units": [
                "m",
                "hPa"
              ],
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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": "https://example.com/collections/monitoringsites/locations",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Locations query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "locations",
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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\"]]"
                }
              ]
            }
          }
        },
        "items": {
          "link": {
            "href": "https://example.com/collections/monitoringsites/items",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Items query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "items"
            }
          }
        }
      },
      "crs": [
        "string"
      ],
      "output_formats": [
        "CoverageJSON",
        "GeoJSON",
        "IWXXM",
        "GRIB"
      ],
      "parameter_names": {
        "additionalProp1": [
          {
            "type": "Parameter",
            "id": "sea_ice",
            "description": "Sea Ice concentration (ice=1;no ice=0)",
            "unit": {
              "label": "Ratio",
              "symbol": {
                "value": "1",
                "type": "http://www.opengis.net/def/uom/UCUM/"
              }
            },
            "observedProperty": {
              "id": "http://vocab.nerc.ac.uk/standard_name/sea_ice_area_fraction/",
              "label": "Sea Ice Concentration"
            }
          }
        ],
        "additionalProp2": [
          {
            "type": "Parameter",
            "id": "sea_ice",
            "description": "Sea Ice concentration (ice=1;no ice=0)",
            "unit": {
              "label": "Ratio",
              "symbol": {
                "value": "1",
                "type": "http://www.opengis.net/def/uom/UCUM/"
              }
            },
            "observedProperty": {
              "id": "http://vocab.nerc.ac.uk/standard_name/sea_ice_area_fraction/",
              "label": "Sea Ice Concentration"
            }
          }
        ],
        "additionalProp3": [
          {
            "type": "Parameter",
            "id": "sea_ice",
            "description": "Sea Ice concentration (ice=1;no ice=0)",
            "unit": {
              "label": "Ratio",
              "symbol": {
                "value": "1",
                "type": "http://www.opengis.net/def/uom/UCUM/"
              }
            },
            "observedProperty": {
              "id": "http://vocab.nerc.ac.uk/standard_name/sea_ice_area_fraction/",
              "label": "Sea Ice Concentration"
            }
          }
        ]
      }
    }
  ]
}

I have tried a simpler JSON response, but the result is the same. It happens when I add parameter_names to the response.

m-burgoyne commented 1 month ago

It appears the the tools are struggling with the schema and the auto generated example has errors in the definition of arrays in the extent and parameters sections.

bbox and interval attributes should be arrays of arrays, value attributes should be an array and parameters should be objects not an array of objects.

A valid response would be as follows:

{
  "links": [
    {
      "href": "https://example.org/edr/collections",
      "hreflang": "en",
      "rel": "self",
      "type": "application/yaml"
    },
    {
      "href": "https://example.org/edr/collections?f=html",
      "hreflang": "en",
      "rel": "alternate",
      "type": "text/html"
    },
    {
      "href": "https://example.org/edr/collections?f=xml",
      "hreflang": "en",
      "rel": "alternate",
      "type": "application/xml"
    }
  ],
  "collections": [
    {
      "links": [
        {
          "href": "https://example.org/service/description.html",
          "hreflang": "en",
          "rel": "service-doc",
          "type": "text/html",
          "title": ""
        },
        {
          "href": "https://example.org/service/licence.html",
          "hreflang": "en",
          "rel": "licence",
          "type": "text/html",
          "title": ""
        },
        {
          "href": "https://example.org/service/terms-and-conditions.html",
          "hreflang": "en",
          "rel": "restrictions",
          "type": "text/html",
          "title": ""
        },
        {
          "href": "https://example.org/edr/collections/the_collection_id/",
          "hreflang": "en",
          "rel": "collection",
          "type": "collection",
          "title": "Collection"
        },
        {
          "href": "https://example.org/edr/collections/the_collection_id/position",
          "hreflang": "en",
          "rel": "data",
          "type": "position",
          "title": "Position"
        },
        {
          "href": "https://example.org/edr/collections/the_collection_id/area",
          "hreflang": "en",
          "rel": "data",
          "type": "area",
          "title": "Area"
        }
      ],
      "id": "Metar data",
      "title": "Metar observations",
      "description": "Last 24 hours Metar observations",
      "keywords": [
        "string"
      ],
      "extent": {
        "spatial": {
          "bbox": [
            [
              -180,
              -90,
              180,
              90
            ]
          ],
          "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\"]]",
          "name": "string"
        },
        "temporal": {
          "interval": [
            [
              "2020-11-12T12:15Z",
              "2020-11-12T12:15Z"
            ],
            [
              "2020-11-12T12:15Z",
              "2020-11-12T12:45Z"
            ],
            [
              "2022-01-14T09:00Z",
              "2022-01-15T09:00Z"
            ],
            [
              "2022-01-14T09:00Z",
              "2022-01-14T21:00Z"
            ],
            [
              "2022-01-14T09:00Z",
              "2022-01-16T09:00Z"
            ]
          ],
          "values": [
            "2020-11-12T12:15Z",
            "2020-11-12T12:15Z",
            "2020-11-12T12:30Z",
            "2020-11-12T12:45Z",
            "R12/2022-01-14T09:00Z/2022-01-15T09:00Z",
            "R12/2022-01-14T09:00Z/PT1H",
            "R12/2022-01-14T09:00Z/PT1H",
            "R4/2022-01-14T21:00Z/PT3H",
            "R4/2022-01-15T09:00Z/PT6H"
          ],
          "trs": "TIMECRS[\"DateTime\",TDATUM[\"Gregorian Calendar\"],CS[TemporalDateTime,1],AXIS[\"Time (T)\",future]]",
          "name": "string"
        },
        "vertical": {
          "interval": [
            [
              "2",
              "100"
            ]
          ],
          "values": [
            "2",
            "10",
            "80",
            "100"
          ],
          "vrs": "VERTCS[\"WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PARAMETER[\"Vertical_Shift\",0.0],PARAMETER[\"Direction\",1.0],UNIT[\"Meter\",1.0]],AXIS[\"Up\",UP]",
          "name": "string"
        }
      },
      "data_queries": {
        "position": {
          "link": {
            "href": "https://example.com/collections/monitoringsites/position",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Position query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "position",
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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": "https://example.com/collections/monitoringsites/radius",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Radius query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "radius",
              "within_units": [
                "km",
                "miles"
              ],
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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": "https://example.com/collections/monitoringsites/area",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Area query",
              "description": "Query to return data for a defined area",
              "query_type": "area",
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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\"]]"
                }
              ]
            }
          }
        },
        "cube": {
          "link": {
            "href": "https://example.com/collections/monitoringsites/cube",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Cube query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "cube",
              "height_units": [
                "m",
                "hPa"
              ],
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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": "https://example.com/collections/monitoringsites/trajectory",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Trajectory query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "trajectory",
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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\"]]"
                }
              ]
            }
          }
        },
        "corridor": {
          "link": {
            "href": "https://example.com/collections/monitoringsites/corridor",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Corridor query",
              "description": "Query to return data for a defined corridor",
              "query_type": "corridor",
              "width_units": [
                "km",
                "miles"
              ],
              "height_units": [
                "m",
                "hPa"
              ],
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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": "https://example.com/collections/monitoringsites/locations",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Locations query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "locations",
              "output_formats": [
                "CoverageJSON",
                "GeoJSON",
                "IWXXM",
                "GRIB"
              ],
              "default_output_format": "string",
              "crs_details": [
                {
                  "crs": "native",
                  "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\"]]"
                }
              ]
            }
          }
        },
        "items": {
          "link": {
            "href": "https://example.com/collections/monitoringsites/items",
            "rel": "alternate",
            "type": "application/geo+json",
            "hreflang": "en",
            "title": "Monitoring site name",
            "length": 0,
            "templated": true,
            "variables": {
              "title": "Items query",
              "description": "Query to return data for a defined well known text point",
              "query_type": "items"
            }
          }
        }
      },
      "crs": [
        "string"
      ],
      "output_formats": [
        "CoverageJSON",
        "GeoJSON",
        "IWXXM",
        "GRIB"
      ],
      "parameter_names": {
        "additionalProp1": {
          "type": "Parameter",
          "id": "sea_ice",
          "description": "Sea Ice concentration (ice=1;no ice=0)",
          "unit": {
            "label": "Ratio",
            "symbol": {
              "value": "1",
              "type": "http://www.opengis.net/def/uom/UCUM/"
            }
          },
          "observedProperty": {
            "id": "http://vocab.nerc.ac.uk/standard_name/sea_ice_area_fraction/",
            "label": "Sea Ice Concentration"
          }
        },
        "additionalProp2": {
          "type": "Parameter",
          "id": "sea_ice",
          "description": "Sea Ice concentration (ice=1;no ice=0)",
          "unit": {
            "label": "Ratio",
            "symbol": {
              "value": "1",
              "type": "http://www.opengis.net/def/uom/UCUM/"
            }
          },
          "observedProperty": {
            "id": "http://vocab.nerc.ac.uk/standard_name/sea_ice_area_fraction/",
            "label": "Sea Ice Concentration"
          }
        },
        "additionalProp3": {
          "type": "Parameter",
          "id": "sea_ice",
          "description": "Sea Ice concentration (ice=1;no ice=0)",
          "unit": {
            "label": "Ratio",
            "symbol": {
              "value": "1",
              "type": "http://www.opengis.net/def/uom/UCUM/"
            }
          },
          "observedProperty": {
            "id": "http://vocab.nerc.ac.uk/standard_name/sea_ice_area_fraction/",
            "label": "Sea Ice Concentration"
          }
        }
      }
    }
  ]
}