Zone de mesure des classes raster?

9

Existe-t-il des outils ou des méthodes dans ArcMap qui peuvent mesurer l'aire de chaque niveau de la sortie de densité du noyau?

Notez que ce n'est qu'un tracé de densité du noyau (pas un fichier de forme ou un polygone). Analyse de la densité du noyau (vert foncé (10%) à rouge (90%) (1)

J'ai essayé quelques trucs mais j'en ai besoin pour être précis.

Analyse de densité Kerenel (vert foncé (10%) à rouge (90%)

Mr Angus
la source

Réponses:

7

J'utiliserais le workflow suivant pour calculer la zone au sein des classes:

  1. Reclassifiez (Spatial Analyst) la sortie de densité du noyau dans les classes que vous utilisez. Par défaut, ArcGIS crée une surface raster continue pour la sortie de densité du noyau, mais reclasse la légende (qui est temporaire). L'utilisation de l'outil de reclassification rendra cela permanent.
  2. Ouvrez le tableau des attributs de densité de noyau reclassifié et observez le champ "COUNT" ( figure 1 ). Il s'agit du nombre de pixels de chaque classe. Par exemple, la classe 1 (valeur = 1) a un décompte de 620 063 pixels. Puisque mon système de coordonnées est UTM, les unités sont en mètres et les pixels ont une résolution spatiale de 1 m. Par conséquent, la classe 1 mesure 620 063 m ^ 2.
  3. Pour convertir le nombre en d'autres unités telles que des hectares, ajoutez un nouveau champ dans la table attributaire.
  4. Calculer le champ ( figure 2 )
  5. Logique vérifier les résultats en mettant en surbrillance une classe ( figure 3 )

Figure 1

entrez la description de l'image ici

Figure 2

entrez la description de l'image ici

figure 3

entrez la description de l'image ici

Aaron
la source
2

Si vous voulez une solution arcpy:

import numpy as np  #not sure how arcpy imports numpy

r = arcpy.RasterToNumPyArray('your raster name')

for val in np.unique(r):
    area = np.sum(r == val)  #multiply this by your pixel area
    print 'value ', val, ' : ', area

vous pouvez également écrire les valeurs dans un fichier csv / texte.

user1269942
la source
1

En supposant que votre tracé de densité de noyau est un raster créé à l' aide de l'outil de densité de noyau ou similaire, il s'agit simplement d'utiliser l' outil Raster vers polygone .

Assurez-vous de spécifier le champ qui définit la classification du raster et il le convertira en polygones. Vous pouvez ensuite utiliser l' outil Calculer la géométrie pour calculer la surface.

Fezter
la source
J'ai essayé ça. lorsque je fais glisser le fichier raster, il indique "un ou plusieurs éléments supprimés n'étaient pas valides". L'erreur suggère qu'il y a du texte dans le fichier qui "interfère". Avez-vous une idée de la raison pour laquelle cela peut être?
M. Angus
1
@MrAngus Le problème est que la densité du noyau produit toujours une sortie raster à virgule flottante, tandis que Raster vers polygone nécessite une entrée raster entière (voir les fichiers d'aide liés). Vous devez d'abord reclasser le raster KD.
Chris W
Notez que Calculer la géométrie est par entité et ne donnera pas l'aire totale de tous les polygones partageant une classe donnée.
matt wilkie
0

Une solution rapide à cela est une résolution manuelle:

  1. Ouvrez les propriétés du raster et accédez à l'onglet de symbologie.
  2. Vraisemblablement, la symbologie est déjà définie sur Classé et le nombre de classes est ce que vous voulez. Cliquez sur le bouton Classifier.
  3. Sur le côté droit de la boîte de dialogue se trouve une boîte de valeurs de rupture. Cliquez sur chaque valeur de rupture et au bas de la boîte de dialogue, vous verrez # Elements in Class. Il s'agit du nombre de pixels de cette classe. Notez le nombre pour chaque classe ou entrez-le dans une feuille de calcul.
  4. Annulez les propriétés du raster et passez à l'onglet Source. La taille des cellules y est indiquée en x, y. Multipliez ces deux ensemble et vous avez l'aire d'un pixel.
  5. Prenez maintenant cette zone multipliée par le nombre de pixels dans chaque classe. Cela devrait vous donner la superficie totale de cette classe.

Précis est un terme relatif. En ce qui concerne vos zones raster, elles seront exactement précises. Si vous utilisez la méthode de Fezter, la zone peut différer selon que vous utilisez Smooth lors de la conversion des régions basées sur les pixels en polygones.

Chris W
la source