Obszar pomiarowy klas rastrowych?

9

Czy są jakieś narzędzia lub metody w ArcMap, które mogą mierzyć obszar każdego poziomu gęstości wyjściowej jądra?

Zauważ, że to tylko wykres gęstości jądra (nie plik kształtu ani wielokąt). Analiza gęstości jądra (od ciemnozielonego (10%) do czerwonego (90%)) (1)

Próbowałem kilku rzeczy, ale muszę być dokładny.

Analiza gęstości Kerenela (od ciemnozielonego (10%) do czerwonego (90%)

Pan Angus
źródło

Odpowiedzi:

7

Użyłbym następującego przepływu pracy do obliczenia powierzchni w ramach klas:

  1. Zmień klasyfikację (Spatial Analyst) danych wyjściowych dotyczących gęstości jądra na dowolne klasy, których używasz. Domyślnie ArcGIS tworzy ciągłą powierzchnię rastrową dla wyjścia gęstości jądra, ale ponownie klasyfikuje legendę (która jest tymczasowa). Użycie narzędzia przeklasyfikowania sprawi, że będzie to trwałe.
  2. Otwórz ponownie tabelę atrybutów gęstości jądra i obserwuj pole „COUNT” ( rysunek 1 ). Jest to liczba wszystkich pikseli w każdej klasie. Na przykład klasa 1 (wartość = 1) ma liczbę 620 063 pikseli. Ponieważ moim układem współrzędnych jest UTM, jednostki są w metrach, a piksele mają rozdzielczość przestrzenną 1 m. Dlatego klasa 1 wynosi 620,063 m ^ 2.
  3. Aby przeliczyć liczbę na inne jednostki, takie jak hektary, dodaj nowe pole w tabeli atrybutów.
  4. Oblicz pole ( rysunek 2 )
  5. Logika sprawdza wyniki, podświetlając klasę ( rysunek 3 )

Rycina 1

wprowadź opis zdjęcia tutaj

Rysunek 2

wprowadź opis zdjęcia tutaj

Rycina 3

wprowadź opis zdjęcia tutaj

Aaron
źródło
2

Jeśli chcesz mieć rozwiązanie 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

alternatywnie możesz zapisać wartości do pliku csv / tekstowego.

użytkownik1269942
źródło
1

Zakładając, że wykres gęstości jądra jest rastrem utworzonym za pomocą narzędzia gęstości jądra lub podobnego, jest to tylko kwestia użycia narzędzia Raster to Polygon .

Upewnij się, że określiłeś pole, które definiuje klasyfikację rastra, a to przekształci ją w wielokąty. Następnie możesz użyć narzędzia Oblicz geometrię, aby obliczyć obszar.

Fezter
źródło
Próbowałem tego. kiedy przeciągam do niego plik rastrowy, mówi „jeden lub więcej upuszczonych elementów było nieprawidłowych”. Błąd sugeruje, że w pliku jest tekst, który „przeszkadza”. Czy masz pojęcie, dlaczego tak się dzieje?
Pan Angus,
1
@MrAngus Problem polega na tym, że gęstość jądra zawsze wytwarza zmiennoprzecinkowe dane wyjściowe rastra, podczas gdy Raster to Polygon wymaga całkowitej liczby wejściowej rastra (patrz połączone pliki pomocy). Najpierw musisz przeklasyfikować raster KD.
Chris W
Należy pamiętać, że obliczanie geometrii jest na element i nie da całkowitego obszaru wszystkich wielokątów dzielących daną klasę.
matt wilkie
0

Jednym z szybkich rozwiązań jest ręczne rozwiązanie:

  1. Otwórz właściwości rastra i przejdź do zakładki symboliki.
  2. Prawdopodobnie symbol jest już ustawiony na Sklasyfikowane, a liczba klas jest taka, jak chcesz. Kliknij przycisk Klasyfikuj.
  3. Po prawej stronie okna dialogowego znajduje się pole Break Values. Kliknij każdą wartość podziału, a na dole okna dialogowego zobaczysz # Elementy w klasie. Jest to liczba pikseli w tej klasie. Zapisz liczbę dla każdej klasy lub wprowadź ją do arkusza kalkulacyjnego.
  4. Anuluj z powrotem do właściwości rastra i przejdź do zakładki Źródło. Rozmiar komórki podano tam w x, y. Pomnóż te dwa razem, a uzyskasz obszar jednego piksela.
  5. Teraz weź ten obszar razy liczbę pikseli w każdej klasie. To powinno dać ci całkowitą powierzchnię tej klasy.

Dokładny to termin względny. Jeśli chodzi o obszary rastrowe, będzie dokładnie dokładne. Jeśli użyjesz metody Feztera, obszar może się różnić w zależności od tego, czy użyjesz opcji Wygładzanie podczas konwersji regionów opartych na pikselach na wielokąty.

Chris W.
źródło