正常来说,安装完postgresql和postgis,同时也在数据库扩展了postgis,应该能使用raster2pgsql来进行栅格数据的上传,但我们发现在postgresql13或14的bin文件下(或postgis3.0及以上版本)没有raster2pgsql和shp2sql这两个文件,也就是不能通过命令行进行数据上传,当然你如果通过QGIS、ArcGIS等软件上传就当我没说。 一般上传栅格数据的命令是: # 【】是通常需要修改的部分,大部分都默认即可(文件位置,数据命名,数据库名) raster2pgsql -s 4326 -I -C -M 【D:\guizhou\raster.tif】 -F -t 256x256 【guizhou】 | psql -h localhost -p 5432 -U postgres -d 【GeoDataDB】 -W 运行结果若为: 则说明你bin文件夹下可能没有raster2pgsql和shp2sql这两个文件,此时需要安装这两个扩展文件。至于为何按流程安装完软件后却没有这两个文件呢?我搜了很多,终于在一个外文网站上看到了解答:The earlier version of PostGIS (❤️.0) contains raster2pgsql (as well shp2pgsql and pgsql2shp) in the same package. However, PostGIS 3 broke out the raster functionality as an independent extension (ref. Key Breaking Changes - PostGIS 3.0.0). This resulted in the creation of another package. 那么怎么下载这个包呢?下载链接:https://pkgs.org/search/?q=raster2pgsql&on=files 我们需要下载client.rpm包,找到自己对应的版本。 我用的是postgis32_13-client(最好用14, 13有个别依赖需要自己装,和pg版本关系不大) 直接命令:yum install postgis32_13-client即可。

最后在bin目录下输入shp2pgsql或raster2pgsql回车,看是否安装成功,若出现如下关于此工具参数介绍截图,则说明安装成功: 如若出现**bash: raster2pgsql: 未找到命令…**则需做如下处理: 1)首先ls查看此路径下是否有这两个可执行文件,显示颜色是否为绿色。如果显示白色,则赋予权限:chmod +x raster2pgsql 然后再次执行该命令。 2)如若上方操作仍然不行,再查看是否将bin的完整路径存入环境变量。 先vim /etc/profile修改环境配置,在后面添加export PATH=$PATH:bin的完整路径,如图所示: 然后source /etc/profile保存更改,查看环境 echo ${PATH} 最后执行shp2pgsql或raster2pgsql命令即可正常使用。

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: