Знайдіть перетин двох растр


9

У мене є два растрові зображення, булева класифікація (1 або 2). Вони перекриваються на заданих ділянках.

Мені потрібен растр, який є лише секціями, що перекриваються.

Використання Arcinfo 10. Відповідь може використовувати лише растрові методи, не перетворюючись на багатокутники, точки тощо ...Тільки для довідки ось знімок екрана.


Обидві відповіді правильні, перша - більш елегантна, але я вирішив дати другий кредит, оскільки це було для мене найбільш корисним.
Тад

Відповіді:


8

Це здається досить простою операцією відсікання. Скористайтеся інструментом Clip (управління даними) .

З довідкової документації:

Як розмір кліпу може використовуватися існуючий растровий або векторний шар. Якщо ви використовуєте клас характеристик як вихідну міру, у вас є можливість обрізати растр мінімально обмежуючим прямокутником класу характеристик або геометрією багатокутника ознак. Якщо використовується геометрія відсікання, то глибина пікселя на виході може бути підвищена. Тому потрібно переконатися, що вихідний формат може підтримувати належну глибину пікселів.

Це насправді повинно бути простішим, ніж ваші вимоги, оскільки він використовує основні функції, і навіть не повинен вимагати розширення Spatial Analyst , як це можливо.

-------------- Редагувати

З іншого боку, якщо ваша мета - створити растр, який показує, де обидва введення були недійсними, або один з них мав значення, або обидва мали значення, тоді ви використовували б растрове множення . Це по суті створює вихідний растр, у якого є значення, кратні значенням вхідних растрах. Зауважте, що для подальшого необхідне розширення просторового аналітика.

Приклад, у вашому випадку, з булевими растрами.

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

Якщо ви хочете мати можливість визначити, який з ваших входів має справжнє значення, вам потрібно буде перекласифікувати один з вхідних растр, щоб ваші множені значення були абсолютно унікальними. Обидва входи потрібно буде перекласифікувати, щоб не було значення "1", оскільки це дозволить дублювати значення у помноженому растрі.

Приклад:

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

Ви можете зробити комбінацію цих операцій, коли ви обрізаєте одну з растрових за іншою, щоб лише показати область перекриття. Потім перекласифікуйте та помножте растри, щоб показати, де обидва є помилковими, одна чи інша є істинними, або обидва - істинні.

Сподіваюсь, це допомагає.


Я продовжую отримувати помилку в обсязі виводу. Або помилка маски. Так засмучує .... Ніколи раніше не стикайтеся з цим.
Тад

нвм. Я думаю, що у мене є проблема прогнозування. тобто ці функції не підтримують під час проектування льоту ... тому вони не перетинаються, наскільки це стосується функцій.
Тад

@Thad - я б спробував повторно відрегулювати один з растрових, щоб відповідати проекції іншого. Використовуйте інструмент « Растровий проект », знайдений під інструментами управління даними. Або використовуйте код python, щоб це зробити програмно як частину вашого робочого процесу.
Отримайте просторовий

так, я це зробив, і це спрацювало чудово.
Тад

9

Я припускаю, що у ваших растрах у вас є значення 1 для білого (в деякому роді область нодату) і 2 для синього / зеленого.

Отже, вам потрібно отримати області, де обидві растри мають значення 2.

Це можна легко виконати за допомогою Raster Calculator в ArcGIS.

Вираз буде виглядати так:

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

або

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

PS цей інструмент вимагає розширення Spatial Analyst


0

Я думаю, що цей метод може вам допомогти:

  1. arctoolbox >> Data management tools >> Raster >> Rasterprocessing >> Clip перетягуйте растр для введення та виводу (незалежно від того, який з них). Тепер у вас є файл форми з вашої області перекриття (ми називали його overlap.shp).
  2. використовуючи витяг за допомогою маски, для обох arctoolbox >> Spatial analyst tools >> Extraction >> Extract by maskрастрових:: input: Растр 1, дані маски: overlap.shp. Тепер у вас є растр растрового перекриття 1 (ми його називали перекриттям1). arctoolbox >> Spatial analyst tools >> Extraction >> Extract by mask: вхід: дані маски Raster 2. дані: overlap.shp. Тепер у вас є растр растрового перекриття 1 (ми називали його перекриття2).
  3. останній крок:: arctoolbox >> Spatial analyst tools >> Map algebraперетягування перетягування2 та перекриття1.

Тепер ви можете робити все, що завгодно. Кожна статистика, яка вам потрібна.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.