我试图使用raster2pgsql命令将GTiff文件插入到一个特定的PostGIS表中。到目前为止,我成功地将GTiff文件插入到我所连接的PostGIS数据库中。但是这将创建一个新的表,表名为GTiff-file。我也可以在之后将栅格数据移动到目标表中,但我想有一个更有效的方法。
下面是一个例子。
import psycopg2
import os
tif_path = 'test.tif'
conn = psycopg2.connect(
host = 'localhost',
port = 5432,
user = 'postgres',
dbname = 'gisdb'
)
curs = conn.cursor()
curs.execute("SET postgis.gdal_enabled_drivers = 'ENABLE_ALL';")
os.system('raster2pgsql "%s" > temp.sql'%tif_path)
curs.execute(open('temp.sql','r').read())
有没有一种方法可以直接将栅格数据插入到现有的表中?
我知道我可以使用 -a
将栅格附加到现有的表中,并通过使用 -f
. 但似乎没有办法指定表的名称。
如果你想自己指定表,你的查询必须是这样的。
raster2pgsql -s 4326 -I -C -M C:\temp\test_1.tif -t 100x100 myschema.mytable > out.sql
如果你想把光栅添加到现有的表中,你是对的,你必须使用"-a "值