使用管理REST API实现自动化

OpenSearch模块支持完全自动化的RESTAPI,可用于创建集合、摄取产品和最终颗粒。完整的API在此URL上可用:

一般来说,我们可以:

  • 创建一个集合以及缩略图、OGC链接

  • 然后创建一个产品,以及缩略图、OGC链接

  • 最后,也可以选择指定组成产品的颗粒(实际上只有当OpenSearch子系统也打算用于发布OGC服务层时才需要,而不是作为一个简单的搜索引擎。

了解zip文件上载

集合和产品的描述通常由各种组件组成,为了加快数据创建和减少协议聊天,可以将组成集合和产品描述的所有文件作为单个zip文件批量上载。

集合组件

一个集合.zip,作为PUT请求发送到 rest/collections 将包含以下文件:

名字

可选的

描述

collection.json

N

集合属性,与数据库结构匹配(在本文档中,前缀用冒号分隔)

description.html

Y

集合的HTML描述

thumbnail.png、thumbnail.jpg或thumbnail.jpeg

Y

集合缩略图

owsLinks.json

Y

OWS列表链接到提供对集合内容访问的OGC服务(通常作为启用时间的层)

产品组成

一个产品.zip,作为POST请求发送到 rest/collections/<theCollection>/products 将包含以下文件:

名字

可选的

描述

product.json

N

与数据库结构匹配的产品属性(前缀在这个JSON文档中用冒号分隔)

description.html

Y

产品的HTML描述

thumbnail.png、thumbnail.jpg或thumbnail.jpeg

Y

集合缩略图

owsLinks.json

Y

OWS列表链接到提供对产品内容访问的OGC服务(通常是集合层中的特定时间段,但也可能是其他组织)

granules.json

Y

组成产品的实际文件的列表,以及它们的边界框、文件位置和最终带名称,用于将带拆分为不同文件中的产品。可以是单个文件、按区域分割的文件列表,或者表示多光谱产品各个波段的文件列表。

也可以在 rest/collections/<theCollection>/products/<theProduct> 资源作为PUT请求,它将通过替换文件中包含的部件来更新现有产品。文件中丢失的部分将保持不变,若要删除它们,请对其各自的REST资源运行显式删除请求。

将API用于搜索和集成的OGC服务发布

在这种情况下,用户既要使用OpenSearch模块进行搜索,也要发布每个集合的实际镶嵌图。

在这种情况下,建议采用以下方法:

  • 通过RESTAPI创建集合,使用zip文件post upload

  • 在REST API的集合中创建至少一个产品,使用ZIP文件POST upload并提供完整的 granules.json 所述产品的所有颗粒含量

  • 将图层发布描述文件发布到 /oseo/collection/{{COLLECTION}}/layers 要让模块设置一组马赛克配置文件,存储最终覆盖视图和样式的图层

集合可以有多个层:

  • 获取 /oseo/collection/{{COLLECTION}}/layers 资源返回可用资源的列表

  • /oseo/collection/{{COLLECTION}}/layers/{{layer}} 返回特定的配置(PUT可用于修改它,DELETE可用于删除它)。

  • 创建层配置可以通过发布到 /oseo/collection/{{COLLECTION}}/layers 或者把int放在 /oseo/collection/{{COLLECTION}}/layers/{{layer}} .

图层配置字段为:

属性

描述

工作区

将包含要发布的存储和层的工作区

图层

将要创建的层的名称

分离主义者

一个布尔值,如果基础granule表的“band”列中填充了值,则为true,这意味着产品带在不同的文件中被拆分;如果单个产品存储在单个文件中,则为false。

异基因CRS

一个布尔值,指示集合中的产品是共享同一个CRS(假)还是用不同的CRS(真)表示。

时间范围

一个布尔值,指示产品是与单个时间关联(假)还是具有有效时间范围(真)

乐队

此层中使用的带区列表(仅在使用“separateBands”时指定)

布朗赛德斯

用于为层创建默认显示的1个或3个带区名称的数组。

马赛克

马赛克使用的CRS标识符(必须与颗粒表1匹配)

默认层

指示该层是否被视为集合的默认层的标志(因此也出现在 /oseo/collection/{{COLLECTION}}/layer

根据收集结构,层配置规范将具有不同的内容:

  • 单CRS,非波段分割,RGB或RGBA文件,时间配置为“瞬间”(仅限 timeStart 使用的):

    {
        "workspace": "gs",
        "layer": "test123",
        "separateBands": false,
        "heterogeneousCRS": false,
        "timeRanges": false
    }
    
  • 单CRS,单文件多波段,灰色浏览风格,产品时间配置为 timeStarttimeEnd

    {
        "workspace": "gs",
        "layer": "test123",
        "separateBands": false,
        "browseBands": ["test123[0]"],
        "heterogeneousCRS": false,
        "timeRanges": true
    }
    
  • 异类CRS,跨文件拆分的多频段,具有RGB浏览样式(未指定“时间范围”,意味着它是即时处理的):

    {
        "workspace": "gs",
        "layer": "test123",
        "separateBands": true,
        "bands": [
            "VNIR",
            "QUALITY",
            "CLOUDSHADOW",
            "HAZE",
            "SNOW"
        ],
        "browseBands": [
            "VNIR[0]", "VNIR[1]", "SNOW"
        ],
        "heterogeneousCRS": true,
        "mosaicCRS": "EPSG:4326"
    }
    

就带命名而言,“bands”参数包含在grammers表的“band”列中使用的覆盖范围名称,如果一个grammer包含多个带,则可以使用全名(在这种情况下,将全部选中),或者使用基于零的索引(如 BANDNAME[INDEX] ,它允许选择特定的乐队。

相同的语法用于 browseBands 财产。如果源不是分裂带,则 browseBands 仍然可以用于选择特定的波段,使用层名称作为覆盖范围名称,例如“test123 [0] “选择覆盖范围的第一个波段。

轮齿马赛克创建

还可以在COG图像镶嵌的顶部配置一个层,前提是 COG(云优化GeoTIFF)支持 插件已安装在Geoserver中。

层配置的其他字段包括:

属性

描述

齿轮

将其设置为TRUE可指定由COG数据集组成的图层

作弊用户

在需要基本HTTP身份验证才能访问COG数据集或需要S3 Access KeyID时设置凭据

伪口令

(可选)上述用户的密码或上述S3密钥的秘密访问密钥。

CogRangeReader

指定所需的RangeReader实现。(默认为基于HTTP的)

看见 COG RangeReader 从COG插件文档中获取受支持的RangeReader实现的列表。