gpt4 book ai didi

gdal - 在 GeoServer 中使用 gdal 压缩的 GeoTIFF

转载 作者:行者123 更新时间:2023-12-03 21:29:52 35 4
gpt4 key购买 nike

我有一个很大的 GeoTIFF,我想通过 GeoServer (v.2.11) 中的 WMS 进行流式传输。图像大小约为 7GB,由非常大的高分辨率 RGB 图像组成。我已经在 J​​VM 中留出了足够的堆空间来显示图像。但是,我想压缩图像,以便在浏览时响应更快,因此分配的内存更少。我遵循了一些建议 here .

我的策略是 使用 JPEG 压缩方式压缩 GeoTIFF 并将其用作 GeoServer 中的数据存储。但是,这似乎不起作用。这是我用来翻译图像的 gdal 命令:

gdal_translate -of GTiff -co "BIGTIFF=YES" -co "COMPRESS=JPEG"  -co "TILED=YES" -co "BLOCKXSIZE=512" -co "BLOCKYSIZE=512" -a_srs "EPSG:3057" D:\raster\image.tif 
D:\raster\image_translate.tif

使用 openlayers 预览图像时,我什么也没得到,只有一个空白 basemap 。 GeoServer 的日志告诉我 投影中的某些东西坏了 :
2017-06-09 13:16:47,551 INFO [geoserver.wms] - 
Request: getServiceInfo
2017-06-09 13:16:47,561 WARN [lite.gridcoverage2d] - Could not reduce the grid geometry inside the valid area bounds: ReferencedEnvelope[-1.7976931348623157E308 : 1.7976931348623157E308, -85.0 : 85.0]
Grid geometry isGridGeometry2D[GeneralGridEnvelope[0..357, 0..357], PARAM_MT["Affine",
PARAMETER["num_row", 3],
PARAMETER["num_col", 3],
PARAMETER["elt_0_0", 0.7353351955307262],
PARAMETER["elt_0_2", 584219.1848475977],
PARAMETER["elt_1_1", -0.7353351955307262],
PARAMETER["elt_1_2", 383937.61122240225]]]
2017-06-09 13:16:47,566 ERROR [geoserver.ows] -
org.geoserver.platform.ServiceException: Error rendering coverage on the fast path

然后我尝试使用 另一种压缩策略 使用 GDAL,即 "放气" :
gdal_translate -of GTiff -co COMPRESS=DEFLATE -co PREDICTOR=2 -co ZLEVEL=9 -co "BIGTIFF=YES" -a_srs "EPSG:3057"  D:\raster\image.tif D:\raster\image_translate2.tif

有效 在 openlayers 中预览时。这是 GeoServer 日志:
2017-06-09 13:28:27,137 INFO [geoserver.wms] - 
Request: getServiceInfo
2017-06-09 13:28:27,146 WARN [lite.gridcoverage2d] - Could not reduce the grid geometry inside the valid area bounds: ReferencedEnvelope[-1.7976931348623157E308 : 1.7976931348623157E308, -85.0 : 85.0]
Grid geometry isGridGeometry2D[GeneralGridEnvelope[0..357, 0..357], PARAM_MT["Affine",
PARAMETER["num_row", 3],
PARAMETER["num_col", 3],
PARAMETER["elt_0_0", 0.7353351955307262],
PARAMETER["elt_0_2", 584219.1848475977],
PARAMETER["elt_1_1", -0.7353351955307262],
PARAMETER["elt_1_2", 383937.61122240225]]]
2017-06-09 13:28:27,231 INFO [geoserver.wms] -
Request: getMap

我也试过执行 gdal_translate使用 JPEG 压缩和无平铺,我也遇到了 GeoServer 日志错误,openlayers 预览没有显示任何内容。

所以我的问题是, 压缩要在 WMS 中使用的 GeoTIFF 文件的最佳策略是什么? 目前,似乎只有 DEFLATE 可以工作,但压缩并不是最好的。 有没有人能够成功地将 JPEG 压缩的 GeoTIFF 上传到 Geoserver?

最佳答案

如果有任何帮助,我的做法如下。

首先,我将光栅切成较小的图块,大小并不重要,对我来说通常是 256x256、512x512 或 1024x124。

我使用了许多不同的程序,从 gdal2tiles.py 到我自己开发的 c# 应用程序。

重要的是瓷砖是方形的。

一旦我在文件夹中放置了瓷砖,我就可以使用 gdaltindex

这会为每个图块创建一个带有一个正方形的 shapefile,正确地理引用(假设您的栅格是)以及每个图块的名称,我通常告诉 gdaltindex 将绝对路径写入 shapefile。

然后我将形状作为 map 服务器中的切片图层引用,我不能说 geoserver 是否会接受基于形状的切片索引,但是由于 gdal 可以使它们和其他基于 WMS 的服务器可用开源( map 服务器)可以使用它们,然后如果 geoserver 无法使用它们,我会非常惊讶。

关于gdal - 在 GeoServer 中使用 gdal 压缩的 GeoTIFF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44458913/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com