使用管理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匹配) |
默认层 |
指示该层是否被视为集合的默认层的标志(因此也出现在 |
根据收集结构,层配置规范将具有不同的内容:
单CRS,非波段分割,RGB或RGBA文件,时间配置为“瞬间”(仅限
timeStart
使用的):{ "workspace": "gs", "layer": "test123", "separateBands": false, "heterogeneousCRS": false, "timeRanges": false }
单CRS,单文件多波段,灰色浏览风格,产品时间配置为
timeStart
和timeEnd
:{ "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实现的列表。