我正在为我大学的农业计划设置服务器,以管理州内许多实验站的数据。这项工作的一部分是从所有教授和研究人员的生长季节加载和制作栅格数据(多光谱.tif文件)。 我是SQL服务器和postgis扩展的新手,但我已经想出了如何创建角色,创建服务器,添加扩展以及所有这些好东西。 我无法发现的是如何将栅格数据上传到服务器。目前我正在测试localhost,但最终需要能够加载到运行Ubuntu的服务器上。
我曾尝试使用SQL命令raster2pgsql,但我无法执行它。这个函数在postgis的所有发行版中都是标准的吗?或者我是否需要从其他来源(自制程序)重新安装扩展程序?
我还尝试通过QGIS插件加载栅格"加载所有",这似乎也无法将我的栅格(或矢量)数据加载到本地服务器。这是将批量数据加载到服务器中的最简单方法,还是不必要?
我确定我可能在整个过程中错过了一些简单的步骤,因为我对此很新,但感谢您的帮助。
答案 0 :(得分:2)
raster2pgsql
几乎是以 方式将光栅文件导入PostGIS。
您可以使用它来上传文件目录,但我有时更喜欢先使用QGIS的Raster-> Miscellaneous-> Merge方法将相关的图块拼接在一起,然后只需将合并的图块上传为单个图块geotif
。
当你说你无法执行raster2pgsql
时,我认为你的意思是你在这些方面遇到错误?
bash: raster2pgsql: command not found
如果是这样,有两个可能的问题:
1)PostGIS是否在本地安装?
2)你的路上是raster2pgsql
吗?
听起来你已经通过自制软件在本地安装了PostGIS。 raster2pgsql
是标准的(至少根据我的经验),因此问题很可能是您的bash环境无法解析raster2pgsql
可执行路径。
您可以尝试使用以下内容找到postgres的路径:
brew info postgres
请注意,我不会使用home-brew,因此您可能需要稍微调整一下,然后调查结果路径以找到postgres bin目录,该目录可能位于以下某处:
/path/to/homebrew/postgres/Versions/9.6/bin/raster2pgsql
或者,您可以尝试:
sudo find ~/ -name raster2pgsql
如果您仍然无法找到它,请尝试下载并安装适用于Mac的postgres应用,在这种情况下,您会找到
raster2pgsql
位于:
/Applications/Postgres.app/Contents/Versions/9.6/bin/raster2pgsql
如果您使用postgres应用程序路线,您不必通过应用程序实际安装和运行第二个或替代Postgres数据库,这只是一个方便的方式来获取
raster2pgsql
可执行文件。
找到完整路径后,您可以简单地使用完整路径调用raster2pgsql
命令,例如
/Applications/Postgres.app/Contents/Versions/9.6/bin/raster2pgsql ...etc...
或者将postgres bin目录添加到您的环境PATH
变量。