rt_raster_to_gdal: Could not load the output GDAL driver
问题记录:
postgis 安装后不能执行以下语句,查询入库的 tif 文件
SELECT ST_AsGDALRaster(rast, 'GTiff') As rastjpg FROM radar_data_xx WHERE rid=1;
解决办法:
1. 确认是否安装 GDAL ,否则安装GDAL详细步骤
-
添加PPA
add-apt-repository ppa:ubuntugis/ppa
输入后会提示按 enter 键继续
-
更新
apt-get update
-
安装 gdal-bin
apt-get install gdal-bin
安装完成后使用下述命令验证是否安装成功
ogrinfo --version
-
安装 libgdal-dev
apt-get install libgdal-dev
安装完成后使用下述命令验证是否安装成功
gdal-config --version
获取到的版本号需要记住,接下来安装 python gdal 时会使用到 ,要不然接下来会报错
- 配置环境变量
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
-
安装 GDAL
pip install GDAL==version #(pip install GDAL==2.2.2)
这里的 version 为(4)中查看版本获取到的 version 我这里是 2.2.2
至此,gdal 就安装完成了。可以在python 中使用 import gdal 验证。
2.配置栅格支持
如果您启用了栅格支持,您可能希望阅读下面的如何正确配置它。
从PostGIS 2.1.3开始,默认情况下禁用数据库外栅格和所有栅格驱动程序。要重新启用这些环境变量,您需要设置以下环境变量 POSTGIS_GDAL_ENABLED_DRIVERS
和 POSTGIS_ENABLE_OUTDB_RASTERS
在服务器环境中。对于PostGIS 2.2,您可以使用更具跨平台的方法来设置相应的 Section 8.23, “大统一自定义变量(GUC)” 。
如果要启用脱机栅格,请执行以下操作:
POSTGIS_ENABLE_OUTDB_RASTERS=1
任何其他设置或根本没有设置都将禁用数据库栅格。
要启用GDAL安装中可用的所有GDAL驱动程序,请按如下方式设置此环境变量
POSTGIS_GDAL_ENABLED_DRIVERS=ENABLE_ALL
如果只想启用特定驱动程序,请按如下方式设置环境变量:
POSTGIS_GDAL_ENABLED_DRIVERS="GTiff PNG JPEG GIF XYZ"
如果您使用的是Windows,请不要引用驱动程序列表 |
环境变量的设置因操作系统而异。对于通过apt-postgreSQL安装在Ubuntu或Debian上的PostgreSQL,首选方式是编辑 /etc/postgresql/*
10*/*
main*/environment
其中,10表示PostgreSQL的版本,main表示集群。
在Windows上,如果你是作为一项服务运行的,你可以通过系统变量来设置在Windows 7中,你可以通过右击Computer- > 属性高级系统设置或在资源管理器中导航到 Control Panel\All Control Panel Items\System
。然后点击 高级系统设置- > 高级->环境变量 以及添加新的系统变量。
设置环境变量后,需要重新启动PostgreSQL服务才能使更改生效。javascript:void(0)😉
配置栅格支持
如果您启用了栅格支持,您可能希望阅读下面的如何正确配置它。
从PostGIS 2.1.3开始,默认情况下禁用数据库外栅格和所有栅格驱动程序。要重新启用这些环境变量,您需要设置以下环境变量 POSTGIS_GDAL_ENABLED_DRIVERS 和 POSTGIS_ENABLE_OUTDB_RASTERS 在服务器环境中。对于PostGIS 2.2,您可以使用更具跨平台的方法来设置相应的 Section 8.23, “大统一自定义变量(GUC)” 。
如果要启用脱机栅格,请执行以下操作:
POSTGIS_ENABLE_OUTDB_RASTERS=1
任何其他设置或根本没有设置都将禁用数据库栅格。
要启用GDAL安装中可用的所有GDAL驱动程序,请按如下方式设置此环境变量
POSTGIS_GDAL_ENABLED_DRIVERS=ENABLE_ALL
如果只想启用特定驱动程序,请按如下方式设置环境变量:
POSTGIS_GDAL_ENABLED_DRIVERS="GTiff PNG JPEG GIF XYZ"
如果您使用的是Windows,请不要引用驱动程序列表
环境变量的设置因操作系统而异。对于通过apt-postgreSQL安装在Ubuntu或Debian上的PostgreSQL,首选方式是编辑 /etc/postgresql/10/main/environment 其中,10表示PostgreSQL的版本,main表示集群。
在Windows上,如果你是作为一项服务运行的,你可以通过系统变量来设置在Windows 7中,你可以通过右击Computer- > 属性高级系统设置或在资源管理器中导航到 Control Panel\All Control Panel Items\System 。然后点击 高级系统设置- > 高级->环境变量 以及添加新的系统变量。
设置环境变量后,需要重新启动PostgreSQL服务才能使更改生效。
3.如还是不行,重新启动容器,在命令上添加环境变量
docker run -t --name postgisxx --restart always -e POSTGIS_GDAL_ENABLED_DRIVERS='ENABLE_ALL' -e POSTGIS_ENABLE_OUTDB_RASTERS=1 -e GDAL_DATA='/usr/share/gdal' -e POSTGRES_USER='nb_db' -e POSTGRES_PASSWORD='htht@2022' -e ALLOW_IP_RANGE=0.0.0.0/0 -p 8431:5432 -v /home/postgisxx:/var/lib/postgresql/data -d postgisxx1:latest
RES_USER=‘nb_db’ -e POSTGRES_PASSWORD=‘htht@2022’ -e ALLOW_IP_RANGE=0.0.0.0/0 -p 8431:5432 -v /home/postgisxx:/var/lib/postgresql/data -d postgisxx1:latest