CoverageJSON输出格式

CoverageJSON 是一种对栅格和时间序列等地理时间覆盖数据进行编码的格式。例如,它可以作为请求特定坐标上的时间序列的WCS2.0getCoverage的输出格式。根据规范,指定用于返回cov-json输出的格式为 application/prs.coverage+json

安装

作为社区模块,cov-json包需要从 nightly builds ,选择相应Geoserver系列的社区文件夹(例如,如果每晚构建Geoserver主开发分支,请选择压缩文件形式 main/community-latest )。

要安装模块,请将zip文件内容解压缩到geoserver自己的 WEB-INF/lib 目录并重新启动GeoServer。

示例:WCS 2.0-时间序列

让我们 test:timeseries 作为与启用了时间维度的Coverage相关的样本层。假设我们想要在特定经度/经度坐标上获得特定时间段的覆盖率值。这将在经度/经度坐标上进行切片,并在时间维度上进行修剪。

GetCoverage请求可以在http://server:port/geoserver/wcs:上发布类似的内容

<wcs:GetCoverage service="WCS" version="2.0.1"
xmlns:wcs="http://www.opengis.net/wcs/2.0"
xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:crs="http://www.opengis.net/spec/WCS_service-extension_crs/1.0"
xmlns:rsub="http://www.opengis.net/spec/wcs_service-extension_range-subsetting/1.0"
xmlns:scal="http://www.opengis.net/spec/WCS_service-extension_scaling/1.0/"
xmlns:wcsgeotiff="http://www.opengis.net/wcs/geotiff/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsAll.xsd">

  <wcs:CoverageId>test__timeseries</wcs:CoverageId>
  <wcs:format>application/prs.coverage+json</wcs:format>
  <wcs:DimensionSlice>
    <wcs:Dimension>Long</wcs:Dimension>
    <wcs:SlicePoint>56</wcs:SlicePoint>
  </wcs:DimensionSlice>
  <wcs:DimensionSlice>
    <wcs:Dimension>Lat</wcs:Dimension>
    <wcs:SlicePoint>0</wcs:SlicePoint>
  </wcs:DimensionSlice>
  <wcs:DimensionTrim>
    <wcs:Dimension>Time</wcs:Dimension>
    <wcs:TrimLow>2014-01-01T00:00:00.000Z</wcs:TrimLow>
    <wcs:TrimHigh>2017-01-01T00:00:00.000Z</wcs:TrimHigh>
  </wcs:DimensionTrim>
</wcs:GetCoverage>

结果会是这样的:

{
  "type": "Coverage",
  "domain": {
  "type": "Domain",
  "domainType": "PointSeries",
  "axes": {
    "x": {
    "values": [
      56.0
    ]
    },
    "y": {
    "values": [
      1.0112359550561785
    ]
    },
    "t": {
    "values": [
      "2014-01-01T00:00:00Z",
      "2015-01-01T00:00:00Z",
      "2016-01-01T00:00:00Z",
      "2017-01-01T00:00:00Z"
    ]
    }
  },
  "referencing": [
    {
    "coordinates": [
      "x",
      "y"
    ],
    "system": {
      "type": "GeographicCRS",
      "id": "http://www.opengis.net/def/crs/EPSG/0/4326"
    }
    },
    {
    "coordinates": [
      "t"
    ],
    "system": {
      "type": "TemporalRS",
      "calendar": "Gregorian"
    }
    }
  ]
  },
  "parameters": {
  "TIMESERIES": {
    "type": "Parameter",
    "description": {
    "en": "timeseries"
    },
    "observedProperty": {
    "label": {
      "en": "timeseries"
    }
    }
  }
  },
  "ranges": {
  "TIMESERIES": {
    "type": "NdArray",
    "dataType": "float",
    "axisNames": [
    "t",
    "y",
    "x"
    ],
    "shape": [
    4,
    1,
    1
    ],
    "values": [
    25.5,
    24.76,
    26.06,
    23.22
    ]
  }
  }
}

请注意DomainType=PointSeries,其中x,y轴的值是1,而t轴的值是4倍。另请注意,Range属性报告的值为4。