原始数据下载过程

这些过程允许以原始形式下载矢量和栅格数据,而无需渲染。

下载估计过程

这个 下载估计过程 检查要下载的文件的大小。此过程接受以下参数的输入:

  • layername :要检查的层的名称

  • ROI :用于裁剪数据的ROI对象

  • filter :筛选输入数据的筛选器

  • targetCRS :如果需要重新投影,则为最后一层的CRS

这个过程将返回一个布尔值 true 如果下载的文件不会超过配置的限制。

下载过程

这个 下载过程 调用 下载估计过程 ,检查文件大小,如果文件未超出限制,则以zip格式下载文件。要设置的参数是

  • layerName :要处理/下载的层的名称

  • filter :用于过滤输入数据的向量过滤器(可选)

  • outputFormat :最终文件格式的MIME类型

  • targetCRS :输出文件的CRS(可选)

  • RoiCRS :关注区域CRS(可选)

  • ROI :要用于裁剪数据的感兴趣区域对象(可选)

  • cropToROI :允许裁剪到实际ROI或其封套的布尔参数(可选)

  • interpolation :重新投影/缩放栅格数据时使用的插值函数。值是最近的(默认值)、双线性、双三次2、双三次(可选)

  • targetSizeX :以输出像素为单位的大小X(可选,仅适用于栅格输入)

  • targetSizeY :以输出像素为单位的Y大小(可选,仅适用于栅格输入)

  • selectedBands :将用于生成最终结果的原始栅格的一组波段索引(可选,仅适用于栅格输入)

  • writeParameters : a set of writing parameters (optional, applies for raster input only). See 写入参数 下面一节详细介绍如何编写参数定义。

  • minimizeReprojections : since 2.17, parameter to control CRS management when dealing with heterogeneous CRS's coverages, in order to minimize reprojections when granules in ROI match the TargetCRS. See 异构CRS图像拼接的RasterDownload 下面一节了解有关此参数的详细信息。

  • bestResolutionOnMatchingCRS : since 2.17, parameter to control CRS and resolution management when dealing with heterogeneous CRS's coverages. See 异构CRS图像拼接的RasterDownload 下面一节了解有关此参数的详细信息。

  • targetVerticalCRS : optional TargetVerticalCRS, to be used to transform elevation data from a VerticalCRS to another one. See 下载时的垂直数据重采样 下面一节了解有关此参数的详细信息

  • resolutionsDifferenceTolerance :该参数允许指定一个公差值,以便在未指定目标大小和重新投影颗粒时控制数据的本机分辨率的使用。如果

    • 原始和重新投影覆盖率分辨率之间的百分比差异低于指定的公差值,

    • 所有所需颗粒的自然分辨率相同,

    • 本地和目标CRS的测量单位相同,

重新投影的覆盖将被迫使用本机分辨率。例如,通过指定值5.0,如果原始数据和重新投影的数据之间的百分比差异小于5%,假设同时满足其他两个条件,则将保留原始分辨率。默认值为0。

这个 targetCRSRoiCRS 参数使用EPSG代码术语,因此,有效参数是 EPSG:4326 (如果我们指的是地质WGS84 CRS), EPSG:3857 (用于WGS84 WebMercator CRS)等。

投资回报率定义

A ROI 参数是一个几何对象,如果有三种不同的形式,也可以定义它:

  • 作为 TEXT ,以各种几何文本格式/表示

  • 作为 REFERENCE ,这是对特定url的HTTP GET/POST请求的文本结果

  • 作为一个 SUPPROCESS 结果:进程执行产生的格式必须是兼容的几何文本格式。

如上所述,在所有上述形式/案例中,ROI几何体以特定格式定义为文本。这些可以是:

  • text/xml; subtype=gml/3.1.1 :符合gml规范3.1.1

  • text/xml; subtype=gml/2.1.2 :符合GML规范2.1.2

  • application/wkt :WKT几何表示

  • application/json :JSON几何表示

  • application/gml-3.1.1 :符合gml规范3.1.1

  • application/gml-2.1.2 :符合GML规范2.1.2

