inividuare record doppioni

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
51 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

Matteo Asioli
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:
Ciao Matteo, mi faresti capire se i doppioni presenti nel tuo shapefile sono doppi a livello di dati o anche a livello di geometria duplicata, quindi medesime coordinate?
Grazie 
Luca


2013/10/31 Geo DrinX <[hidden email]>
Scusate, ma ho seguito questa discussione molto distrattamente, e quindi è molto probabile che lo abbiate già detto.

Ma cosa vi impedisce di usare la funzione "Maintenance - Remove duplicate rows"  di SpatiaLite ?

Semplice, immediata e pulita.


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


_______________________________________________
[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


_______________________________________________
[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
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

Andrea Peri
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:
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:

Ciao Matteo, mi faresti capire se i doppioni presenti nel tuo shapefile sono doppi a livello di dati o anche a livello di geometria duplicata, quindi medesime coordinate?
Grazie 
Luca


2013/10/31 Geo DrinX <[hidden email]>
Scusate, ma ho seguito questa discussione molto distrattamente, e quindi è molto probabile che lo abbiate già detto.

Ma cosa vi impedisce di usare la funzione "Maintenance - Remove duplicate rows"  di SpatiaLite ?

Semplice, immediata e pulita.


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


_______________________________________________
[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


_______________________________________________
[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



--
-----------------
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
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

Novarese
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...
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

Antonio Falciano
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
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

Andrea Peri
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
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...



-----

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/inividuare-record-doppioni-tp7583918p7584588.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.
_______________________________________________
[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



--
-----------------
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
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

Novarese
In reply to this post by Matteo Asioli
Matteo Asioli wrote
ancora non conosco SpatialLite
A titolo di cronaca, per eliminare i duplicati geometricamente sovrapposti, non c'e' bisogno di scomodare SpatiaLite, ma e' sufficiente il meraviglioso plugin MMQGIS...
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

geodrinx
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
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).


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
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

Novarese
Geo DrinX wrote
SpatiaLite rimuove i duplicati come attributi alfanumerici

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
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

a.furieri
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
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

geodrinx
In reply to this post by Novarese



Il giorno 04 novembre 2013 08:06, Novarese <[hidden email]> ha scritto:
Geo DrinX wrote/
> SpatiaLite rimuove i duplicati come attributi alfanumerici
/


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


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
Reply | Threaded
Open this post in threaded view
|

Re: inividuare record doppioni

Ummarino
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
123