GDAL图像格式

Geoserver可以利用 ImageI/O-Ext GDAL库可读取选定的Coverage格式。 GDAL 能够读取多种格式,但目前Geoserver只支持几种常见的兴趣格式,以及那些可以在开源服务器上合法重新分发和操作的格式。

地理服务器可以使用gdal读取以下图像格式:

安装GDAL扩展

从geoserver 2.2.x版开始,gdal必须作为扩展安装。要安装它:

  1. 访问 website download 页面,找到您的版本,并下载: geoserver-2.24.x-gdal-plugin.zip

    警告

    确保与插件匹配(示例 2.24.x 以上)版本设置为Geoserver实例的版本。

  • 的下载链接 GDAL 将会出现在 Extensions 下一节 Coverage Format

../../_images/downloadextension.png
  • 将此存档中的文件提取到 WEB-INF/lib 地理服务器安装目录。在Windows上,可能会提示您确认覆盖现有文件,确认替换文件

../../_images/overwrite.png

此外,为了让geoserver利用这些库,必须通过主机系统的操作系统安装gdal(二进制)库。安装后,geoserver将能够识别gdal数据类型。有关详细信息,请参见下文。

安装gdal本机库

从Geoserver 2.21.x开始,ImageIO-ext插件在GDAL版本3.x上进行了测试(特别是在3.2.x和3.4.x下测试)。

ImageIO-ext插件使用GDAL 3.2 SWIG绑定进行了测试,该绑定包含在扩展下载中 gdal-3.2.0.jar

如果版本不匹配

我们建议匹配版本 gdal JAR到您的环境中可用的gdal版本:

gdalinfo --version
GDAL 3.4.1, released 2021/12/27

如果您使用的GDAL版本与Geoserver预期的版本不匹配,则可以使用 gdal-3.2.0.jar 具有等效的Java绑定JAR的文件(通常命名为 gdal-<version>.jar )包含在您的GDAL版本中:

Windows软件包和安装程序

对于Windows, gisinternals.com 中提供带有Java绑定支持的完整包。 release-<version>-GDAL-<version>-mapserver-<version>.zip 包(撰写本文时的GDAL二进制下载不包括Java支持)。

打开包装 zip 文件放在合适的位置,然后在启动Geoserver之前设置以下变量:

set PATH=%PATH%;C:\<unzipped_package>\bin;C:\<unzipped_package>\bin\gdal\java
set GDAL_DRIVER_PATH=C:\<unzipped_package>\bin\gdal\plugins
set GDAL_DATA=C:\<unzipped_package>\bin\gdal-data

