Używasz wielokątów, aby zastosować unikalną wartość do wszystkich komórek rastrowych w tych wielokątach?


14

W ArcGIS 9.3 mam plik rastrowy, który chciałbym „zamaskować” wielokątami, nadając jedną wartość wszystkim komórkom rastrowym, które zachodzą na wielokąty.

W jaki sposób mogę to zrobić?

Oto zrzut ekranu, w którym czarne wielokąty są moją warstwą wielokątów, a reszta jest oparta na rastrze.

wprowadź opis zdjęcia tutaj

Odpowiedzi:


15

Możesz użyć instrukcji warunkowej. Problem z poprzednimi zaleceniami polega na tym, że podczas rasteryzacji wielokątów (co jest konieczne) tłem, które nie zawiera wielokątów, będzie NoData, co spowoduje, że odpowiadające im obszary w danych wyjściowych również będą NoData. Będziesz musiał ustawić zakres analizy na oryginalny raster, a następnie ustawić wartość tła (tj. 0) na zrasteryzowany raster wielokąta za pomocą SetNull. Po wykonaniu tej instrukcji warunkowej w kalkulatorze rastrowym będzie wyglądać mniej więcej tak.

Con („praster”> 0, „praster”, „OrgRaster”)

„praster” to zrasteryzowana klasa funkcji ploygon o wartości tła 0, a „OrgRaster” to raster, który chcesz zmodyfikować. To stwierdzenie mówi, że jeśli praster jest większy niż 0, to przypisz wartości z praster, albo przypisz wartości z OrgRaster.


1
Skończyło się na zmianie zasięgu rastra, a następnie przeprowadzeniu ponownej klasyfikacji, aby zmienić wartości nodata na 0. dzięki!
Łukasz

4

Możesz zrasteryzować ( ArcToolbox> Narzędzia do konwersji> Do rastra ) swoje wielokąty, a następnie scalić dwa rastry za pomocą Spatial Analyst Tools> Math> Logical > Over .

Podczas rasteryzacji wielokątów w oknie dialogowym Wielokąt do rastra musisz użyć Środowiska -> Przetwarzanie rozszerzonej opcji Snap Raster , aby komórki odpowiadały początkowemu rastrowi.


2
Podczas rasteryzacji wielokątów w oknie dialogowym Wielokąt do rastra musisz przejść do Środowiska -> Ustawienia ogólne i użyć opcji Snap Raster, aby komórki odpowiadały początkowemu rastrowi.
nadya

1

Przyjąłem inne podejście, ponieważ nie mogłem znaleźć powyższego rozwiązania. Powyższe jest prawdopodobnie łatwe, ale jakoś mi się nie udało.

Moje podejście było następujące:

  1. Wykonaj połączenie z [Polygon] i [Study_Area]. Dane wyjściowe: [Polygon_StudyArea_Union].
  2. Edytuj wartości wielokąta w [Polygon_StudyArea_Union] na 0, a wynikowe na 1.
  3. Konwertuj [Polygon_StudyArea_Union] na raster. Dane wyjściowe: [Polygon_StudyArea_Union_Raster]
  4. Wykonaj obliczenia rastrowe: [Raster, który chcesz edytować] * [Polygon_StudyArea_Union_Raster]
  5. Następnie przeklasyfikuj na dowolną wartość, która ma być zerowa (0).

Prawdopodobnie za dużo kroków, ale mam nadzieję, że to może komuś pomóc.


0

możesz przekonwertować wartość rastra na wielokąt

następnie ponownie połącz przestrzennie z wielokątem strefy

następnie przekonwertuj wielokąt strefy na raster, unikając pola od sprzężenia przestrzennego

następnie myślę, że powinieneś połączyć je mozaiką, zachowując „górny” raster, tzn. wartości rastra strefy (zamiast sumy / min / maks / mediany) ...

wiesz co mam na myśli?

-mb

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.