原始数据下载流程

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

下载估计器过程

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

  • layername :要检查的层的名称

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

  • filter :用于过滤输入数据的过滤器

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

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

下载过程

这个 Download Process 调用 Download Estimator Process ,检查文件大小,如果文件没有超过限制,则以压缩格式下载文件。要设置的参数包括

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

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

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

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

  • RoiCRS :感兴趣区域CRS(可选)

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

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

  • interpolation :重新投影/缩放栅格数据时使用的内插函数。值为NEAREST(默认)、BILINEAR、BICUBIC2、BICUBIC(可选)

  • 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图像栅格下载马赛克 有关此参数的更多详细信息,请参见下面的部分。

  • bestResolutionOnMatchingCRS : since 2.17, parameter to control CRS and resolution management when dealing with heterogeneous CRS's coverages. See 异质CRS图像栅格下载马赛克 有关此参数的更多详细信息,请参见下面的部分。

  • targetVerticalCRS : optional TargetVerticalCRS, to be used to transform elevation data from a VerticalCRS to another one. See 下载时的垂直数据重采样 有关此参数的更多详细信息,请参见以下部分

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

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

    • 本地解析对于所有被请求的粒是相同的,

    • 本机和目标CR的测量单位是相同的,

重新预测的覆盖范围将被迫使用本地分辨率。例如,通过指定值5.0,如果原始数据和重新投影的数据之间的百分比差异低于5%,则假定另外两个条件也被遵守,则原始分辨率将被保留。默认值为0。

这个 targetCRSRoiCRS 参数使用的是EPSG代码术语,因此,有效参数是文字,如 EPSG:4326 (如果我们指的是地理图形WGS84 CRS), EPSG:3857 (适用于WGS84 Web墨卡托CRS)等

ROI定义

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

  • AS TEXT ,以各种几何文本格式/表示形式

  • AS 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 ))

  • 在应用程序/json中: {"type":"Polygon","coordinates":[[[500116.0858,499994.2558],[500116.0858,500110.1012],[500286.2658,500110.1012],[500286.2658,499994.2558],[500116.0858,499994.2558]]]}

  • 在text/xml:500116.08576537756,499994.25579707103 500116.08576537756,500110.1012210889 500286.2657688021,500110.1012210889 500286.2657688021,499994.25579707103 500116.08576537756,499994.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、Target CRS等,输入参数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请求案例,技术方法切换为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 参数是向量过滤器运算的定义:

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

  • AS 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 and 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>

或者,使用 Region Of Interest 要裁剪数据集,请执行以下操作:

<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 )的下载负载略有变化,方法是使用 storeExecuteResponsestatus 参数,设置为 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> 正被前面的示例使用。此外,该属性 asReference 设置为 true 已添加到 <wps:Output>

这一次,当发出GET请求时(服务器上的处理已经完成),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>

输出格式和响应MIME类型

默认情况下,下载矢量数据会生成一个Shapefile,该文件与其SLD文件一起压缩为Zip文件。也可以使用下载GeoPackage文件 application/geopackage+sqlite3 属性的值作为 mimeType 参数。

同样,对于栅格数据,默认情况下将压缩下载的栅格以及与该层关联的SLD样式。在某些情况下,这可能是不必要的,特别是如果输出的TIFF已经具有某种类型的内部压缩,或者如果我们只是想要取回没有辅助SLD的TIFF输出文件。让我们考虑下载一个RGB TIFF:默认的raster.sld样式不会向输出中添加任何有用的东西。在这种情况下,可以指定 image/tiff 在响应的输出中 mimeType :输出的TIFF将按原样提供,不需要额外的压缩和文件管理步骤。

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

也可以使用以GeoPackage格式下载栅格数据 application/geopackage+sqlite3 属性的值作为 mimeType 参数。

写入缓冲选项

默认情况下,使用通过默认16KB数据缓冲区写入的文件流对栅格像素进行编码。根据网络和磁盘设置的不同,您可能希望更改缓冲区的大小以提高性能。可以通过将此属性添加到 JAVA_OPTS-Dorg.geoserver.wps.download.raster.buffer.size=sizeinbytes 哪里 sizeinbytes 是要设置的实际值,即设置1MB缓冲区的值为1048576。

