+1 por la respuesta de NettaB, pero sólo quería añadir que si todos tus archivos tiff están en la misma carpeta deberías ser capaz de lograr esto usando un solo comando (ya sea desde la línea de comandos o a través de un subproceso en Python):
# Set environment variables for database connection
set PGHOST=db.qgiscloud.com
set PGPORT=5432
set PGUSER=enter_qgiscloud_user
set PGPASSWORD=enter_qgiscloud_pw
set PGDATABASE=enter_qgiscloud_db
# Call the raster2pqsql utility
raster2pgsql -s 3857 -C -F -t auto C:/qgis_cloud_data/*.tif schema.target_table | psql
Esto creará una nueva tabla llamada esquema.tabla_destino y empujar los datos en él. Si necesitas más información sobre los interruptores a utilizar, esto página es útil, e incluye algunos ejemplos.
Con la implementación de Python no necesitas usar Psycopg a menos que planees ejecutar consultas SQL - si sólo vas a cargar los datos directamente sólo necesitas la utilidad raster2pgsql. Así que su código puede ser adaptado a:
import os
import subprocess
db_name = 'enter_qgiscloud_db'
db_host = 'db.qgiscloud.com'
db_user = 'enter_qgiscloud_user'
db_password = 'enter_qgiscloud_pw'
# Set pg password environment variable - others can be included in the statement
os.environ['PGPASSWORD'] = db_password
# Build command string
cmd = 'raster2pgsql -s 3857 -C -F -t auto C:/qgis_cloud_data/*.tif schema.target_table | psql -U {} -d {} -h {} -p 5432'.format(db_user,db_name,db_host)
# Execute
subprocess.call(cmd, shell=True)
0 votos
¿Puede añadir más detalles? ¿Puedes mencionar lo que has probado, los errores recibidos, si estás estrictamente atado a usar QGIS Python, por qué ejecutar esto en la línea de comandos no es una opción, etc.?
0 votos
¿Puede dar más información sobre lo que está subiendo? ¿Son todos los rásteres parte del mismo conjunto de datos, como mosaicos SRTM de 1x1 grado, por ejemplo? ¿O tienen que ir en tablas separadas?
0 votos
Tengo que subir unos cientos de GeoTIFF en la nube de QGIS. Los mosaicos se exportan desde un software SIG propio. Subir los archivos .tif (40 MB) usando el plugin de la nube de QGIS es increíblemente lento.