堆叠数据存储

配置存储区

除了每个组件共有的参数之外 DataStore 配置,如 workspacenamedescription ,以及常用的HTTP连接器参数,如连接池,使用GZIP、用户名和密码,该页在专用部分中显示以下连接参数:

  • landingPage :这应该指向目标STAC API的登录页

  • fetchSize :商店每页尝试提取的商品数量。实际数字由服务器控制,商店只会尝试建议此值。

  • featureTypeItems :要阅读多少项才能猜测要素类型的结构(Geoserver通常需要可预测的结构)

  • hardLimit :在任何请求中从STAC商店获取的最大项目量(设置一个限制是一个好主意,因为许多STAC API托管数百万个项目,并且由于项目大小和分页传输,数据传输不是特别高效)

../../_images/configuration.png

堆叠数据存储区配置

堆叠项目是多时相的,因此建议在设置图层时使用 datetime 属性。这将允许时间导航,并将返回的项目数量减少到更易于管理的子集:

../../_images/time-vector.png

设置各层的时间

对STAC商店的图像进行马赛克处理

堆叠项目可以指向其“资产”数据结构中的实际图像文件。资源是顶级对象,而不是功能属性的一部分,商店将其提供给图像马赛克用于图像马赛克目的。有问题的图像必须是云优化的GeoTIFF,并且COG插件必须安装在Geoserver中。

然后,可以将STAC存储用作图像马赛克的索引,设置两个配置文件:

  • A datastore.properties 指向配置的STAC服务器。

  • A indexer.properties 指示要使用的集合、COG使用的设置以及提供图像的资产的位置。

简单的马赛克设置

下面是一个例子 datastore.properties ,指向已在Geoserver::中配置的现有STAC存储

StoreName=stac\:dlr-eoc

这是一个 indexer.properties **

MosaicCRS=EPSG\:4326
TimeAttribute=datetime
AbsolutePath=true
Name=WSF_2019
Cog=true
Heterogeneous=true
HeterogeneousCRS=false
TypeName=WSF_2019
UseExistingSchema=true
LocationAttribute=assets/wsf2019/href
MaxInitTiles=10

关于文件内容的说明:

  • 设置时间维度并将其链接到 datetime 属性

  • 马赛克被设置为允许不同分辨率的图像,但在这种特定情况下,假设所有图像都在相同的CRS中。

  • 这个 TypeName 属性指向目标STAC集合。

  • 这个 LocationAttribute 使用指向所需资源URL的JSON指针。

  • MaxInitTiles 这样,图像马赛克就不会试图扫描整个索引来找出通用的图像结构,只有STAC API返回的前10项将用于自动配置。

多波段马赛克设置

还可以通过更复杂的设置,在不同的坐标参考系中将其波段作为单独的图像提供的图像进行拼接。这里是一个假彩色哨兵2马赛克的例子,使用覆盖视图将图像合并回单个RGB合成。

这个 datastore.properties 配置两个新属性,启用查询缓存(因为Coverage视图机制将依次加载每个波段,重复相同的查询):

StoreName=stac\:dlr-loose
QueryCacheMaxAge=10000
QueryCacheMaxFeatures=1000

索引器必须以XML格式提供,以配置多个Coverage及其属性:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Indexer>
  <domains>
     <domain name="time">
       <attributes><attribute>datetime</attribute></attributes>
     </domain>
     <domain name="crs">
       <attributes><attribute>proj:epsg</attribute></attributes>
     </domain>
  </domains>
  <coverages>
    <coverage>
      <name>B04</name>
      <domains>
        <domain ref="time" />
        <domain ref="crs" />
      </domains>
      <parameters>
          <parameter name="LocationAttribute" value="assets/B04/href" />
      </parameters>
    </coverage>
    <coverage>
      <name>B03</name>
      <domains>
        <domain ref="time" />
        <domain ref="crs" />
      </domains>
      <parameters>
          <parameter name="LocationAttribute" value="assets/B03/href" />
      </parameters>
    </coverage>
    <coverage>
      <name>B02</name>
      <domains>
        <domain ref="time" />
        <domain ref="crs" />
      </domains>
      <parameters>
          <parameter name="LocationAttribute" value="assets/B02/href" />
      </parameters>
    </coverage>
  </coverages>
  <parameters>
      <parameter name="MosaicCRS" value="EPSG:4326" />
      <parameter name="AbsolutePath" value="true" />
      <parameter name="Cog" value="true" />
      <parameter name="Heterogeneous" value="true" />
      <parameter name="HeterogeneousCRS" value="true" />
      <parameter name="UseExistingSchema" value="true" />
      <parameter name="TypeName" value="S2_L2A_MSI_COG" />
      <parameter name="MaxInitTiles" value="10"/>
  </parameters>
</Indexer>

有关配置的一些注意事项:

  • Time和crs属性被声明为维。

  • 每种保险都有不同的 LocationAttribute 规格。

  • 启用了马赛克异类CRS支持。

在Geoserver中配置马赛克后,创建一个新的Coverage视图,按照所需顺序设置标注栏:

../../_images/coverage-view.png

从多波段镶嵌创建Coverage视图

还要记住为该层配置时间维度,原因与上面矢量数据部分中解释的原因相同。