例如,用作ROI的多边形具有以下WKT表示:

POLYGON (( 500116.08576537756 499994.25579707103, 500116.08576537756 500110.1012210889, 500286.2657688021 500110.1012210889, 500286.2657688021 499994.25579707103, 500116.08576537756 499994.25579707103 ))

将以以下形式表示:

  • 在应用程序/WKT中: POLYGON (( 500116.08576537756 499994.25579707103, 500116.08576537756 500110.1012210889, 500286.2657688021 500110.1012210889, 500286.2657688021 499994.25579707103, 500116.08576537756 499994.25579707103 ))

  • 在application/json中: {{"type":"Polygon","coordinates":[[[500116.0858,499994.2558],[500116.0858,500110.1012],[500286.2658,500110.1012],[500286.2658,499994.2558],[500116.0858,499994.2558]]]}}

  • 文本/XML格式:500116.08576537756499994.25579707103 500116.08576537756500110.1012210889 500286.26576880250110.1012210889 500286.26576880214499994.25579707103 500116.08576537756499994.25579707103

  • 在application/xml中:以下xml

<?xml version="1.0" encoding="UTF-8"?><gml:Polygon xmlns:gml="http://www.opengis.net/gml" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink">
  <gml:outerBoundaryIs>
    <gml:LinearRing>
      <gml:coordinates>500116.08576537756,499994.25579707103 500116.08576537756,500110.1012210889 500286.2657688021,500110.1012210889 500286.2657688021,499994.25579707103 500116.08576537756,499994.25579707103</gml:coordinates>
    </gml:LinearRing>
  </gml:outerBoundaryIs>
</gml:Polygon>

WPS下载请求POST有效负载的一般结构由两部分组成:第一部分 (<wps:DataInputs> )包含进程的输入参数,以及第二个 (<wps:ResponseForm> )包含有关传递输出的详细信息。典型的伪有效载荷如下:

<?xml version="1.0" encoding="UTF-8"?><wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">
 <ows:Identifier>gs:WPS_Process_Name_Here</ows:Identifier>
 <wps:DataInputs>
  <wps:Input>
   <ows:Identifier>First_Param_Name</ows:Identifier>
   <wps:Data>
     (First_Param_Data)
   </wps:Data>
  </wps:Input>
  ...
  ...
 </wps:DataInputs>
 <wps:ResponseForm>
  <wps:RawDataOutput mimeType="application/zip">
   <ows:Identifier>result</ows:Identifier>
  </wps:RawDataOutput>
 </wps:ResponseForm>
</wps:Execute>

流程的每个参数都是在自己的流程中定义的。 <wps:Input> xml块。对于简单类型的数据,例如layerName、outputFormat、targetCRS等,input params xml块具有以下形式:

<wps:Input>
 <ows:Identifier>layerName</ows:Identifier>
 <wps:Data>
  <wps:LiteralData>nurc:Img_Sample</wps:LiteralData>
 </wps:Data>
</wps:Input>

注意 <wps:LiteralData> 包装参数值的标记。对于几何参数,如滤波器、ROI,参数的 <wps:Input> 块不同:

<wps:Input>
  <ows:Identifier>ROI</ows:Identifier>
  <wps:Data>
    <wps:ComplexData mimeType="application/wkt"><![CDATA[POLYGON (( 500116.08576537756 499994.25579707103, 500116.08576537756 500110.1012210889, 500286.2657688021 500110.1012210889, 500286.2657688021 499994.25579707103, 500116.08576537756 499994.25579707103 ))]]></wps:ComplexData>
  </wps:Data>
</wps:Input>

