QGIS 2.0
Qualcuna mi sa indicare la procedura corretta per individuare (e selezionare) dei valori (di un campo) doppi in un tabella attributi con + di 8000 record da passare i rassegna ?
A.Ummarino
|
Ho capito bene, una cosa tipo questa ti servirebbe: http://stackoverflow.com/questions/2594829/finding-duplicate-values-in-a-sql-table Ciao Luca 2013/10/10 Ummarino <[hidden email]> QGIS 2.0 _______________________________________________ [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 |
Mi sembra di si...ma in QGIS come posso selzionare (o meglio fare una selezione) in una tabella attribuiti dei doppioni di un valore di un campo??
Pensavo di selezionare i valori unici e poi invertire la selezione....ma mi sono accorto che non sò come selezionare i valori unici !!!! (la tabella ha più di 8000 record)
A.Ummarino
|
su spatialite-GUI e anche sulla CLI
ci sono due procedure per localizzare doppioni e per rimuoverli. On 10/10/2013 15:20, Ummarino wrote: > Mi sembra di si...ma in QGIS come posso selzionare (o meglio fare una > selezione) in una tabella attribuiti dei doppioni di un valore di un campo?? > Pensavo di selezionare i valori unici e poi invertire la selezione....ma mi > sono accorto che non sò come selezionare i valori unici !!!! (la tabella ha > più di 8000 record) > > > > ----- > A.Ummarino > -- > View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/inividuare-record-doppioni-tp7583918p7583921.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 _______________________________________________ [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 Ummarino
aspetta, forse te ti riferivi a un capo solo.
Le procedure di spatialite invece localizzano record doppioni. Ovvero doppioni su tutti i campi salvo la PK ovviamente. Andrea. On 10/10/2013 15:20, Ummarino wrote: > Mi sembra di si...ma in QGIS come posso selzionare (o meglio fare una > selezione) in una tabella attribuiti dei doppioni di un valore di un campo?? > Pensavo di selezionare i valori unici e poi invertire la selezione....ma mi > sono accorto che non sò come selezionare i valori unici !!!! (la tabella ha > più di 8000 record) > > > > ----- > A.Ummarino > -- > View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/inividuare-record-doppioni-tp7583918p7583921.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 _______________________________________________ [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 Ummarino
2013/10/10 Ummarino <[hidden email]> Mi sembra di si...ma in QGIS come posso selzionare (o meglio fare una Allora, fatico ancora a capire, stai dicendo che in una tabella persone ID | nome | cognome 1 | Luca | Mandolesi Tabella attributi ID | ForegnKey | Indirizzo 1 | 1 | Via san Giorgio 12 2 | 1 | Via san Giorgio 12 é questo a cui ti riferisci? Vuoi individuare i record doppi sia per foreignKey che per campo che scegli tu? Ho capito bene?
_______________________________________________ [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 |
Forse è un pò piu semplice:
In QGIS il layer "persone.shp" ha una tabella attributi "persone.dbf". Voglio "selezionare" i doppioni relativi a un campo attributi: Tabella persone ID | NOME | COGNOME|ALTRO 1 | paolo | rossi | rossi_brutto1 2 | andrea | bianchi | bianchi_bello1 3 | paolo | rossi | rossi_brutto1 4 | luca | verdi | verdi_bello1 5 | andrea | bianchi | bianchi_bello2 Devo eliminare il record ID 3.....sulla base del doppione del campo ALTRO, quindi o lancio una selezione di tutti i recod univoci (sempre sulla base del campo ALTRO) e poi per eslusione elemino gli altri che a questo punto sono i miei doppioni...o individuo i doppioni....e li elimino Come si fa in QGIS ?
A.Ummarino
|
AH attributi in quel senso...il dbf alla fine fa sempre parte di quelle che definiamo shapefile. Cmq io lo passerei dentro a spatialite e userei l'SQL per ripulirlo... sul DBF non mi viene in mente nulla. Ma magari son bollito a fine giornata...QUalche Guru di Qgis in ascolto?
_______________________________________________ [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 |
Credo che il metodo piu' veloce sia caricare il DBF in Excel, estrapolare i doppioni con una condizione IF e, sempre in Excel, assemblare una clausola Sql per Qgis che nell'esempio suddetto sarebbe: "ID" = "1" OR "ID" = "3" |
In reply to this post by Ummarino
Se ho capito bene l'intento è quello di ca ncella re i doppioni all'interno degli attributi di uno shape.
Se non sbaglio un qgis manca una funzione per fare una sql "completa su uno shape
infatti lo strumento interrogazione o lo stesso field calculator mettono a disposizione solo la clausola (where) cmq in effetti per fare ciò che si richiede, cioè cancellare i doppioni, lo shape deve essere trasferito in un db sqlite o postgres e lanciare una sql del genere:
SELECT * FROM nome_tab, (SELECT max([id]) as id_tab from nome_tab GROUP BY attributo_duplicati) AS b WHERE nome_tab.[id] = b.id_tab; in pratica nella tabella nome_tab l' "id" è il campo univoco e " attributo_duplicati" è il campo dove voglio eliminare i doppioni. una volta lanciata la query ad esempio in spatialite tasto destro ed esporti in un altro shp. bada però che creerai un'altra colonna che in questo esempio si chiama id_tab che puoi sempre cancellare dopo.
ciao
enzo
Il giorno 10 ottobre 2013 18:25, <[hidden email]> ha scritto: Invia le richieste di iscrizione alla lista Gfoss all'indirizzo Enzo Cocca (PhD Candidate)
Research Fellow Università di Napoli "L'Orientale" mail: [hidden email]
cell: +393495087014 _______________________________________________ [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
Direi che alla fine la soluzione più veloce è proprio come dici tu...foglio di calcolo e via
A.Ummarino
|
E come fai a tenere allineate le geometrie del file .shp con gli
attributi del file .dbf ? :)) Lo shapefile ha una relazione posizionale. Il foglio excel ti consente di rimuovere elementi da il dbf, ma non interviene nel file .shp. Per cui ti ritrovi alla fine con uno shapefile "corretto", perche' avrai N record nel file shp e N-X record nel file dbf (dove X sono i doppioni rimossi). Stai attento a fare le cose per bene altrimenti ti ritrovi poi con un altro problema molto meno gestibile di questo. Io userei la spatialite-gui . Andrea. On 12/10/2013 14:32, Ummarino wrote: > Direi che alla fine la soluzione più veloce è proprio come dici tu...foglio > di calcolo e via > > > > ----- > A.Ummarino > -- > View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/inividuare-record-doppioni-tp7583918p7583990.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 _______________________________________________ [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 |
L'importante è individuare i doppioni; una volta individuati li selezioni da dentro qgis. Se i doppioni sono pochi, filtrare il dbf mi pare la soluzione più veloce; se sono molti è meglio portare tutto su spatialite, come hai detto tu. Ciao, Marco |
Esattamente :) Siccome Unmarino parlava di 8000 record, quindi un numero inferiore ai 2^16 gestiti da Excel 200x, la procedura che ho indicato sopra e' probabilmente la piu' agile. Piuttosto mi chiedo se Libreoffice (o altro foglio elettronico opensource) la supporti, sia nella fase IF che nell'assemblaggio dell'espressione Sql... |
io preferisco la riga di comando, è molto più veloce (v. messaggio del 10 ottobre). |
Cronometro alla mano, hai senz'altro ragione, ma permettimi un appunto da ignorante totale dell'ambiente Grass. Quando tu deleghi l'eliminazione automatica dei doppioni ad un comando a basso livello, non sai "quale" verra' cancellato, e mi spiego. Se i 2 oggetti di uguali attributi sono geometricamente sovrapposti, poco male, mi sta bene anche l'automatismo. Qualora invece gli oggetti siano fisicamente distanti fra loro (pur avendo identici attributi), quale dei due Grass eliminera' e con quale criterio? |
Nello specifico, mi riferivo all'indivuazione dei doppioni, partendo dal dbf esportato come csv: cat miofile.csv | gawk -F"," '{print $3}' | uniq -dc oppure in grass: v.db.select map=mymap | gawk -F"|" '{print $4}' | uniq -dc restituisce le righe duplicate, indicando il numero di duplicazioni |
In reply to this post by Novarese
Scusate se mi attacco alla discusione un po in ritardo e forse chiusa, ma avevo proprio l'identico problema sulla individuazione dei doppioni. Ho visto che in QGis c'è un comando sulla ricerca dei valori univoci...che poi non capisco come diceva Novarese che invertiva per selezionare i doppioni....poi non ho ben capito come è stata risolta la questione sulla eliminazione di uno dei due doppioni individuati...chiedo in particolare a Novarese..
Grazie |
This post was updated on .
Cosa in particolare non ti funziona, la fase nel foglio elettronico o quella in Qgis..? |
in Qgis riesco ad individuare i record univoci, ma non capisco come selezionare poi i doppioni, e ad ogni modo una volta individuati, quale procedura usare per andare a escludere uno dei due valori doppi. In sostanza non ho ben capito la soluzione che si proponeva.
Il giorno 29 ottobre 2013 18:22, Novarese <[hidden email]> ha scritto: Matteo Asioli wrote/ _______________________________________________ [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 |
Free forum by Nabble | Edit this page |