Unire file CSV non spaziale a dati spaziali (shapefile) usando QGIS?


40

Ho un file CSV che contiene i dati del codice postale in un campo, ma non è spaziale, ad esempio senza Easting e Northing.

Ho un file di forma con codice postale in un campo e alcuni dati aggiuntivi.

Voglio unirmi al CSV con lo shapefile basato sugli attributi (campi del codice postale). So di poterlo fare in ArcMap, ma come posso ottenere la stessa cosa in QGIS?


Come si fa nella versione 2.3.0-Master?

Nella versione 2.8 (e anche con alcune versioni precedenti in precedenza) non riesco a farlo funzionare. Il tentativo di aderire corrisponde ai dati del codice postale del Regno Unito. Usando mmqgis ricevo un errore "nessuna geometria nel livello del codice postale" o qualcosa di molto simile. Usando la funzione di join QGIS ottengo un join dei dati ma nessuna geometria aggiunta al CSV. Molto molto frustrato da questo problema.
Rostranimin,

1
Ciao @Rostranimin. Lo stai facendo nel modo giusto, ovvero unendo i dati CSV ai dati dello shapefile, dalla finestra di dialogo "Proprietà" dello shapefile?
Stragu,

Risposte:


28

Un modo rapido è usare il plug-in mmqgis che unirà il tuo file CSV allo shapefile dai campi del codice postale

inserisci qui la descrizione dell'immagine


4
Ehi guarda! C'è il mio plug-in File Browser: D
Nathan W

1
Buon lavoro Nathan - lo sta usando molto, funziona bene.
Mapperz

1
Funziona bene, proprio quello di cui avevamo bisogno. Un grande grazie!
gisuser,

ciao, provo a farlo ma ricevo il seguente errore Traceback (ultima chiamata più recente): File "C: /Users/Juan/.qgis/python/plugins \ mmqgis \ mmqgis_dialogs.py", linea 65, nel dialetto browse_infiles = csv.Sniffer (). sniff (infile.read (1024)) File "C: \ PROGRA ~ 1 \ QUANTU ~ 1 \ apps \ Python25 \ lib \ csv.py", riga 160, in sniff raise Error, "Potrebbe errore "non determinare il delimitatore": impossibile determinare il delimitatore

@Carlos: Quale delimitatore usi nel file CSV?
underdark

39

La prossima versione di QGIS versione 1.7 avrà una funzione di join integrata nelle proprietà del layer. Anche la velocità dei join è piuttosto impressionante.

Passaggi per aderire:

  1. Apri CSV tramite l'icona Apri vettore.
  2. Apri la scheda delle proprietà sul livello a cui vuoi unirti (la tua mappa)
  3. Fai clic sulla scheda Partecipa e premi il pulsante +
  4. Seleziona il livello CSV e le due colonne su cui vuoi unirti.
  5. Premi ok nella finestra di dialogo delle proprietà.

Partecipa a QGIS


Bello. L'aggiunta di file CSV mediante il livello Aggiungi vettore non è intuitiva. Vorrei saperlo prima.
RK,

1
Quattro anni dopo e questo non funziona ancora in modo affidabile come il plug-in MMQGIS IME.
Camdenl,

1
Questo è stato molto più veloce del plug-in MM. Per aggiungere il livello dati, usa il livello -> aggiungi testo delimitato-> csv
Statistiche di apprendimento con l'esempio

0

Se carichi i tuoi dati in MS Access, ftools ti permetterà di unirti a una tabella MS Access.

Si avvia il programma di installazione del plugin qgis, si abilitano i repository di terze parti e diventeranno disponibili ftools.

quindi usa lo strumento plugin andando su fTools> Strumenti di gestione dati> Unisci attributi


Grazie, non voglio usare un altro programma per arrivarci, ma lo proverò se tutto il resto fallisce.
gisuser,

0

Il plugin fTools per lavorare con i dati Vector offre anche la stessa opzione per "unire i dati su un attributo" anche se non è spaziale.


Sembra usare solo i dati spaziali come livello target, in questo caso vorrei aggiungere i campi dal livello spaziale al CSV. Grazie per il suggerimento
gisuser,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.