There are a few optional drivers that you can find in file:C:<unzipped_package>bingdalplugins-extra and C:<unzipped_package>bingdalplugins-optional. Include these paths in `GDAL_DRIVER_PATH enables the additional formats.

警告

在添加额外的格式之前,请确保您有权在服务器环境中使用它们(某些软件包特别禁止在服务器端免费使用,并且需要商业许可证,例如ECW)。

备注

根据底层操作系统的版本,您必须选择正确的版本。你可以在谷歌上搜索你需要的那个。另外,如果您使用的是32位版本的Windows,请确保下载的是32位版本;如果您运行的是64位版本的Windows,请确保下载64位版本(压缩文件的名称中带有“-x64”后缀)。同样,选择与您的基础设施匹配的解决方案。

关于在Windows上将geoserver作为服务运行的说明

将GDAL ImageI/O-Ext本机库部署在 PATH 环境变量(例如jdk/bin文件夹)将不允许Geoserver服务使用GDAL。因此,在服务启动期间,Geoserver日志可能会报告以下消息:

it.geosolutions.imageio.gdalframework.GDALUtilities loadGDAL
WARNING: Native library load failed.java.lang.UnsatisfiedLinkError: no gdaljni in java.library.path

请看一下 jsl74.ini Geoserver安装中提供的配置文件中,有以下有用的条目:

;The java command line
;The entry method below using a parameter list still works but the command line variant is more convenient.
;Everything separated by whitespace on a java command line is broken down into a parameter here.
;You don't need to care about quotes
;around strings containing spaces here. e.g.
cmdline = -cp "..\src" com.roeschter.jsl.TelnetEcho

要允许加载GDAL本机DLL,请执行以下操作:

  1. 编辑命令行以包括 -Djava.library.path 您的GDAL库的位置。

Linux软件包和设置

对于常见的LTS Linux发行版,有GDAL和相关Java绑定的包,例如Ubuntu和衍生品,可以使用:

sudo apt-get install gdal-bin libgdal-java

上面安装的库已经在搜索路径中,因此通常不需要额外的设置。以防设置 GDAL_DATA 需要处理某些投影,通常在 /usr/share/gdal/<version> ,以便可以在启动geoserver之前执行以下操作,例如:

export GDAL_DATA=/usr/share/gdal/<version>

如果您决定从源代码构建,请记住运行 configure 具有 --with-java ,在主构建和安装之后,进入 swig/java 运行一个构建并安装在那里。有关构建gdal的更多信息,请参见:

在构建和安装之后,导出以下变量以使geoserver使用gdal自定义构建:

export LD_LIBRARY_PATH=/<path_to_gdal_install>/lib
export GDAL_DATA=/<path_to_gdal_install>/share/gdal

测试安装

完成这些步骤后,重新启动Geoserver。

导航到 About > Server Status 页,并更改为 Modules 选项卡,然后单击:Guilabel:``链接以获取状态信息。

../../_images/gdal-extension-status.png

ImageI/O GDAL覆盖范围扩展模块状态

此信息可用于验证扩展是否处于活动状态、使用的GDAL版本以及使用的SWIG绑定的版本。

如果所有步骤都已正确执行,则新的数据格式将位于 Raster Data Sources 在中创建新数据存储区时列出 Stores 部分,如下所示。

../../_images/newsource.png

栅格数据存储列表中的gdal图像格式

如果新格式不出现在GUI中,并且您在日志文件中看到以下消息:

it.geosolutions.imageio.gdalframework.gdaltilities loadgdal警告:本机库加载失败。java.lang.unsuspendedlinkError:java.library.path中没有gdaljni 警告:本地库加载失败。java. Lang.UnPosidFieldLink错误:java.库中没有GDALALJNI。路径*

这意味着该扩展已安装,但由于某些原因无法访问您的GDAL库。

配置DTED数据存储

../../_images/gdaldtedconfigure.png

配置DTED数据存储

配置ehdr数据存储

../../_images/gdalehdrconfigure.png

配置ehdr数据存储

配置erdasimg数据存储

../../_images/gdalerdasimgconfigure.png

配置erdasimg数据存储

配置JP2MRSID数据存储

../../_images/gdaljp2mrsidconfigure.png

配置JP2MRSID数据存储

配置NITF数据存储

../../_images/gdalnitfconfigure.png

配置NITF数据存储

支持向量足迹

从2.9.0版开始,geoserver支持向量足迹。示意图是用作遮罩的形状,用于隐藏遮罩外部的像素,从而使父图像的该部分透明。当前支持的封装外形格式为wkb、wkt和shapefile。按照惯例,示意图文件应与示意图应用的栅格数据位于同一目录中。

备注

在本节和相关小节的示例中,我们将始终使用.wkt作为扩展名,表示wkt示意图,尽管也支持.wkb和.shp。

例如,假设您的mrsid文件位于 /mnt/storage/data/landsat/N-32-40_2000.sid 要隐藏,您只需将wkt文件放在同一文件夹中,就像 /mnt/storage/data/landsat/N-32-40_2000.wkt 请注意,封装外形需要具有与原始数据文件相同的路径和名称,扩展名为.wkt。

这是示例示意图几何图形的外观:

../../_images/masking.png

存储为wkt的示例几何图形,在OpenJump上呈现

添加封装外形文件后,需要将封装外形行为参数从“无”(默认值)更改为“透明”(从图层配置)。

../../_images/footprintbehavior.png

设置封装行为参数

下一幅图像描述了同一层的两个层预览:左侧没有示意图,右侧有示意图可用,示意图行为设置为透明。

../../_images/gdalmasks.png

No Footprint VS FootprintBehavior = Transparent

外部示意图数据目录

如上所述,封装外形文件应与栅格文件放在同一目录中。然而,在某些情况下,这可能是不可能的。例如,包含栅格数据的文件夹可能是只读的。

作为替代方案,封装外形文件可以位于公共目录中,即 封装外形数据目录 .该目录下的子目录和文件名必须与原始栅格路径和文件名匹配。脚印数据目录被指定为Java系统属性或环境变量,通过设置 FOOTPRINTS_DATA_DIR 要用作基本文件夹的目录的属性/变量。

例子

假设您有3个栅格文件,路径如下:

  • /data/raster/charts/nitf/italy_2015.ntf

  • /data/raster/satellite/ecw/orthofoto_2014.ecw

  • /data/raster/satellite/landsat/mrsid/N-32-40_2000.sid

它们可以用这棵树表示:

/data
 \---raster
     +---charts
     |   \---nitf
     |           italy_2015.ntf
     |
     \---satellite
         +---ecw
         |       orthofoto_2014.ecw
         |
         \---landsat
             \---mrsid
                     N-32-40_2000.sid

为了支持外部足迹,您应该

  1. 创建一个 /footprints (例如)磁盘上的目录

  2. 设置 FOOTPRINTS_DATA_DIR=/footprints 变量/属性。

  3. 使用完整路径复制指定文件夹内的Raster文件夹层次结构。

  4. 将3个WKT文件放在适当的位置:

  • /footprints/data/raster/charts/nitf/italy_2015.wkt

  • /footprints/data/raster/satellite/ecw/orthofoto_2014.wkt

  • /footprints/data/raster/satellite/landsat/mrsid/N-32-40_2000.wkt

它可以用这棵树表示:

/footprints
 \---data
     \---raster
         +---charts
         |   \---nitf
         |           italy_2015.wkt
         |
         \---satellite
             +---ecw
             |       orthofoto_2014.wkt
             |
             \---landsat
                 \---mrsid
                         N-32-40_2000.wkt

这样,最后,您将拥有以下文件夹层次结构树:

+---data
|   \---raster
|       +---charts
|       |   \---nitf
|       |           italy_2015.ntf
|       |
|       \---satellite
|           +---ecw
|           |       orthofoto_2014.ecw
|           |
|           \---landsat
|               \---mrsid
|                       N-32-40_2000.sid
|
\---footprints
    \---data
        \---raster
            +---charts
            |   \---nitf
            |           italy_2015.wkt
            |
            \---satellite
                +---ecw
                |       orthofoto_2014.wkt
                |
                \---landsat
                    \---mrsid
                            N-32-40_2000.wkt

注意并行镜像文件夹层次结构,唯一的区别是 /footprints 路径开头的前缀,以及后缀的更改。

Previous: ArcGrid