gdal_translate中的JPEG压缩:错误的JPEG库版本

时间:2017-01-03 09:55:51

标签: ubuntu compression gdal

我尝试通过操纵gdal_translate命令的压缩开关来减小简单的山体阴影地理位置的大小,灵感来自this伟大的博客条目。但是,使用-co COMPRESS=JPEG运行命令会导致以下众所周知的错误:

ERROR 1: JPEGLib:Wrong JPEG library version: library is 62, caller expects 80

我确保删除了每个基于实例6的libjpeg库并安装了每个可能的基于8的libjpeg库,但问题仍然存在。我有GDAL版本2.0.0。在Ubuntu 16.04.1 Xenial上运行。

有没有人遇到同样的问题?

是输入(geotiff)还是与依赖项相关的问题?

2 个答案:

答案 0 :(得分:0)

不幸的是,我还没有找到原始问题的解决方案,但我确实找到了一个很好的解决方法,将JPEG压缩应用到TIF栅格,这无论如何都是我原来的问题。

出于某种原因,在Python GDAL API中调用gdal_translate对"COMPRESS=JPEG"选项没有问题。所以,这对我有用:

from osgeo import gdal
ds = gdal.Open("Raster.tif")
ds = gdal.Translate("Raster_compressed.tif", ds, creationOptions=['COMPRESS=JPEG'])

答案 1 :(得分:-1)

检查从gdal_translate引用的库:

ldd /bin/gdal_translate
ldd /bin/gdal_translate | grep jpeg

检查图书馆符号链接指向的位置,如here所述:

列出您的库文件夹中的所有文件,并列出您正在寻找的库的grep:

cd /usr/lib64/
ls -la | grep jpeg

cd /usr/local/lib
ls -la | grep jpeg

cd /usr/lib
ls -la | grep jpeg

确保所有符号链接指向正确的版本:

lrwxrwxrwx  1 root root       17 Mar  8 09:54 libjpeg.so -> libjpeg.so.62.0.0*

应该是

lrwxrwxrwx  1 root root       17 Mar  8 09:54 libjpeg.so -> libjpeg.so.8.3.0*

安装提供正确版本的库或手动创建符号链接。