使用 raster2pgsql 将 GTiff 文件插入 PostGIS table

Insert GTiff-file into PostGIS table using raster2pgsql

我正在尝试使用 raster2pgsql 命令将 GTiff 文件插入特定的 PostGIS table。到目前为止,我设法将 GTiff 文件插入到我连接的 PostGIS 数据库中。但这会创建一个新的 table,其中包含 GTiff 文件的文件名。之后我也可以将栅格数据移动到目标 table,但我想还有更有效的方法。

这是一个例子:

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())

有没有办法将栅格数据直接插入现有的 table?

我知道我可以使用 -a 将栅格附加到现有的 table 并使用 -f 指定列名。但是似乎没有办法指定 table.

的名称

如果您想自己指定table,您的查询必须是这样的:

raster2pgsql -s 4326 -I -C -M C:\temp\test_1.tif -t 100x100 myschema.mytable > out.sql

如果你想将光栅添加到现有的 table,你是对的,你必须使用“-a”值