DescribeCoverage 操作 |
DescribeCoverage 操作是必需的操作。
DescribeCoverage 操作允许客户端请求某个 WCS 服务的一个或多个栅格图层的全部描述信息。服务端会返回描述所请求的 Coverage 图层详细信息的 XML 文档。
客户端应发送以 KVP 编码的 Get 请求。
DescribeCoverage 操作的主要请求参数如下表所示:
表1 DescribeCoverage 操作请求主要参数
请求参数 | 是否必需 | 描述 |
SERVICE=WCS |
是 |
服务类型。 请求 WCS 服务,请求类型需要设为“WCS”。 |
REQUEST=DescribeCoverage |
是 |
请求名称。 请求 DescribeCoverage 操作,请求名称需要设为“DescribeCoverage”。 |
Version |
是 |
请求的 WCS 服务的版本。 |
Identifiers |
是 |
指定所要请求的图层。 identifiers=identifier1, identifier2,…… |
说明:参数的大小写不是必须的,请求参数的顺序也可以任意顺序排列。
DescribeCoverage 操作的请求方式如下:
<ServiceRoot>?SERVICE=WCS&REQUEST=DescribeCoverage&Version=1.1.2&Identifiers=*,*
ServiceRoot 为服务的 URI 根目录,请参见 服务的 URI 设置。
例如本机 iServer 服务启动后,对 data-world/wcs112 服务的 GetCapabilities 请求返回的 XML 文档中介绍了当前服务的而相关信息和服务中可用的 Coverage 图层信息,相见GetCapabilities 操作。由此可见,data-world/wcs112提供了两个可用的 Coverage 图层,Identifier 分别为:1、2,本例将请求 Identifier=1,即 Day@World 的详细信息,请求 URI 如下所示:
http://localhost:8090/iserver/services/data-world/wcs112?SERVICE=WCS&REQUEST=DescribeCoverage&Version=1.1.2&Identifiers=1
返回的响应结果参见响应示例。
服务端会返回描述所请求的每一个 Coverage 数据详细信息的 XML 文档,即每个 Coverage 的 CoverageDescription。
CoverageDescription 包含以下主要内容:
表2 DescribeCoverage 操作返回内容
元素名称 | 是否必需 | 描述 |
(Description) |
是 |
Coverage 的描述。 |
Identifier |
是 |
当前 Coverage 的唯一标识。 |
Metadata |
否 |
当前 Coverage 的更多元信息。 |
Domain |
是 |
当前 Coverage 的可用时空范围。详见Domain。 |
Range |
是 |
当前 Coverage 值的范围。详见Range。 |
SupportedCRS |
是 |
支持 GetCoverage 操作返回数据的坐标参考系统。 |
SupportedFormat |
是 |
支持 GetCoverage 操作返回数据的格式。如 GeoTIFF、HDF-EOS、NITF、CF-NetCDF 等。 |
Domain 分为 SpatialDomain(空间域,必需参数)和 TemporalDomain(时间域,可选参数)两种,前者表示当前 Coverage 的空间范围,后者表示当前 Coverage 的时间点序列或时间间隔序列。
SpatialDomain 的主要标签如表3所示。
TemporalDomain 主要由 TimeSequence 构成,TimeSequence 由 TimePositionOrInterval 来确定,即 TimePosition 和 TimePeriod 最终决定了时间域。定义 TimePeriod 的参数如表4所示。
表3 SpatialDomain 的主要内容
元素名称 | 是否必需 | 描述 |
BoundingBox |
是 |
当前图层的边界框。 |
GridCRS |
否 |
当前 Coverage 的坐标参考系统。 |
Transformation |
否 |
当前 Coverage 如果需要投影转换,使用此投影转换方法。 |
ImageCRS |
否 |
如果当前 Coverage 没有 GridCRS,则需要使用 ImageCRS。 |
Polygon |
否 |
用来描述当前 Coverage 的 Domain 的多边形。 |
表4 TimePeriod 的参数
元素名称 | 是否必需 | 描述 |
BeginTime |
是 |
当前段的起始时间。 |
EndTime |
是 |
当前段的结束时间。 |
TimeResolution |
否 |
时间分辨率。 |
frame |
否 |
时间参照系。 |
Range 中值的范围主要通过 Field(必须参数)来描述,如对于栅格高程数据或温度数据,通过这一参数可以描述可返回数据的高程范围或温度范围。而 Field 是从标量(scalar-valued)或矢量(vector-valued)方面对 Range 的描述,包含以下参数:
表5 Field 的主要参数
元素名称 | 是否必需 | 描述 |
(Description) |
是 |
当前范围的简述。 |
Identifier |
是 |
当前范围的唯一标识。 |
Definition |
是 |
当前范围的更多定义信息,包括含义、单位等。 |
NullValue |
否 |
如果没有合法范围值,则使用此参数。 |
InterpolationMethods |
是 |
差值方法,服务端对于当前 Coverage 的可获取值域范围(Field)所支持的差值方法。 |
Axis |
否 |
矢量范围的控制变量,即坐标轴刻度值,详见表6。 |
表6 Axis 的主要参数
元素名称 | 是否必需 | 描述 |
(Description) |
是 |
Axis 的简要描述。 |
Identifier |
是 |
当前 Axis 的唯一标识。 |
AvailableKeys |
是 |
当前 Axis 的 Key 值列表。包含子元素 Key,用于表示某一 key 值。 |
Meaning |
否 |
当前 Axis 值的含义或意义。 |
DataType |
否 |
当前 Axis 值数据类型。 |
ValuesUnit |
否 |
如果有需要,通过此参数提供当前 Axis 值单位参照系。 |
Metadata |
否 |
关于这些数值域元信息的补充。 |
请求示例中对 data-world/wcs112 服务中的 Day@World 影像数据执行 DescribeCoverage 请求后,服务端返回的 XML 文档如下所示: