[Gfoss] shp2pgsql: come verificare la validità delle geometrie prima dell'import?

Vito Meuli vitomeuli a libero.it
Ven 8 Apr 2011 00:08:14 CEST


E' un problema che non ho trattato io direttamente, ma un ex collega.
Suggerimenti che mi ricordo:
*se hai un SW ESRI a disposizione, c'è una funzione di "pulizia" dello
shape (è l'unica che veniva considerata affidabile in mezzo a diverse
routine di pulizia di sw diversi)
*imponi a shp2pgsql di elaborare lo shape a blocchi di 1 sola
geometria anziché a blocchi di 500 - non ricordo se c'era un parametro
o se il collega ha modificato i sorgenti così si ferma esattamente
alla riga errata, e non al blocco...ma forse non ti cambia un granché,
comunque scopri un solo errore alla volta...

Non so quanto potranno essere di aiuto questi suggerimenti.
Buona fortuna!
Vito

Il 07/04/11, Amedeo Fadini<fame a libero.it> ha scritto:
> Buongiorno lista,
> mi trovo con uno shape con circa 20mila poligoni (fabbricati da CTR)
> che non riesco ad importare in postgis (8.3) perchè ci sono alcune
> geometrie invalide e mi restituisce l'errore
> "geometry contains non-closed rings"
>
> la cosa strana è che se uso il comando controlla validità geometria di
> ftools in qgis (1.6.0) non mi segnala questi errori ma altri (vertici
> duplicati)
>
> sto cercando un modo veloce per ottenere una lista delle geometrie non
> valide: quando lancio psql -f stampa il numero di riga in cui compare
> l'errore, ma il file .sql è molto lungo e diviso in più blocchi
> per ora ho pensato di modificare il file sql ottenuto da shp2pgsql e
> controllare la validità di ogni riga con ST_IsValid, ma dovendo
> automatizzare l'intero processo (caricamento shape e alcune operazioni
> sulle tabelle) mi chiedo se c'è un sistema migliore.. non dovrei
> trovare i numeri di riga anche nel log di postgresql?
>
> Se qualcuno ha un consiglio, grazie di cuore
>
> Amedeo
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> Gfoss a lists.gfoss.it
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> Non inviate messaggi commerciali.
> I messaggi di questa lista non rispecchiano necessariamente
> le posizioni dell'Associazione GFOSS.it.
> 502 iscritti all'11.2.2011

-- 
Inviato dal mio dispositivo mobile

Ciaociao
Vitomeuli
---
https://sites.google.com/site/vitomeuli/


Maggiori informazioni sulla lista Gfoss