COG(云优化GeoTIFF)支持

COG (Cloud Optimized GeoTIFF)是一个常规的GeoTIFF文件,旨在托管在HTTP文件服务器上,其内部组织便于发出命令的客户端使用 HTTP GET range 请求。COG模块允许设置连接到Cloud GeoTIFF的配置参数,以及向支持该连接所需的类路径添加JAR。

安装

作为社区模块,需要从 nightly builds ,选择相应Geoserver系列的社区文件夹(例如,如果每晚构建Geoserver主开发分支,请选择压缩文件形式 main/community-latest )。

要安装该模块,请将zip文件内容解压缩到Geoserver中 WEB-INF/lib 目录,然后重新启动Geoserver。

COG GeoTIFF配置面板

COG插件不会添加新的商店,相反,它会向现有商店添加COG支持。

配置GeoTIFF存储时,会出现一个新的复选框: Cloud Optimized GeoTIFF (COG) . 将打开一个新部分的设置,该节显示此COG存储的COG配置参数。

../../_images/cogparams.png

COG连接参数

正在检查 Cloud Optimized GeoTIFF (COG) 复选框将提供新选项:

期权

描述

URL

(前缀为 cog:// )表示指向COG数据集的连接URL。

Range Reader Settings

哪种类型的量程读取器实现。当前支持的值有HTTP、GoogleCloud、Azure、S3,后者使用S3客户端

User Name / Access Key ID / Account Name

可选用户名(HTTP)或访问密钥ID(S3)或帐户名(Azure),以防COG数据集需要身份验证

Password / Secret Access Key / Account Key

以前凭据的密码(HTTP)或秘密访问密钥(S3)或帐户密钥(Azure)

COG图像拼接配置

为了正确配置基于COG的ImageMosaic,可以在ImageMosaic索引器配置中指定其他配置参数。

indexer.properties

参数

强制性的?

描述

齿轮

Y

要设置的布尔标志(真/假),以表示图像马赛克是一个几何数据镶嵌。

CogRangeReader

N

指定执行范围读取请求的所需RangeReader实现。

CogUser

N

在需要基本HTTP身份验证才能访问COG数据集、需要S3访问密钥ID或需要Azure帐户名称时设置凭据

CogPassword

N

上述用户的密码或上述S3密钥的秘密访问密钥或上述Azure帐户名称的帐户密钥。

COG RangeReader

下表提供了 CogRangeReader 根据目标存储的类型:

存储类型

类名

HTTP

可以省略或设置为 it.geosolutions.imageioimpl.plugins.cog.HttpRangeReader

AWS S3

it.geosolutions.imageioimpl.plugins.cog.S3RangeReader

GoogleCloud

it.geosolutions.imageioimpl.plugins.cog.GSRangeReader

碧蓝

it.geosolutions.imageioimpl.plugins.cog.AzureRangeReader

中心距全局设置

“GeoServer全局设置”页面包含设置新COG GeoTIFF存储时显示的默认COG设置。

../../_images/globalcogsettings.png

默认全局中心距设置

图像位置

对于由HTTP服务器提供的图像,必须使用HTTP URL。对于S3或Google Cloud提供的图像,可以同时使用公共HTTP URL或惯用的URI,例如:

  • s3://landsat-pds/c1/L8/153/075/LC08_L1TP_153075_20190515_20190515_01_RT/LC08_L1TP_153075_20190515_20190515_01_RT_B2.TIF

  • gs://gcp-public-data-landsat/LC08/01/044/034/LC08_L1GT_044034_20130330_20170310_01_T2/LC08_L1GT_044034_20130330_20170310_01_T2_B11.TIF

HTTP客户端(OkHttp)配置

HTTP客户端配置(基于 OkHttp client )可以通过环境变量指定。

环境变量

描述

IIO_HTTP_MAX_REQUESTS

并发执行的最大请求数。上面这个请求队列在内存中,等待正在运行的调用完成。(默认128)

IIO_HTTP_MAX_REQUESTS_PER_HOST

每个主机并发执行的最大请求数。(默认值5)

IIO_HTTP_MAX_IDLE_CONNECTIONS

最大空闲连接数。(默认值5)

IIO_HTTP_KEEP_ALIVE_TIME

保持活动时间(秒),表示多余空闲线程在终止前等待新任务的最长时间。(默认值60)

AWS S3客户端配置

一个S3异步客户机将用于同一个区域和别名(url模式,即http、https)。可以设置以下环境变量来为该特定别名自定义异步客户端的池。在下表中,如果要为这些架构配置属性,请将“$ALIAS$”模板替换为HTTP、HTTPS或S3。

环境变量

描述

IIO_$ALIAS$_AWS_CORE_POOL_SIZE

S3客户机的核心池大小(默认为50)

IIO_$ALIAS$_AWS_MAX_POOL_SIZE

S3客户机池中允许的最大线程数(默认128)

IIO_$ALIAS$_AWS_KEEP_ALIVE_TIME

保持活动时间(秒),表示多余空闲线程在终止前等待新任务的最长时间。(默认值10)

IIO_$ALIAS$_AWS_USER

AWS基本身份验证凭据的默认用户(访问密钥ID)

IIO_$ALIAS$_AWS_PASSWORD

AWS基本身份验证凭据的默认密码(秘密访问密钥)

IIO_$ALIAS$_AWS_REGION

默认AWS区域

IIO_$ALIAS$_AWS_ENDPOINT

到Amazon服务或由第三方运行的任何其他S3兼容服务的端点

Google云存储配置

访问Google Cloud的凭据不能以用户名和密码的形式提供(Google Cloud不支持的身份验证方法),但需要通过指向密钥文件的系统变量提供::

set GOOGLE_APPLICATION_CREDENTIALS=/path/to/the/key-file.json
export GOOGLE_APPLICATION_CREDENTIALS

Azure配置

同一容器将使用单个Azure客户端。将从提供的Azure URL检索帐户和容器。可以设置以下系统属性以自定义缺少的客户端属性。

系统属性

描述

azure.reader.accountName

Azure帐户名

azure.reader.accountKey

上述帐户的Azure帐户密钥

azure.reader.container

上述帐户的默认容器

azure.reader.prefix

包含BLOB的可选前缀

azure.reader.maxConnections

基础Azure客户端支持的最大连接数

客户端配置(系统属性)

请注意,还可以使用系统属性而不是环境变量来指定前面表中报告的所有IIO设置。你只需要用小写单词替换大写单词,用点替换下划线。因此,可以通过设置 IIO_HTTP_MAX_REQUESTS 环境变量或 iio.http.max.requests Java系统属性(首先检查环境变量)。

默认情况下,当访问COG时,将读取16KB的初始块以尝试解析标头,以便读取器将获得可用块的偏移量和长度。在处理托管许多分片的文件时,可能整个头文件不能放入初始块中。在这种情况下,将逐步进行额外的读取(相同大小的区块)以完成标头的加载。一个 it.geosolutions.cog.default.header.length 系统属性可以配置为设置读取区块的长度(以字节为单位)。对此进行调优,以便在读取标头时只需很少的额外请求,这有助于提高性能。值太大可能会导致内存消耗问题,并会降低效率,因为将读取不必要的数据。