Ho preso una copia del libro malvagio 'Python Geospatial Development' di Erik Westra ( link Amazon ), e ci sto lavorando. Attualmente, mi sta insegnando a caricare i dati della costa GSHHS da un file di forma in un database PostGIS, in preparazione della creazione di un'app Web geospaziale.
Il mio problema è questo: quando provo a importare i dati GSHHS in PostGIS, questi vengono rifiutati a causa del fatto che i poligoni della costa non vengono considerati "validi". Nello specifico, mi viene fornito un messaggio di errore che descrive alcuni (ma non tutti) i poligoni della linea costiera come "anelli non chiusi".
Capisco che questo errore sta cercando di dirmi che il primo e l'ultimo punto del poligono non sono gli stessi. Tuttavia, questo non è semplicemente vero. Ho esaminato la rappresentazione WKT di molti poligoni e sono corretti. Hanno sicuramente iniziano e terminano con lo stesso co-ordinata.
I poligoni vengono estratti dai file di forma utilizzando la libreria OGR ed esportando ogni funzione poligonale in WKT. Ho provato a ricostituire il poligono tramite Shapely e ho sperimentato WKB, ma senza risultati. Sono già stati in grado di caricare gli stessi dati in PostGIS come tabella MULTIPOLYGON, utilizzando il caricatore shp2pgsql.
Mi chiedevo se qualcuno là fuori avesse:
(a) forse usato lo stesso libro, bloccato sullo stesso problema e ha la risposta per me?
(b) ha riscontrato un problema simile e trovato una soluzione?
(c) in caso contrario, dispone di alcuni consigli sulle "migliori pratiche" per garantire una geometria valida prima di caricarla in PostGIS?
AGGIORNAMENTO: un collega ha suggerito che il problema degli "anelli non chiusi" potrebbe essere solo un sintomo di un altro problema. È possibile che la mia configurazione PostGIS / PostgreSQL abbia limiti di dimensione (su transazioni di inserimento, pacchetti ricevuti, stringhe di testo, ecc.).
Poiché sto usando poligoni WKT molto lunghi come input, PostGIS potrebbe tagliarli troppo presto per consentire il completamento di ciascun poligono. Lo proverò domani, ma sembra probabile. La mia inserzione di confini nazionali accettava solo alcuni documenti e non altri. A memoria, le geometrie accettate erano per piccole nazioni insulari come Antigua (e quindi probabilmente avevano rappresentazioni WKT brevi).
Quindi questo potrebbe finire per essere più un thread di amministrazione del database PostGIS, piuttosto che un thread di geometria non valido.