si erano doppi sia in senso di geometria che di dati... scusate ma ancora non conosco SpatialLite Il giorno 31 ottobre 2013 18:24, Luca Mandolesi <[hidden email]> ha scritto:
_______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
In effetti sarebbe facile, ma a prima vista non lo sembra perche' la GUI di spatialite ha una chiave di lettura abbastanza indigesta all'inizio. Comunque questi sono i passi che immagino dovresti compiere se vuoi provare: ti scarichi questo file lo esplodi e lanci l'eseguibile:http://www.gaia-gis.it/gaia-sins/windows-bin-x86/spatialite_gui-1.7.1-win-x86.zip Una volta lanciato gli dici di creare un db in memoria (cosi' non lasci strascichi sul pc). con file -> memory db -> creating a new empty memory db Poi,carichi lo shapefile con i sospetti doppioni usando: file -> advanced -> load-shapefile. gli dici il sistema di riferimento (ad esempio epsg:3003) e il character-set (ad esempio CP1252) Una volta caricato esso appare nell'albero che vedi sulla sinistra. Evidenzi tale tabelle e poi tasto destro, e scegli maintenance -> remove duplicate row poi risalvi lo shapefile con: click sul simbolo "+" accanto alla tabella dello shapefile che hai appena corretto. poi ti cerchi la colonna geometrica (di solito chiamata "geometry") la evidenzi e poi tasto destro e scegli la voce
"export as shapefile" E ti ritrovi un nuovo shapefile senza doppioni. Poi chiudi la GUI.
A. Il giorno 31 ottobre 2013 18:33, Matteo Asioli <[hidden email]> ha scritto:
-- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
Signori, mi pare di capire che il "remove duplicate row" di spatiaLite effettui una purga sui duplicati geometrici (ossia perfettamente sovrapposti) mentre l'OP Ummarino credo che alludesse agli oggetti con attributi duplicati (anche geometricamente distanti fra loro).
A mio modesto avviso, la rimozione di oggetti sovrapposti puo' essere tranquillamente delegata ad un automatismo software, ma se gli oggetti sono distanti, allora e' l'utente che deve "scegliere" di quali privarsi... |
Il 01/11/2013 08:51, Novarese ha scritto:
> Signori, mi pare di capire che il "remove duplicate row" di spatiaLite > effettui una purga sui duplicati geometrici (ossia perfettamente > sovrapposti) mentre l'OP Ummarino credo che alludesse agli oggetti con > attributi duplicati (anche geometricamente distanti fra loro). > > A mio modesto avviso, la rimozione di oggetti sovrapposti puo' essere > tranquillamente delegata ad un automatismo software, ma se gli oggetti sono > distanti, allora e' l'utente che deve "scegliere" di quali privarsi... Infatti... Gestire gli attributi duplicati non e' automatizzabile, a meno che non sia definibile un criterio di priorita' sulle geometrie. Se puo' essere utile, gvSIG 1.12 ha un tool dedicato "Tabella --> Seleziona duplicati" che si attiva una volta selezionato un campo in tabella. Non e' presente di default, per cui va installato a parte mediante il Gestore delle estensioni --> Installazione da URL --> org.gvsig.selectduplicates. ciao Antonio -- Antonio Falciano http://www.linkedin.com/in/antoniofalciano _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
In reply to this post by Novarese
Sicuramente è cosi' come dici te.
Se sono oggetti identici , nel senso che hanno medesimi attributi e medesima geometria (unica deroga la chiave primaria che spesso è delegata a un campo auto-incrementale), se pero anche un solo camo (a parte la pk) diverge e qui ci metto anche la geometria , allora non si puo' piu' affidarsi a un automatismo, ma serve una selezione ragionata. La remove-duplicate di splite rimuove solo se sono tutti uguali geometria compresa (meno la pk).
Andrea. Il giorno 01 novembre 2013 08:51, Novarese <[hidden email]> ha scritto: Signori, mi pare di capire che il "remove duplicate row" di spatiaLite -- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
In reply to this post by Matteo Asioli
A titolo di cronaca, per eliminare i duplicati geometricamente sovrapposti, non c'e' bisogno di scomodare SpatiaLite, ma e' sufficiente il meraviglioso plugin MMQGIS... |
In reply to this post by Novarese
Il giorno 01 novembre 2013 08:51, Novarese <[hidden email]> ha scritto: Signori, mi pare di capire che il "remove duplicate row" di spatiaLite SpatiaLite rimuove sia i duplicati grafici, sia i duplicati come attributi alfanumerici, nella combinazione che si vuole. Dipende come si struttura la query.
Provare per credere. Roberto _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
Ho capito, ma casualmente o sulla base di un qualche criterio? Gentilmente provalo col seguente mini-shapefile, e facci sapere, grazie: http://novarese.t15.org/gfoss/isole.zip |
On Sun, 3 Nov 2013 23:06:11 -0800 (PST), Novarese wrote:
> Geo DrinX wrote/ >> SpatiaLite rimuove i duplicati come attributi alfanumerici > / > > > Ho capito, ma casualmente o sulla base di un qualche criterio? > Ciao Novarese, l'idea di sviluppare tutta una nuova generazione di tools sw interamente basati su criteri stocastici e' decisamente molto interessante ... purtroppo per ora SpatiaLite ha un orizzonte di riferimento molto piu' angusto di tipo tradizionale, e quindi le versioni attuali supportano esclusivamente algoritmi rigidamente deterministici :-D > Gentilmente provalo col seguente mini-shapefile, e facci sapere, > grazie: > http://novarese.t15.org/gfoss/isole.zip > il tuo SHP contiene due features geometriche (sicilia e sardegna), con un unico attributo informativo associato di tipo alfanumerico che assume in entrambi i casi il medesimo valore = "isola". dato che l'algoritmo "ammazza-doppioni" di splite confronta *tutti* i valori-colonna (eccetto quelli che appartengono ad una eventuale Primary Key), ne consegue che le due righe sono sicuramente diverse tra di loro, e quindi il verdetto e' che non esiste nessuna feature duplicata all'interno del dataset "isole". short recall: SpatiaLite e' semplicemente un'implementazione conforme degli standard internazionali OFC/SFS ed ISO SQL/MM che dettano le linee guida di implementazione per gli Spatial DBMS e per lo Spatial SQL. cioe' sostanzialmente e' uno strumento che supporta esattamente le medesime capacita' di Spatial Processing offerte da PostGIS e/o altri blasonati (e ben costosi) Spatial DBMS proprietari; con l'unica differenza che SpatiaLite e' di una semplicita' assolutamente elementare, e' sorprendentemente compatto e non richiede nessun tipo di installazione e configurazione. ed offre il bonus aggiuntivo che consente di importare ed esportare in modo assai semplice anche i vetustissimi ed obsoleti Shapefiles. SQL e' notoriamente un linguaggio standard progettato apposta per elaborare in modo efficiente datasets anche di enormi dimensioni (svariate decine di milioni di features, e pure oltre). ergo, ragionando in termini di puro SQL il problema di identificare tutti i duplicati presenti all'interno di un dataset diventa una banale query SQL estremamente compatta basata sui criteri di aggregazione (N.B. il bello di Spatial SQL e' che anche le geometrie diventano finalmente "dati normali", piu' o meno proprio come gli altri): SELECT Count(*) AS dupl_cnt, colonna1, colonna2, ...., colonnaN FROM tavola GROUP BY colonna1, colonna2, ..., colonnaN HAVING dupl_cnt > 1; e questo e' esattamente cio' che fa il tool "ammazza-doppioni" di SpatiaLite; una volta identificati i "doppioni" puo' opzionalmente procedere eliminando tutte le occorrenze ridondanti eccetto la prima. il valore aggiunto consiste banalmente nel fatto che e' direttamente il tool che si auto-scrive la query caso per caso previa ispezione delle meta-tavole di sistema del DB per generare l'elenco di tutte le colonne (comprese le eventuali geometrie) che appartengono alla tavola bersaglio. stop: nulla di piu' e nulla di meno. come vedi, non c'e' proprio nulla di "casuale", e' tutto rigorosamente deterministico e facilmente riproducibile dall'A alla Z. ;-) nel "caso speciale" che ho visto citare in alcuni dei post precedenti (valutare i doppioni solo in base ai valori degli attributi ignorando le geometrie, o viceversa valutare solo le geometrie ignorando gli attributi, oppure valutare solo i valori di alcuni attributi ignorandone altri) il percorso diventa un pelino piu' complesso ma niente affatto proibitivo: - prima occorre derivare una tavola intermedia che contenga solo i valori che si vogliono prendere in considerazione - poi si usera' l'"ammazza-doppioni" su questa tavola - ed infine si potra' ricostruire il dataset complessivo finale eseguendo una banale JOIN tra le due tavole. - ovviamente in questo caso occorrera' sempre prestare la massima attenzione a preservare fedelmente tutti i valori delle Primary Keys durante le varie fasi del processo. ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
In reply to this post by Novarese
Il giorno 04 novembre 2013 08:06, Novarese <[hidden email]> ha scritto: Geo DrinX wrote/ Divertente ;) Diciamo che un DB con un campo solo è utilissimo. Magari, se ci fosse anche un campo "nome", forse ne uscirebbe qualcosa di più del gioco "chi butti giù dalla torre"... Ciao Roberto _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 666 iscritti al 22.7.2013 |
In reply to this post by Novarese
x Novarese...
MMQgis è un ottimo plugin !! Cmq il mio problema più che la sovrapposizione di geometria è relativa a doppioni di attributi di tabelle dbf da gestire a prescindere dalla geometria e rimanendo nello stesso ambiente di lavoro (i.e. sessione di QGIS). Il tool di GVSig segnalato da Antonio sembrerebbe perfetto. Magari qualche smanettone pythonato riesce a replicarlo per QIS ... Grazie a tutti per tutti i suggerimenti.
A.Ummarino
|
Free forum by Nabble | Edit this page |