我有一个非常大的GeoTIFF图像,大小约为7GB,由一个非常大的高分辨率RGB图像构成。我希望通过GeoServer(v.2.11)中的WMS流式传输此图像。我已经为JVM分配了足够的堆空间以显示图像。但是,我想压缩图像,以便在浏览时更具响应性,并且它将分配更少的内存。我已经按照这里的建议进行了一些尝试。
我的策略是使用JPEG压缩压缩GeoTIFF,并将其用作GeoServer中的数据存储。但是,似乎并不起作用。这是我使用的gdal命令来转换图像:
当使用openlayers预览图像时,我什么也没有看到,只有一个空白的底图。来自GeoServer的日志告诉我投影中出现了问题。
我也尝试使用JPEG压缩和无分块的方式执行gdal_translate,但在GeoServer日志中得到了错误,并且openlayers预览没有显示。因此我的问题是,最佳的策略是什么,可以压缩GeoTIFF文件以在WMS中使用?目前看来,DEFLATE是唯一有效的,但压缩效果并不理想。有人能成功上传JPEG压缩的GeoTIFF到Geoserver吗?
我的策略是使用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预览图像时,我什么也没有看到,只有一个空白的底图。来自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的另一种压缩策略,即"DEFLATE":
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
我也尝试使用JPEG压缩和无分块的方式执行gdal_translate,但在GeoServer日志中得到了错误,并且openlayers预览没有显示。因此我的问题是,最佳的策略是什么,可以压缩GeoTIFF文件以在WMS中使用?目前看来,DEFLATE是唯一有效的,但压缩效果并不理想。有人能成功上传JPEG压缩的GeoTIFF到Geoserver吗?