WCS—OGC Web覆盖服务

司机简称

WCS

生成依赖项

利勃曲尔

可选的GDAL WCS驱动程序允许将WCS服务器中的覆盖范围用作栅格数据集。GDAL充当WCS服务器的客户端。

访问WCS服务器是通过创建包含一个 <WCS_GDAL> XML元素。重要的是,在该元素之外没有空格或其他内容。从版本2.3开始,服务描述文件将由缓存目录中的驱动程序管理。用户应该使用选项控制服务文件的内容。数据集名称为 WCS:<URL> ,其中<URL>是可能附加了WCS版本、覆盖率和其他参数的服务器的URL。如果WCS版本是2.0.1,那么可以提供更多的参数来控制覆盖范围的数据模型如何映射到GDAL数据模型。

如果URL不包含覆盖率名称,则驱动程序将尝试从服务器获取功能文档,对其进行分析,并将结果元数据显示给用户。覆盖范围显示为子数据集。如果URL包含一个coverage name作为参数(无论WCS版本如何,都可以使用密钥'coverage',则驱动程序将尝试从服务器获取coverage描述文档,并对其进行分析,然后创建服务描述文件。可以执行一个小的测试GetCoverage请求来获取所服务数据的详细信息。如果未缓存相应的服务器功能文件,则也将提取该文件。

对于服务版本2.0.1(从GDAL版本2.3开始提供支持),覆盖范围可能有两个以上的维度。在这种情况下,驱动程序将追加覆盖率元数据并显示零波段。此时,用户必须使用选项进一步指导驱动程序如何处理额外的维度和数据字段。

WCS驱动程序在基本级别支持WCS版本1.0.0、1.1.0、1.1.1、1.1.2和2.0.1(不支持版本0.7,从GDAL 2.3开始支持版本2.0.1)。任何是单个文件的返回格式,并且是GDAL支持的格式,都应该可以工作。驱动程序将首选名称中带有“tiff”的格式,否则将退回到第一个提供的格式。但是,用户可以设置首选格式。坐标系从DescribeCoverage结果中读取。

驱动程序功能

Supports Georeferencing

This driver supports georeferencing

Supports VirtualIO

This driver supports virtual I/O operations (/vsimem/, etc.)

服务描述文件

服务描述文件将以下元素作为document元素的直接子元素。注意,当使用数据集名称的“WCS:<URL>”语法时,服务描述文件的内容将通过使用选项进行修改。

  • 服务URL :不带参数的服务的URL

  • 版本 :通信中使用的WCS版本。如果使用数据集名称语法WCS:URL,则默认值为2.0.1,服务器的响应可能会更改用户请求,否则默认值为1.0.0。支持版本1.0.0、1.1.0、1.1.1、1.1.2和2.0.1。

  • CoverageName :用于数据集的覆盖率。

  • 格式 :用于GetCoverage调用的格式。如果未设置,则由驱动程序选择。(WCS版本2.0)

  • PreferredFormat :用于GetCoverage调用的格式。如果未设置,则由驱动程序选择。(WCS版本1.0和1.1)

  • 插值 :缩放时使用的插值方法。应该是服务器支持的值之一。(GDAL2.3)

  • BlockXSize :用于块缓存远程访问的块宽度。

  • BlockYSize :用于块缓存远程访问的块高度。

  • OverviewCount :表示带所具有的概述的数目。默认值为一个数字,这样顶部的总览就相当小(小于1K x 1K左右)。

  • NoDataValue :要用于所有频带的nodata值(空表示无)。通常由司机决定。对于版本2.0.1,这可能是一个逗号分隔的值列表,每个频带一个。

  • 控制范围和域的元素:

  • :用于空间尺寸的轴。默认设置是使用服务器给定的前两个轴。轴顺序交换可能适用。语法: axis_name,axis_name A field_name:field_name 在列表中表示一个字段范围。(仅用于2.0.1版)

  • DefaultTime :访问具有时间维度的覆盖范围时默认使用的时间位置。默认情况下用上次提供的时间位置填充。(仅用于版本1.0.0)

  • FieldName :要访问的字段的名称。仅用于版本1.1。默认为DescribeCoverage中的第一个字段。在版本1.1中,范围由一个或多个字段组成,这些字段可以是标量或矢量。向量场包含一个或多个频带。

  • BandCount :数据集中的带数,通常由驱动程序确定。

  • BandType :要使用的像素数据类型。通常由司机决定。

  • 控制通信的要素:

  • 超时 :用于远程服务请求的超时。如果未提供,则使用libcurl默认值。

  • UserPwd :可提供 用户名:密码 将用户标识和密码传递给远程服务器。

  • HttpAuth :可以是BASIC、NTLM或ANY来控制要使用的身份验证方案。

  • GetCoverageExtra :要以URL编码形式添加到GetCoverage请求的另一组关键字。例如“&RESAMPLE=双线性&Band=1”。注意,额外的参数不应该是已知的参数(见下文)。

  • DescribeCoverageExtra :要以URL编码形式添加到DescribeBoverage请求的附加关键字集。例如“&CustNo=775”

  • Elements that may be needed to deal with server quirks (GDAL 2.3): Note: The options are not propagated to the subdataset with the switch -sd.

  • OriginAtBoundary :如果服务器报告网格原点位于像素边界而不是像素中心,请设置此标志。(用于MapServer版本<=7.0.7和WCS版本1.0.0和2.0.1)

  • OuterExtents :设置为将WCS 1.1范围视为外部像素的边界,而不是外部像素的中心。(用于GeoServer)。

  • BufSizeAdjust :如果由于响应没有预期大小而导致数据访问失败,则在WCS 1.1中设置为0.5。(用于GeoServer)。

  • OffsetsPositive :与WCS版本2.0.1中的MapServer一起使用,与nOffset一起使用。

  • NrOffsets :如果服务器要求GridOffset中只有两个值,则设置为2。当服务器是MapServer或ArcGIS时使用。与MapServer一起使用的也是OffsetsPositive。

  • GridCRSOptional :让驱动程序跳过网格 * 来自WCS 1.1 GetCoverage请求的参数(如果请求未缩放)。不要用于GeoServer。

  • NoGridAxisSwap :设置为告诉驱动程序不要交换轴顺序。读取栅格几何图形(在WCS 1.1中为原点和偏移,在WCS 2.0.1中为栅格包络、轴标签和偏移)时,不会进行轴顺序交换,尽管如果设置了此标志,则会进行轴顺序交换。在1.1中,如果CRS的轴是反向的,则可以这样做。在2.0.1中,如果GridFunction中sequenceRule的axisOrder定义了这样的顺序,则可以执行此操作。在分析来自MapServer和GeoServer的覆盖率描述时,通常在1.1和2.0.1中都需要这样做。

  • SubsetAxisSwap 设置为告诉驱动程序在发出WCS 2.0.1 GetCoverage请求时交换boundedBy.Envelope.axisLabels中的轴名称。当EPSG指示轴顺序交换时GeoServer需要。

  • UseScaleFactor :设置为告诉驱动程序在发出WCS 2.0.1 GetCoverage请求时使用按因子缩放方法,而不是按大小缩放。当服务器为ArcGIS时需要。

范围和尺寸子集

使用WCS版本2.0.1时,可以和/或可能需要对范围(字段/标注栏)和维度进行子设置。如果覆盖范围的数据模型包含超出两个地理或地图坐标的维度,则必须为GDAL对这些维度进行切片。覆盖范围还可能包含大量字段,GDAL数据集中只需要一个子集。

范围和维度子集必须通过URL参数完成,因为从一个覆盖范围可以创建多个不同的GDAL数据集。在WCS缓存中,这意味着可能存在与GDAL数据集相关的文件集:

  1. 服务器功能文件和由它生成的GDAL数据集元数据文件(key=URL,WCS版本号)

  2. 服务器描述符overage文件、由其生成的模板GDAL服务文件和为其生成的GDAL数据集元数据文件(key=URL,带有WCS版本号和覆盖范围名称)

  3. 专用于此数据集的GDAL服务文件和GDAL数据集元数据文件(key=URL,带有WCS版本号、覆盖率名称、范围和维度子集参数)

以下URL参数用于控制范围和维度子设置。注意,也可以通过选项将这些设置到服务文件中。URL中的优先。

  • RangeSubset :用于选择数据集覆盖率字段的子集。语法: field_name,field_name:field_name,.. (注意:要求服务器实现范围子集扩展。)

  • 子集 :从服务器获取数据时修剪或切片维度。语法: axis_name(trim_begin_value,trim_end_value);axis_name(slice_value) 请注意,修剪地理/地图坐标是由驱动程序完成的。

其他WCS参数

除了上述内容外,还可以识别以下WCS(版本2.0.1)参数。这些都可以通过选项或直接设置到URL中。URL中的优先。请注意,由服务器来支持/识别它们。

  • MediaType

  • UpdateSequence

  • GEOTIFF:压缩

  • GEOTIFF:JPEG_质量

  • GEOTIFF:预测因子

  • GEOTIFF:交织

  • GEOTIFF:平铺

  • GEOTIFF:平铺宽度

打开选项

When the "WCS:<URL>" dataset name syntax is used, open options are used to control the driver and the contents of the service description file. In the case the URL does not contain coverage name, the service description file is not used and thus in that case the options are not written into it. Open options are given separate to the dataset name, with GDAL utility programs they are given using the -oo switch (-oo "NAME=VALUE"). The -oo switch expects only one option but more options can be given repeating the switch.

除了存储在服务描述文件中的descripbecoverageextra和GetCoverageExtra之外,还有getcapabilitiextra,它可以在向服务器请求总体功能时用作打开选项。open选项SKIP_GETCOVERAGE可用于防止驱动程序向服务器发出GETCOVERAGE请求,如果驱动程序无法根据功能或覆盖率描述确定频带计数和频带数据类型,则通常会执行此操作。如果GetCoverage请求失败,则可能需要此选项。

上面列出的所有元素名称都可以作为WCS驱动程序的选项。在标记的情况下,选项应该是“Name=TRUE”,但只有“Name”才足够。

高速缓存

使用“WCS:<URL>”数据集名称语法时,服务器响应、服务描述文件和元数据文件存储在缓存中。通常,如果所需的资源在缓存中,则将使用该资源,并且不会对服务器进行额外的调用。

缓存目录的默认位置是$HOME/.gdal/wcsu缓存

缓存内容可以被视为使用空URL的子数据集:

gdalinfo "WCS:"

缓存控制选项/标志是

  • CACHE=path 覆盖默认缓存位置。

  • CLEAR_CACHE 缓存已完全初始化,并删除所有文件。

  • REFRESH_CACHE 缓存项(功能或覆盖率)将被删除,具体取决于当前的调用。

  • DELETE_FROM_CACHE=k 将删除缓存项(子数据集k)。

WCS:数据集名称语法

数据集名称中的URL不是完整的WCS请求URL。请求URL,特别是它的查询部分,用于GetCapabilities、descripbecoverage和GetCoverage请求,由驱动程序组成。通常,用户只需将版本和覆盖率参数添加到服务器地址。尽管不同的WCS版本使用不同的键,但字符串“coverage”可以用作coverage参数键“覆盖率”也始终用于缓存密钥。

用户可以向URL添加任意的标准和非标准额外参数。但是,完成后,应该注意URL是一个缓存数据库键,功能文档通过该键链接到覆盖率文档。请考虑使用额外的开放选项。

时间

这个驱动程序包括对基于时间的wcs1.0.0服务器的实验性支持。初始访问时,最后提供的时间位置将被标识为DefaultTime。可用于覆盖的每个时间位置都将被视为子数据集。

注意,当服务描述是文件名时,不支持基于时间的子数据集。除WCS 1.0.0以外的版本当前不支持时间。

实例

对MapServer提供的覆盖范围的gdalinfo调用:

gdalinfo \
-oo INTERLEAVE=PIXEL \
-oo OffsetsPositive \
-oo NrOffsets=2 \
-oo NoGridAxisSwap \
-oo BandIdentifier=none \
"WCS:http://194.66.252.155/cgi-bin/BGS_EMODnet_bathymetry/ows?VERSION=1.1.0&coverage=BGS_EMODNET_CentralMed-MCol"

对GeoServer提供的覆盖范围的缩放剪辑的gdal_translate调用:

gdal_translate \
-oo CACHE=wcs_cache \
-oo CLEAR_CACHE \
-oo INTERLEAVE=PIXEL \
-projwin 377418 6683393.87938218 377717.879386966 6683094 \
-oo Subset="time(1985-01-01T00:00:00.000Z)" \
-outsize 60 0 \
"WCS:https://beta-karttakuva.maanmittauslaitos.fi/wcs/service/ows?version=2.0.1&coverage=ortokuva__ortokuva" \
scaled.tiff

也见