[Gfoss] Errore nel backUp di postgres

>><i> E' per questo sono preferibili quei formati che abilitano il controllo
</i>>><i> con delle regole presenti intrinsecamente nel dato, ad es i formati
</i>>><i> basati su RDBMS come Postgis e Spatialite
</i>>
>forse mi sono perso qualcosa, ma Luca dice di avere editato i dati
>tramite QGIS direttamente in PostGIS quindi neanche gli RDBMS sono una
>garanzia assoluta.
>
>Ciao,
>
>Stefano

Certo che e’ possibile che una geometria diventi non valida dentro postgis.
E’ possibile in qualsiasi ambiente:
oracle, sde, shapefile,postgis e anche spatialite.

E’ una problematica che attiene alla rappresentazione del dato che nei computer e’ sempre in una aritmetica finita e non infinita.
A parole di parla di numeri reali, ma nella realta’ dei computers i numeri reali non sono , e quando effettui delle operazioni di taglio, ad esempio, introduci dei vertici che hanno dei leggerissimi (a livelli microscopici) spostamenti, che pero’ si moltiplicano per ogni singolo taglio che fai sulla medesima geometria questo effetto a cascata introduce delle somme di spostamenti che come effetto ultimo possono causare lo scavalcamento di un vertice rispetto a un altro e di conseguenza la nascita dei mitici fiocchetti.

Insomma questo succede in qualunque ambiente, postgis compreso.
Cambia solo l’entita dei microspostamenti che determinano questo effetto.
Nel geodatabase la griglia e’ variabile ma generalmente piu’ grossa rispetto a postgis, in postgis ha un certo grado di finezza (molto elevato), in oracle la grana e’ variabile e credo possa raggiungere sotto certe condizioni quella di postgis.

Ma ribadisco che anche postgis ha una griglia e quindi puo’ accedere anche li’.

Va aggiunto che alla nascita dei fiocchetti , oltre alla dimensione della griglia, concorre anche gli algoritmi impiegati nelle varie operazioni di taglio e cuci che i GIS compiono, e li’ pero’ mi fermo perche’ non so’ che algoritmi usano i vari strumenti.

In realta’ andrebbe poi chiarito che nel caso di postgis si dovrebbe in realta parlare di Geos , perche’ postgis usa Geos per tutte queste operazioni.
Come pure nel caso del geodatabase , in realta’ si dovrebbe parlare di arcview/arceditor perche’ e’ lui lo strumento che effettua realmente l’operazione.

Andrea Peri
. . . . . . . . .
qwerty àèìòù

Dopo aver letto la vostra discussione ho fatto un po’ di prove.

Ho creato un layer postgis vuoto e ci ho incollato dentro le geometrie non valide che ho nel layer che non mi backuppa, quelle col ‘fiocchetto’ per intenderci. Ho disegnato io stesso da qgis dei fiocchetti sia senza che con l’editing topologico attivo, oppure con l’impedisce intersezione, ma nulla, qgis mi fa chiudere la modifica e i dati sono salvati. A questo punto ho provato a fare il backup di questo layer di test e il back up viene eseguito correttamente, nonostante la query di validazione delle geometrie mi dica che tutte le geometrie presenti sono errate.

ergo: i cari “fiocchetti” son ben accetti mentre non ho individuato il problema sul back up dato dal: ERROR: geometry contains non-closed rings.

Cercherò queste geometrie non chiuse e provo a capire come sono state generate.

ciao

luca

ergo: i cari “fiocchetti” son ben accetti mentre non ho individuato il problema sul back up >dato dal: ERROR: geometry contains non-closed rings.

Una ipotesi potrebbe essere che si trattava in origine di “holes” in un poligono.
A causa di operazioni varie, si sono contratti diventando delle linee in cui il vertice iniziale e quello finale non coincidono.
a questo punto saresti passato da poligono con buco interno a poligono con linea non chiusa interna, classificata pero’ come poligono.
Chiaramente poiche’ postgis si aspetta una geometria poligonale a delimitare il buco, il fatto che il vertice iniziale e quello finale non coincidano e’ per lui un chiaro errore che ti segnala.

Il giorno 09 settembre 2010 13:39, Luca Mandolesi <mandoluca@gmail.com> ha scritto:

Dopo aver letto la vostra discussione ho fatto un po’ di prove.

Ho creato un layer postgis vuoto e ci ho incollato dentro le geometrie non valide che ho nel layer che non mi backuppa, quelle col ‘fiocchetto’ per intenderci. Ho disegnato io stesso da qgis dei fiocchetti sia senza che con l’editing topologico attivo, oppure con l’impedisce intersezione, ma nulla, qgis mi fa chiudere la modifica e i dati sono salvati. A questo punto ho provato a fare il backup di questo layer di test e il back up viene eseguito correttamente, nonostante la query di validazione delle geometrie mi dica che tutte le geometrie presenti sono errate.

ergo: i cari “fiocchetti” son ben accetti mentre non ho individuato il problema sul back up dato dal: ERROR: geometry contains non-closed rings.

Cercherò queste geometrie non chiuse e provo a capire come sono state generate.

ciao

luca

Andrea Peri
. . . . . . . . .
qwerty àèìòù