Realizzare lo shapefile a livello di contea da una serie di punti a una distanza di 30 x30 km usando ArcGIS per desktop?


9

Ho un set di dati in formato CSV, come:

latitude, longitude, value
-45, 45, 10
....

Vorrei calcolare i mezzi a livello di contea da questi dati, usando ArcGIS o R + grass.

Ho il layer ArcGIS USA Counties, ma non sono stato in grado di completare con successo un join spaziale.

Come posso fare questo?

Risposte:


4

Un flusso di lavoro utilizzato per generare un file di forma a livello di contea con media (z) in ciascuna contea da una tabella di dati xyz in ArcGIS

nota che questo si basa sul suggerimento di @ MLowry, aggiungendo istruzioni quasi passo-passo.


Apri ArcCatalog

  1. creare un nuovo geodatabase personale (ad esempio foo.mdb)
  2. file -> nuovo -> geodatabase personale
  3. aggiungi dati

    • fare clic con il tasto destro su map.csv -> esporta in geodatabase (singolo) -> foo.mdb
    • fare clic con il tasto destro su counties.lyr -> esporta in geodatabase (singolo) -> foo.mdb
  4. crea featureclass (file .shp) dalla tabella xy

    • apri foo.mdb
    • tasto destro del mouse sulla tabella map.csv -> crea featureclass da xytable
    • campi di input x = lon, y = lat, z = yield
    • sistema di coordinate di importazione coordinate di input -> da counties.lyr (o, equivalentemente, -> geografico .. -> mondo -> wgs_1984 -> aperto -> ok)
  5. importa classi di caratteristiche in geodatabase (multipli)

    • seleziona i file shp creati in anteprima passaggio -> aggiungi -> ok

Apri ArcMap

  1. Aggiungi dati

    • seleziona foo.mdb -> CTL + seleziona tabelle -> apri
  2. Join spaziale

    • ArcToolbox -> Strumenti di analisi -> Sovrapposizione -> Unione spaziale ->
    • Caratteristiche target: counties.lyr
    • Unisciti alle caratteristiche: mappa tabella xyz
    • Classe caratteristica di output: nome_spazio_spaziale
    • Operazione di partecipazione: JOIN_ONE_TO_ONE
    • Opzione partita: la più vicina
    • Mappa dei campi delle funzionalità di join: rimuovere i campi indesiderati (sono richiesti solo STATE_FIPS, CNTY_FIPS, valori z
    • Raggio di ricerca: 30 km
    • clic OK
    • Valore Z = rendimento; seleziona 'mean' (o statistica alternativa)

@David Grazie per la risposta dettagliata ... dovremo verificarlo.
Abe,

@Se sentiti libero di modificare quando lo fai. L'ho fatto CW
David LeBauer il

@David In questa circostanza, IDW produrrà risultati errati per le statistiche zonali: vedere la discussione dopo la risposta di @ scw.
whuber

@whuber. Grazie per la segnalazione. Quando ebbi finito, avevo dimenticato che il punto originale era di unire spazialmente i punti con le contee; fisso.
David LeBauer,

@ Grazie David. Ma ora sono confuso. Innanzitutto, dove in questo flusso di lavoro crei effettivamente un "livello raster", come annuncia il tuo titolo? Secondo, come vengono prodotti tre strati? Il file CSV rappresenta semplicemente un insieme di punti (x, y), ciascuno con un singolo attributo numerico (z).
whuber

6

Sembra che tu possa convertire il .csv in un tema di evento, quindi esportare in .shp, quindi eseguire un join spaziale con il nuovo .shp nel livello della contea e BOOM, sei pronto per i calcoli.


6

Un approccio generale è convertire i dati dei punti regolarmente distanziati in un raster (da XYZ a raster in Arc *; v.in.xyz in GRASS), quindi eseguire un operatore di statistiche zonali per aggregare i valori delle celle all'interno di ciascuna contea e calcolare le statistiche ( la media è una delle statistiche standard calcolate). Per eseguire le statistiche, utilizzare Zonal Statistics in Arc * o v.rast.stats in GRASS.

Se hai bisogno di fare statistiche più avanzate, si potrebbe fare l'analisi in R con rastere sp, ma è un po 'più complicato.


Buona idea, ma a meno che le matrici di punti non siano orientate correttamente con le coordinate, il ricampionamento avverrà nella conversione in un raster e sarai in balia dell'algoritmo di ricampionamento: le medie saranno probabilmente fuori di un pochino, non importa quale .
whuber

Giusto, se la dimensione della cella è impostata su ricampionamento grossolano può verificarsi. Come approssimazione, dovresti essere in grado di impostare la dimensione della cella a metà della distanza minima tra due punti qualsiasi ed evitare questo problema. Questo approccio ha il rovescio della medaglia di dover gestire il ricampionamento, ma l'ho trovato molto meglio quindi il numero di punti è grande (decine di migliaia o più).
scw,

@scw Il ricampionamento si verifica indipendentemente dalla dimensione della cella (a meno che i dati non siano già perfettamente allineati con la griglia). Quando si utilizza una dimensione di cella più fine, si otterranno probabilmente risposte peggiori , poiché la maggior parte dei valori della griglia vengono interpolati tra gli originali. A meno che non si utilizzi l'interpolazione del vicino più vicino, ciò causa la sottorappresentazione dei valori estremi. La media sarà solo leggermente influenzata; altre statistiche, come la deviazione standard, possono essere maggiormente influenzate.
whuber

@whuber Penso di vedere da dove viene il nostro malinteso: non sto proponendo di convertire i dati in una superficie continua, posizionando solo i valori dei punti (quando esistono) in una griglia raster normale. Quindi la stragrande maggioranza della griglia rimarrà NULL, con solo valori occasionali nelle posizioni delle celle coincidenti con le posizioni dei punti.
scw,

@scw Ah, molto bene! Grazie per il chiarimento. Stai effettivamente facendo l'equivalente basato sulla griglia del join spaziale raccomandato da @MLowry.
whuber
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.