Créer un fichier de formes au niveau du comté à partir d'un ensemble de points à un espacement de 30 x 30 km à l'aide d'ArcGIS for Desktop?

9

J'ai un ensemble de données sous forme csv, comme:

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

Je voudrais calculer les moyennes au niveau du comté à partir de ces données, en utilisant ArcGIS ou R + grass.

J'ai la couche ArcGIS USA Counties, mais je n'ai pas réussi à terminer une jointure spatiale.

Comment puis-je faire ceci?

Abe
la source

Réponses:

4

Un flux de travail utilisé pour générer un fichier de forme au niveau du comté avec la moyenne (z) dans chaque comté à partir d'une table de données xyz dans ArcGIS

notez que cela est basé sur la suggestion de @ MLowry, ajoutant des instructions presque pas à pas.


Ouvrez ArcCatalog

  1. créer une nouvelle géodatabase personnelle (par exemple foo.mdb)
  2. fichier -> nouveau -> géodatabase personnelle
  3. ajouter des données

    • clic droit sur map.csv -> exporter vers la géodatabase (unique) -> foo.mdb
    • clic droit sur counties.lyr -> exporter vers la géodatabase (unique) -> foo.mdb
  4. créer featureclass (fichiers .shp) à partir de la table xy

    • ouvrir foo.mdb
    • clic droit sur la table map.csv -> créer une classe de traits à partir de xytable
    • champs de saisie x = lon, y = lat, z = yield
    • système de coordonnées d'importation de coordonnées d'entrée -> depuis counties.lyr (ou, de manière équivalente, -> géographique .. -> monde -> wgs_1984 -> ouvert -> ok)
  5. importer des classes d'entités dans la géodatabase (plusieurs)

    • sélectionnez les fichiers shp créés dans la version précédente. étape -> ajouter -> d'accord

Ouvrez ArcMap

  1. Ajouter des données

    • sélectionnez foo.mdb -> CTL + sélectionnez les tables -> ouvrez
  2. Jointure spatiale

    • ArcToolbox -> Outils d'analyse -> Superposition -> Jointure spatiale ->
    • Caractéristiques cibles: counties.lyr
    • Fonctions de jointure: carte du tableau xyz
    • Classe d'entités en sortie: filename_spatialjoin
    • Rejoignez l'opération: JOIN_ONE_TO_ONE
    • Option de correspondance: le plus proche
    • Carte des champs des fonctionnalités de jointure: supprimez les champs indésirables (uniquement STATE_FIPS, CNTY_FIPS, valeurs z requises
    • Rayon de recherche: 30 km
    • Cliquez sur OK
    • Valeur Z = rendement; sélectionnez «moyenne» (ou autre statistique)
David
la source
@David Merci pour la réponse détaillée ... devra la vérifier.
Abe
@Abe, n'hésitez pas à modifier quand vous le faites. Je l'ai fait CW
David LeBauer
@David Dans ce cas, IDW produira des résultats incorrects pour les statistiques zonales: voir la discussion qui suit la réponse de @ scw.
whuber
@whuber. Merci d'avoir fait remarquer cela. Au moment où j'avais fini, j'avais oublié que le point d'origine était de faire une jonction spatiale sur les points avec les comtés; fixé.
David LeBauer
@David Merci. Mais maintenant je suis confus. Tout d'abord, où dans ce flux de travail créez-vous réellement une "couche raster", comme l'annonce votre titre? Deuxièmement, comment se fait-il que trois couches soient produites? Le fichier CSV représente simplement un ensemble de points (x, y), chacun avec un seul attribut numérique (z).
whuber
6

On dirait que vous pouvez convertir le .csv en thème d'événement, puis exporter vers .shp, puis faire une jointure spatiale avec le nouveau .shp dans la couche de comté, et BOOM, vous êtes prêt à faire les calculs.

MLowry
la source
6

Une approche générale consiste à convertir vos données ponctuelles régulièrement espacées en un raster (XYZ en raster dans Arc *; v.in.xyz dans GRASS) puis d'effectuer un opérateur de statistiques zonales pour agréger les valeurs des cellules dans chaque comté et calculer des statistiques ( moyenne est l'une des statistiques standard calculées). Pour effectuer les statistiques, utilisez Statistiques zonales dans Arc * ou v.rast.stats dans GRASS.

Si vous aviez besoin de faire des statistiques plus avancées, vous pourriez faire l'analyse en R avec rasteret spmais c'est un peu plus compliqué.

scw
la source
Bonne idée, mais à moins que les tableaux de points ne soient correctement orientés avec les coordonnées, le rééchantillonnage se produira lors de la conversion en un raster et vous serez à la merci de l'algorithme de rééchantillonnage: les moyennes seront probablement faussées par un tout petit peu quoi qu'il arrive .
whuber
À droite, si la taille de la cellule est définie sur un rééchantillonnage grossier peut se produire. À titre approximatif, vous devriez pouvoir définir la taille de la cellule à la moitié de la distance minimale entre deux points et éviter ce problème. Cette approche a l'inconvénient de devoir gérer le rééchantillonnage, mais je l'ai trouvé beaucoup mieux que le nombre de points est important (des dizaines de milliers ou plus).
scw
@scw Le rééchantillonnage a lieu quelle que soit la taille de la cellule (sauf si les données sont déjà parfaitement alignées avec la grille). Lorsque vous utilisez une taille de cellule plus fine, vous obtiendrez probablement de moins bonnes réponses, car la plupart des valeurs de la grille sont interpolées entre les originaux. Sauf si vous utilisez l'interpolation du plus proche voisin, cela entraîne une sous-représentation des valeurs extrêmes. La moyenne ne sera que légèrement affectée; d'autres statistiques, telles que l'écart type, peuvent être plus fortement affectées.
whuber
@whuber Je pense que je vois d'où vient notre malentendu - je ne préconise pas de convertir les données en une surface continue, en ne plaçant que les valeurs ponctuelles (lorsqu'elles existent) dans une grille raster régulière. Ainsi, la grande majorité de la grille restera NULL, avec seulement des valeurs occasionnelles à des emplacements de cellules coïncidant avec des emplacements de points.
scw
@scw Ah, très bien! Merci pour la clarification. Vous effectuez en fait l'équivalent basé sur la grille de la jointure spatiale recommandée par @MLowry.
whuber