4 votos

La importación de múltiples archivos .asc en PostGIS viola la restricción de verificación. ¿Por qué?

Estoy importando miles de archivos .asc en PostGIS en esta tabla:

CREATE TABLE stg.COUNTRY_1M(rid serial primary key, rast raster);
CREATE INDEX ON stg.COUNTRY_1M USING gist (st_convexhull(rast));

desde la línea de comandos:

export PGPASSWORD=mypasswd
for i in $(ls *.asc); do raster2pgsql -a -C -I -s 27700 -t 1000x1000 "$i" stg.COUNTRY_1M | psql -U user1 -d data_processing -h localhost -q; done

pero estoy recibiendo el siguiente error a partir del segundo archivo:

Processing 1/1: country_1m.asc
ERROR:  new row for relation "country_1m" violates check constraint "enforce_max_extent_rast"
DETAIL:  Failing row contains (2, 0100000100000000000000F03F000000000000F0BF0000000080841E41000000...).
etc.

¿Cómo puedo generar una tabla para todos los puntos ráster sin errores?

6voto

Patrick Puntos 20392

Puedes hacer todo esto en un solo paso, por ejemplo

raster2pgsql -c -s 27700 -C -I -f rast *.asc -t 100x100 stg.COUNTRY_1M 
| psql -U treex -d data_processing -h localhost

-c significa crear, que es el valor por defecto. Dado que se puede utilizar *.asc, no es necesario utilizar

for i in $(ls *.asc); do raster2pgslq ...; done

ya que todos los archivos .asc se pasarán a raster2pgsql y esto evitará el error que estás viendo de intentar añadir fichas a una tabla que ya tiene restricciones.

Por otra parte, a partir de su pregunta anterior, sé que se trata del LIDAR del Reino Unido, que es un conjunto de datos bastante grande. Sería conveniente que utilizaras -t interruptor para embaldosar su entrada, donde el tamaño del embaldosado se expresa en píxeles, por ejemplo, -t 100x100 . Algo en el rango de 100-200 píxeles parece funcionar bien.

Sin embargo, no hay mucha literatura al respecto este blog describe algunos de los efectos del tamaño de las baldosas en el rendimiento.

Como puedes ver en la imagen de abajo, las funciones de superposición de polígonos/rasters son mucho más rápidas con tamaños de mosaico más pequeños, lo que tiene sentido, hasta cierto punto. Yo estaba haciendo muchas consultas de construcción de vectores/LIDAR en mosaico, y encontré que el mosaico conducía a un orden de magnitud de mejora en el tiempo de consulta. Obviamente, esto dependerá en cierta medida del tamaño de tus vectores.

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X