Вставьте GTiff-файл в таблицу PostGIS, используя raster2pgsql - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь вставить GTiff-файл в указанную c таблицу PostGIS, используя команду raster2pg sql. Пока мне удалось вставить GTiff-файл в базу данных PostGIS, к которой я подключен. Но это создает новую таблицу с именем файла GTiff-файла. Затем я мог бы также переместить растровые данные в целевую таблицу, но я полагаю, что есть более эффективный способ.

Вот пример:

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. Но, похоже, нет способа указать имя таблицы.

1 Ответ

1 голос
/ 29 апреля 2020

Если вы хотите указать таблицу самостоятельно, ваш запрос должен выглядеть следующим образом:

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

Если вы хотите добавить растр в существующую таблицу, вы правы, вы должны использовать «-a» значение

...