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 ?
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 ?
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)
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)
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)
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)
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?
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 ?
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?
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:
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
L'importante è individuare i doppioni; una volta individuati li selezioni
da dentro qgis.
/
Esattamente
Marco Curreli wrote/
Se i doppioni sono pochi, filtrare il dbf mi pare la soluzione più veloce
/
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...
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.
io preferisco la riga di comando, è molto più veloce (v. messaggio del 10
ottobre).
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
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 <sieradz@gmail.com> ha scritto:
Matteo Asioli wrote/
chiedo in particolare a Novarese
/
Cosa in particolare non ti funziona, la fase nel foglio elettronico o quella
in Qgis…_
La tecnica che ho suggerito scova i doppioni all'interno di un foglio
elettronico, dopodichè costruisce l'interrogazione SQL da incollare in Qgis.
1] lancia l'opensource Libreoffice, e setta la lingua come "inglese"
2] apri una copia PIPPO del file .DBF contenuto nello shapeset PLUTO
3] cancellare tutto tranne la colonna contenente i doppioni
4] sortare alfabeticamente la colonna A
5] supponendo che in A1 ci sia il nome del campo, inserisci in B2 la formula
*=IF(A3=A2)*
6] propaga il contenuto di B1 a tutta la colonna B
7] dove vedi TRUE significa che c'è un doppione
8] DATA => FILTER => AUTOFILTER ed estrapoli solo i valori TRUE (che in
Libreoffice sono marcati come "1")
9] copia la sotto-colonna A in un foglio vuoto, ottenendo i valori doppi
come occorrenze univoche
Rifatti vivo quando sei arrivato a questo punto, grazie.