Znajdź skrzyżowanie dwóch rastrów


9

Mam dwa obrazy rastrowe, sklasyfikowane jako logiczne (1 lub 2). Nakładają się na siebie w danych obszarach.

Potrzebuję rastra, który jest tylko nakładającymi się sekcjami.

Korzystanie z Arcinfo 10. Odpowiedź może korzystać tylko z metod rastrowych, bez konwersji na wielokąty, punkty itp.Dla odniesienia tutaj jest zrzut ekranu.


Obie odpowiedzi są poprawne, pierwsza jest bardziej elegancka, ale postanowiłem przyznać drugą nagrodę, ponieważ była dla mnie najbardziej pomocna.
Thad

Odpowiedzi:


8

To wydaje się dość prostą operacją obcinania. Użyj narzędzia Klip (zarządzanie danymi) .

Z dokumentacji pomocy:

Jako zasięg klipu można zastosować istniejącą warstwę rastrową lub wektorową. Jeśli używasz klasy elementów jako zakresu wyjściowego, możesz przyciąć raster według minimalnego prostokąta ograniczającego klasy elementów lub geometrii wielokątów elementów. Jeśli stosowana jest geometria odcinania, wówczas można zwiększyć głębię pikseli na wyjściu. Dlatego musisz upewnić się, że format wyjściowy może obsługiwać odpowiednią głębokość pikseli.

Powinno to być prostsze niż wymaga, ponieważ wykorzystuje podstawowe funkcje i nie powinno nawet wymagać rozszerzenia Spatial Analyst , jak inne metody.

-------------- Edytować

Z drugiej strony, jeśli twoim celem jest stworzenie rastra, który pokazuje, gdzie oba dane wejściowe były zerowe, albo jedno z nich miało wartość, albo oba miały wartość, wówczas użyłbyś Mnożenia Rastra . To zasadniczo tworzy wyjściowy raster, który ma wartości będące wielokrotnościami wartości wejściowych rastrów. Pamiętaj, że to, co następuje, wymaga rozszerzenia Spatial Analyst.

Przykład, w twoim przypadku, z logicznymi rastrami.

Raster 1:  1,2  
Raster 2:  1,2

Output Raster:  Possible combinations:  1x1,1x2,2x1,2x2 with output values: 1,2,4  
Value 1:  Both Boolean False  
Value 2:  1 or the other, Boolean True  
Value 4:  Both Boolean True

Jeśli chcesz być w stanie ustalić, które z twoich danych wejściowych mają prawdziwą wartość, musisz przeklasyfikować jeden z rastrów wejściowych, aby twoje pomnożone wartości były całkowicie unikalne. Oba dane wejściowe będą musiały zostać przeklasyfikowane, aby nie było wartości „1”, ponieważ pozwoli to na zduplikowanie wartości w zwielokrotnionym rastrze.

Przykład:

Raster 1: 1,2 - Use [Raster Addition][4], with a constant of 1 - Output Raster 3  
Raster 2: 1,2 - Use [Multiply Raster][5], with constant of 2 - Output Raster 4  
Raster 3: 2,3  
Raster 4: 2,4

Now, multiply Raster 3 and Raster 4  
Output Raster:  Possible Combinations:  2x2,3x2,4x2,4x3 with output values: 4,6,8,12

Value 4:  Both Boolean False  
Value 6:  Raster 3 True, Raster 4 False  
Value 8:  Raster 4 True, Raster 3 False  
Value 12: both Boolean True

Możesz wykonać kombinację tych operacji, w której przycinasz jeden z rastrów, aby pokazać tylko nakładający się obszar. Następnie przeklasyfikuj i pomnóż rastry, aby pokazać, gdzie oba są fałszywe, jedno lub drugie są prawdziwe, lub oba są prawdziwe.

Mam nadzieję że to pomoże.


Wciąż pojawia się błąd zasięgu wyjściowego. Lub błąd maski. Tak frustrujące ... Nigdy wcześniej nie wpadaj na to.
Thad

NVM. Myślę, że mam problem z projekcją. tj. funkcje te nie obsługują rzutowania w locie ... dlatego nie pokrywają się, jeśli chodzi o funkcje.
Thad

@Thad - Następnie spróbowałbym ponownie zaprojektować jeden z rastrów, aby pasował do projekcji drugiego. Użyj narzędzia Project Raster znajdującego się w narzędziach do zarządzania danymi. Lub użyj kodu Pythona, aby zrobić to programowo jako część przepływu pracy.
Uzyskaj Spatial

tak, zrobiłem to i działało idealnie.
Thad

9

Zakładam, że w swoich rastrach masz wartość 1 dla białego (w pewnym sensie obszaru nodata) i 2 dla niebieskiego / zielonego.

Musisz zdobyć obszary, w których oba rastry mają wartość 2.

Można to łatwo wykonać za pomocą kalkulatora rastrowego w ArcGIS.

Wyrażenie będzie wyglądać następująco:

("raster1" == 2) & ("raster2" == 2)

lub

Con(("raster1" == 2) & ("raster2" == 2), 1, 0)

PS to narzędzie wymaga rozszerzenia Spatial Analyst


0

Myślę, że ta metoda może ci pomóc:

  1. arctoolbox >> Data management tools >> Raster >> Rasterprocessing >> Clip przeciągnij i upuść swój raster na wejściu i wyjściu (bez względu na to, który z nich). Teraz masz plik shapefile z obszaru nakładania się (nazwaliśmy go overlap.shp).
  2. używając wyciągu po masce, dla obu rastrów:: arctoolbox >> Spatial analyst tools >> Extraction >> Extract by maskinput: the Raster 1, mask data: the overlap.shp. Teraz masz raster nakładającego się rastra 1 (nazwaliśmy go overlap1). arctoolbox >> Spatial analyst tools >> Extraction >> Extract by mask: input: dane maski rastrowej 2. overlap.shp. Teraz masz raster nakładającego się rastra 1 (nazwaliśmy go overlap2).
  3. ostatni krok: arctoolbox >> Spatial analyst tools >> Map algebraprzeciągnij i upuść overlap2 i overlap1.

Teraz możesz zrobić wszystko. Wszystkie potrzebne statystyki.

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.