此外,在将数据资源从WPS机器内复制回最终文件输出位置时,将使用默认的16KB数据缓冲区。还可以通过将此属性添加到 JAVA_OPTS-Dorg.geoserver.wps.copy.buffer.size=sizeinbytes 哪里 sizeinbytes 是要设置的实际值,即设置1MB缓冲区的值为1048576。

正在写入参数

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

<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 (Lossy)

    • ZLib (无损)

    • PackBits (无损)

    • Deflate (无损)

  • quality :压缩质量。值在范围内 [0 : 1]

    • JPEG 有损压缩,0表示最差质量/较高压缩,1表示最好质量/较低压缩。(默认为1)。

    • Deflate 无损压缩,输入值在范围内 [0 : 1] 线性映射到该范围内的输出放气水平 [1 : 9] : (deflate level = 1 + 8 * (quality)) ,其中级别1表示最佳速度,级别9表示最佳压缩。(默认级别为9)

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

直接下载

栅格过程尽最大努力识别实际上正在选择单个、完整的源文件的下载,并在这种情况下执行该文件的直接副本。

条件:

  • 通过请求选择单个完整的源文件(例如,完整的输入GeoTIFF,或从图像马赛克中选择单个完整的粒)。

  • 输出格式与输入匹配(例如,两者都是GeoTIFF)

  • 写入参数(如果存在)与输入文件的结构(相同的压缩、相同的平铺结构)匹配

为了更好地支持直接下载,可以指定WRITE参数 compression AS auto :如果可能,它不会干扰直接下载的选择,并将回落到 deflate 以防无法直接下载。

异质CRS图像栅格下载马赛克

将不同坐标系(即不同UTM区域内的多个DEM文件)中的颗粒组成的图像镶嵌定义为具有异质CRS的图像镶嵌。ImageMosaic层将公共CRS公开为原生CRS(即4326)。

默认情况下,具有不同CRS的镶嵌颗粒将导致从颗粒的原始CRS到该公共CRS的重投影。

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

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

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

它将在以下情况下使用 minimizeReprojections 在具有定义的ROI和目标CRS的栅格下载时,也启用,而不指定目标大小。当设置为TRUE时,下载的目的是尽可能地保留与目标CRS匹配的底层粒的本机属性。

返回到该示例,将UTM32N指定为目标CRS的RasterDownload和覆盖包含UTM32N颗粒的区域的ROI将导致在不应用任何中间重投影的情况下获得那些UTM32N颗粒,还提供可用于该CRS的最佳原始分辨率。因此,如果ImageMosaic是10公里分辨率的UTM32N DEM和100米分辨率的UTM33N的混合,则底层读取请求将使用10公里分辨率,这是Target CRS中可用的最佳分辨率。当没有颗粒与目标CRS匹配时,从所有颗粒中获取最佳分辨率。

确保将ImageMosaic的索引配置为同时包含CRS和RESOLUTION属性,以便尽可能多地保留粒的原生属性。

一个典型的 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)的Coverage具有表示特定垂直CRS的高程/高度的像素值。

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

以下示例显示了配置为将EPSG:5778指定为采用的垂直CRS的DSM层。

../../_images/verticalCRS.png

只有在以下情况下才会显示此部分:

  • WPS-Download模块已部署在Geoserver中

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

WPS下载-垂直重采样

在栅格下载过程中,可以将数据重采样到其他垂直CRS,方法是指定 targetVerticalCRS WPS下载请求中的参数。例如:

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

备注

如果指定了Target VerticalCRS,但没有通过上述设置将源VerticalCRS分配给请求的层,则会引发异常。

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

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

这是将上述VerticalCRS作为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"]]

垂直CRS之间的变换可以通过垂直栅格偏移文件来支持(类似于NTV2栅格偏移可以用于支持2D栅格变换)。

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

中的每行 epsg_operations.properties 将描述由一个 source CRS 一种 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 包含栅格文件的2D坐标参照系统的EPSG代码。

例子

用于上述垂直CRSS之间转换的自定义垂直栅格移动文件::

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 表示条带文件。在这种情况下,在将其用作垂直偏移文件之前,请考虑对其重新定位以获得更好的访问权限)