注意 <wps:ComplexData> 标签 mimeType="application/wkt" 参数,以及 ![CDATA[] 根据选定的MIME类型包装实际几何数据(以文本表示)。

请注意,如果ROI参数定义为WKT,则还需要指定ROICRS输入参数。

如果使用参考源定义ROI,则输入块略有不同:

<wps:Input>
  <ows:Identifier>ROI</ows:Identifier>
  <wps:Reference mimeType="application/wkt" xlink:href="url_to_fetch_data" method="GET"/>
</wps:Input>

注意 <wps:Reference> 标记替换 <wps:ComplexData> 标签和额外的 xlink:href="url_to_fetch_data" 参数,该参数定义用于生成HTTP GET请求的url。对于POST请求案例,tech方法切换到POST,并且 <wps:Body> 标记用于包装POST数据:

<wps:Reference mimeType="application/wkt" xlink:href="url_to_fetch_data" method="POST">
  <wps:Body><![CDATA[request_body_data]]></wps:Body>
</wps:Reference>

过滤器参数定义

A filter 参数是向量过滤器操作的定义:

  • 作为 TEXT ,以各种文本格式/表示形式

  • 作为 REFERENCE ,这是对特定url的HTTP GET/POST请求的文本结果

  • 作为一个 SUBPROCESS 结果:进程执行产生的格式必须是兼容的几何文本格式。

筛选器定义的兼容文本格式为:

  • text/xml; filter/1.0

  • text/xml; filter/1.1

  • text/xml; cql

有关筛选格式/语言的更多详细信息,请参见 支持的筛选语言过滤器功能 . 过滤器参数适用于矢量数据。如果输入数据是这种情况,则 <wps:Input> 与我们之前用作ROI定义示例的多边形相交的过滤器块将是:

<wps:Input>
  <ows:Identifier>filter</ows:Identifier>
  <wps:Data>
    <wps:ComplexData mimeType="text/plain; subtype=cql"><![CDATA[<Intersects>
       <PropertyName>GEOMETRY</PropertyName>
         <gml:Polygon>
           <gml:outerBoundaryIs>
             <gml:LinearRing>
                <gml:coordinates>500116.08576537756,499994.25579707103 500116.08576537756,500110.1012210889 500286.2657688021,500110.1012210889 500286.2657688021,499994.25579707103 500116.08576537756,499994.25579707103</gml:coordinates>
              </gml:LinearRing>
           </gml:outerBoundaryIs>
         </gml:Polygon>
     </Intersects>]]></wps:ComplexData>
  </wps:Data>
</wps:Input>

样品申请

同步执行

以下是处理栅格数据集的WPS请求示例。假设我们要使用北美样本图像( nurc:Img_Sample )层,以生成 80x80个 可下载像素 tiff 在里面 EPSG:4326

假设本地geoserver实例(为WPS/WPS下载支持设置)正在运行,我们将向URL发出一个POST请求:

http://127.0.0.1:8080/geoserver/ows?service=wps

使用以下有效载荷:

<?xml version="1.0" encoding="UTF-8"?><wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">
 <ows:Identifier>gs:Download</ows:Identifier>
 <wps:DataInputs>
  <wps:Input>
   <ows:Identifier>layerName</ows:Identifier>
   <wps:Data>
    <wps:LiteralData>nurc:Img_Sample</wps:LiteralData>
   </wps:Data>
  </wps:Input>
  <wps:Input>
   <ows:Identifier>outputFormat</ows:Identifier>
   <wps:Data>
    <wps:LiteralData>image/tiff</wps:LiteralData>
   </wps:Data>
  </wps:Input>
  <wps:Input>
   <ows:Identifier>targetCRS</ows:Identifier>
   <wps:Data>
    <wps:LiteralData>EPSG:4326</wps:LiteralData>
   </wps:Data>
  </wps:Input>
  <wps:Input>
   <ows:Identifier>targetSizeX</ows:Identifier>
   <wps:Data>
    <wps:LiteralData>80</wps:LiteralData>
   </wps:Data>
  </wps:Input>
  <wps:Input>
   <ows:Identifier>targetSizeY</ows:Identifier>
   <wps:Data>
    <wps:LiteralData>80</wps:LiteralData>
   </wps:Data>
  </wps:Input>
 </wps:DataInputs>
 <wps:ResponseForm>
  <wps:RawDataOutput mimeType="application/zip">
   <ows:Identifier>result</ows:Identifier>
  </wps:RawDataOutput>
 </wps:ResponseForm>
</wps:Execute>

可以使用更多的参数(从上面的参数列表中),例如,我们只能选择波段 0和2 从原始栅格:

<wps:Input>
 <ows:Identifier>bandIndices</ows:Identifier>
 <wps:Data>
  <wps:LiteralData>0</wps:LiteralData>
 </wps:Data>
</wps:Input>
<wps:Input>
 <ows:Identifier>bandIndices</ows:Identifier>
 <wps:Data>
  <wps:LiteralData>2</wps:LiteralData>
 </wps:Data>
</wps:Input>

或者,使用 感兴趣的地区 要裁剪数据集:

<wps:Input>
  <ows:Identifier>ROI</ows:Identifier>
  <wps:Data>
    <wps:ComplexData mimeType="application/wkt"><![CDATA["POLYGON (( 500116.08576537756 499994.25579707103, 500116.08576537756 500110.1012210889, 500286.2657688021 500110.1012210889, 500286.2657688021 499994.25579707103, 500116.08576537756 499994.25579707103 ))]]></wps:ComplexData>
  </wps:Data>
</wps:Input>
<wps:Input>
  <ows:Identifier>RoiCRS</ows:Identifier>
  <wps:Data>
    <wps:LiteralData>EPSG:32615</wps:LiteralData>
  </wps:Data>
</wps:Input>

生成的结果是要下载的压缩文件。

异步执行

进程也可以异步执行。在这种情况下,第二部分 (wps:ResponseForm )通过使用 存储执行响应地位 参数,设置为 true 对于 <wps:ResponseDocument>

<wps:ResponseForm>
  <wps:ResponseDocument storeExecuteResponse="true" status="true">
    <wps:RawDataOutput mimeType="application/zip">
      <ows:Identifier>result</ows:Identifier>
    </wps:RawDataOutput>
  </wps:ResponseDocument>>
</wps:ResponseForm>

在异步执行的情况下,下载数据的初始请求返回一个XML指示进程已成功启动:

<?xml version="1.0" encoding="UTF-8"?><wps:ExecuteResponse xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" service="WPS" serviceInstance="http://127.0.0.1:8080/geoserver/ows?" statusLocation="http://127.0.0.1:8080/geoserver/ows?service=WPS&amp;version=1.0.0&amp;request=GetExecutionStatus&amp;executionId=dd0d61f5-7da3-41ed-bd3f-15311fa660ba" version="1.0.0">
  <wps:Process wps:processVersion="1.0.0">
      <ows:Identifier>gs:Download</ows:Identifier>
      <ows:Title>Enterprise Download Process</ows:Title>
      <ows:Abstract>Downloads Layer Stream and provides a ZIP.</ows:Abstract>
  </wps:Process>
  <wps:Status creationTime="2016-08-08T11:03:18.167Z">
      <wps:ProcessAccepted>Process accepted.</wps:ProcessAccepted>
  </wps:Status>
</wps:ExecuteResponse>

响应包含 <wps:Status> 指示成功创建进程和进程开始时间的块。然而,这一回应的重要部分是 executionId=dd0d61f5-7da3-41ed-bd3f-15311fa660ba 属性 <wps:ExecuteResponse> 标签。这个 dd0d61f5-7da3-41ed-bd3f-15311fa660ba ID可以用作此进程的引用,以便发出新的GET请求并检查进程状态。这些请求的格式如下:

http://127.0.0.1:8080/geoserver/ows?service=WPS&request=GetExecutionStatus&executionId=277e24eb-365d-42e1-8329-44b8076d4fc0

发出后(服务器上的进程已完成),此GET请求将结果作为base64编码的zip返回到下载/处理:

<?xml version="1.0" encoding="UTF-8"?>
<wps:ExecuteResponse xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" service="WPS" serviceInstance="http://127.0.0.1:8080/geoserver/ows?" statusLocation="http://127.0.0.1:8080/geoserver/ows?service=WPS&amp;version=1.0.0&amp;request=GetExecutionStatus&amp;executionId=0c596a4d-7ddb-4a4e-bf35-4a64b47ee0d3" version="1.0.0">
  <wps:Process wps:processVersion="1.0.0">
      <ows:Identifier>gs:Download</ows:Identifier>
      <ows:Title>Enterprise Download Process</ows:Title>
      <ows:Abstract>Downloads Layer Stream and provides a ZIP.</ows:Abstract>
  </wps:Process>
  <wps:Status creationTime="2016-08-08T11:18:46.015Z">
      <wps:ProcessSucceeded>Process succeeded.</wps:ProcessSucceeded>
  </wps:Status>
  <wps:ProcessOutputs>
      <wps:Output>
          <ows:Identifier>result</ows:Identifier>
          <ows:Title>Zipped output files to download</ows:Title>
          <wps:Data>
              <wps:ComplexData encoding="base64" mimeType="application/zip">UEsDBBQACAgIAFdyCEkAAAAAAAAAAAAAAAApAAAAMGEwYmJkYmQtMjdkNi00...(more zipped raster data following, ommited for space saving)...</wps:ComplexData>
          </wps:Data>
      </wps:Output>
  </wps:ProcessOutputs>
</wps:ExecuteResponse>

异步执行(输出作为引用)

这个 <wps:ResponseForm> 在前面的异步请求中,可以修改负载示例以获取要下载的文件的链接,而不是base64编码的数据。

...
<wps:ResponseForm>
  <wps:ResponseDocument storeExecuteResponse="true" status="true">
    <wps:Output asReference="true" mimeType="application/zip">
      <ows:Identifier>result</ows:Identifier>
    </wps:Output>
  </wps:ResponseDocument>
</wps:ResponseForm>

注意 <wps:ResponseDocument> 包含一个 <wps:Output> 而不是 <wps:RawDataOutput> 被前面的例子使用。此外,属性 作为参考 设置为 true 已添加到 <wps:Output> .

这一次,当发出(服务器上的进程已完成)时,get请求返回要作为链接下载的结果,作为 <wps:Output><wps:Reference> .

<?xml version="1.0" encoding="UTF-8"?>
  <wps:ExecuteResponse xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" service="WPS" serviceInstance="http://127.0.0.1:8080/geoserver/ows?" statusLocation="http://127.0.0.1:8080/geoserver/ows?service=WPS&amp;version=1.0.0&amp;request=GetExecutionStatus&amp;executionId=c1074100-446a-4963-94ad-cbbf8b8a7fd1" version="1.0.0">
  <wps:Process wps:processVersion="1.0.0">
    <ows:Identifier>gs:Download</ows:Identifier>
    <ows:Title>Enterprise Download Process</ows:Title>
    <ows:Abstract>Downloads Layer Stream and provides a ZIP.</ows:Abstract>
  </wps:Process>
  <wps:Status creationTime="2016-08-08T11:38:34.024Z">
    <wps:ProcessSucceeded>Process succeeded.</wps:ProcessSucceeded>
  </wps:Status>
  <wps:ProcessOutputs>
    <wps:Output>
      <ows:Identifier>result</ows:Identifier>
      <ows:Title>Zipped output files to download</ows:Title>
      <wps:Reference href="http://127.0.0.1:8080/geoserver/ows?service=WPS&amp;version=1.0.0&amp;request=GetExecutionResult&amp;executionId=c1074100-446a-4963-94ad-cbbf8b8a7fd1&amp;outputId=result.zip&amp;mimetype=application%2Fzip" mimeType="application/zip" />
    </wps:Output>
  </wps:ProcessOutputs>
</wps:ExecuteResponse>

写入参数

这个 writeParameters 流程执行的输入元素允许指定要由 outputFormat 生成输出文件时使用编码器。写入参数列为多个 <dwn:Parameter key="writingParameterName">value</dwn:Parameter> 在一个 <dwn:Parameters> 父元素。请参阅以下xml,其中包含TIFF输出格式的有效示例的完整语法:

<wps:Input>
  <ows:Identifier>writeParameters</ows:Identifier>
    <wps:Data>
       <wps:ComplexData xmlns:dwn="http://geoserver.org/wps/download">
         <dwn:Parameters>
            <dwn:Parameter key="tilewidth">128</dwn:Parameter>
            <dwn:Parameter key="tileheight">128</dwn:Parameter>
            <dwn:Parameter key="compression">JPEG</dwn:Parameter>
            <dwn:Parameter key="quality">0.75</dwn:Parameter>
         </dwn:Parameters>
       </wps:ComplexData>
    </wps:Data>
</wps:Input>

geotiff/tiff支持的写入参数

支持的写入参数为:

  • tilewidth :内部瓦片的宽度,以像素为单位

  • tileheight :内部瓦片的高度(像素)

  • compression :用于存储内部磁贴的压缩类型。支持的值包括:

    • CCITT RLE (无损)(哈夫曼)

    • LZW (无损)

    • JPEG (有损)

    • ZLib (无损)

    • PackBits (无损)

    • Deflate (无损)

  • quality :有损压缩的压缩质量(jpeg)。值在范围内 [0:1] 其中0表示最差质量/较高压缩,1表示最佳质量/较低压缩

  • writenodata :支持的值为true/false之一。注意,默认情况下,a nodata TAG 一旦在要写入的GridCoverage2D中找到nodata,就会作为输出GeoTIFF文件的一部分生成。因此,不指定此参数将导致写入nodata以保留默认行为。将其设置为false将避免写入该标记。

异构CRS图像拼接的RasterDownload

由不同坐标系(即不同UTM区域的几个DEM文件)中的颗粒组成的图像拼接被定义为具有非均匀CRS的图像拼接。图像拼接层将公开作为本地CRS的公共CRS(即4326)。

默认情况下,将具有不同CRS的镶嵌颗粒从颗粒的原始CRS重新投影到普通CRS。

从2.17开始,定义了一个新参数: minimizeReprojections

它将用于栅格下载,并指定一个已定义的ROI和一个目标CRS。当设置为true时,ROI中具有与TargetCRS匹配的nativeCRS的任何颗粒都不会受到重新投影的影响。

从2.17开始,定义了一个新参数: bestResolutionOnMatchingCRS

它将用于 minimizeReprojections 也启用了,在栅格下载时有一个定义的ROI和一个目标CRS,没有指定目标大小。当设置为true时,下载的目的是尽可能保留与targetCRS匹配的底层颗粒的本机属性。

回到这个例子,一个指定UTM32N为TargetCRS的RasterDownload和一个覆盖包含UTM32N颗粒的区域的ROI将导致在不应用任何中间重投影的情况下获得这些UTM32N颗粒,同时还提供该CRS可用的最佳原始分辨率。因此,如果图像拼接是10 km分辨率下的UTM32N dem和100 m分辨率下的UTM33N的混合,则底层读取请求将使用10 km分辨率,这是targetCRS中可用的最佳分辨率。当没有颗粒与目标CRS匹配时,从所有颗粒中获取最佳分辨率。

确保将ImageMosaic的索引配置为同时包含crs和分辨率属性,以便尽可能保留颗粒的原生属性。

典型 indexer.properties 这样的图像马赛克会像这样:

GranuleAcceptors=org.geotools.gce.imagemosaic.acceptors.HeterogeneousCRSAcceptorFactory
GranuleHandler=org.geotools.gce.imagemosaic.granulehandler.ReprojectingGranuleHandlerFactory
HeterogeneousCRS=true
MosaicCRS=EPSG\:XXXX
Schema=*the_geom:Polygon,location:String,crs:String,resX:double,resY:double
ResolutionXAttribute=resX
ResolutionYAttribute=resY
CrsAttribute=crs
PropertyCollectors=CRSExtractorSPI(crs),ResolutionXExtractorSPI(resX),ResolutionYExtractorSPI(resY)

下载时的垂直数据重采样

包含高程数据(即DTM/DEM/DSM)的覆盖范围具有表示特定垂直CR的高程/高度的像素值。

相关的垂直坐标可以在页面最底部的图层配置中指定,其中显示了一个新的可选垂直坐标参考系部分。

下面的示例显示了配置为指定爱普生:5778采用垂直坐标系。

../../_images/verticalCRS.png

此部分仅在以下情况下显示:

  • wps下载模块已经部署在GeoServer中

  • 底层数据是单波段的,数据类型至少为16位。(即:无字节数据类型,无RGB图像,…)

WPS下载-垂直重采样

作为栅格下载过程的一部分,可以通过指定 目标垂直导航系统 WPS下载请求中的参数。例如:

<wps:Input>
  <ows:Identifier>targetVerticalCRS</ows:Identifier>
  <wps:Data>
    <wps:LiteralData>EPSG:9274</wps:LiteralData>
  </wps:Data>
</wps:Input>

备注

指定targetVerticalCRS时将引发异常,但没有通过上述设置将源VerticalCRS分配给请求的层。

自定义垂直CRS定义和网格转换

自定义垂直CRS定义可以通过属性文件在GeoServer中指定为任何其他坐标参考系,如中所述 Custom CRS Definitions 页。

这是上面作为WKT添加到 user_projections/epsg.properties 文件::

9274=VERT_CS["EVRF2000 Austria height", \
   VERT_DATUM["European Vertical Reference Frame 2000 Austria", \
     2000, AUTHORITY["EPSG","1261"]], \
   AXIS["gravity-related height (H)",up], \
   UNIT["m",1.0], \
AUTHORITY["EPSG","9274"]]

可以通过垂直网格偏移文件支持垂直网格之间的转换(类似于如何使用NTV2网格偏移来支持二维网格转换)。

自定义坐标操作在 user_projections/epsg_operations.properties 数据目录中的文件(如果不存在则创建它)。

每一行 epsg_operations.properties 将描述由 source CRS ,A target CRS ,以及带参数值的数学转换。使用以下语法:

<source crs code>,<target crs code>=<WKT math transform>

数学变换是 Vertical Offset by Grid Interpolation 需要2个参数:

  1. A Vertical offset file 引用包含网格中每个像素的垂直偏移的偏移文件。引用的文件需要在 user_projections 目录,

  2. Interpolation CRS code 包含网格文件的二维坐标引用系统的EPSG代码。

例子

用于上述垂直CRS之间转换的自定义垂直网格移位文件:

5778,9274=PARAM_MT["Vertical Offset by Grid Interpolation", \
PARAMETER["Vertical offset file", "GV_Hoehengrid_V1.tif"], \
PARAMETER["Interpolation CRS code", 4312]]

备注

目前只支持GeoTIFF垂直偏移文件。垂直重采样将使用瓦片加载访问GeoTIFF中的像素。因此,请确保网格文件没有条带化(gdalinfo调用报告 Band 1 Block = NNN x 1 意思是一个条纹文件。在这种情况下,在将其用作垂直偏移文件之前,请考虑将其重新设置为更好的访问)