Доступно с лицензией Spatial Analyst.
Доступно с лицензией Image Analyst.
При построении выражений в Калькуляторе растра одним или двумя щелчками выбираются различные слои, переменные, кнопки и названия инструментов, что позволяет избегать синтаксических ошибок, связанным с неправильным вводом соответствующих элементов.
Так как выражение, введенное в инструменте Калькулятор растра , будет выполнено в Python, а язык Python чувствителен к регистру, важно указывать надлежащие прописные буквы в названиях инструментов. Например, чтобы использовать инструмент IsNull, следует ввести его название как IsNull, а не Isnull или isnull.
При последовательном использовании ряда относительных или логических операторов в выражении следует указывать скобки. Дополнительные сведения см. в советах по использованию инструмента Калькулятор растра.
Примеры выражений инструмента Калькулятор растра
Хотя Алгебра карты используется как в Калькуляторе растра, так и непосредственно в Python, существует ряд отличий в синтаксисе, о которых всегда следует помнить.
- Так как существует специальный выходной параметр в диалоговом окне инструмента Калькулятор растра, выражения Алгебры карты не включают выходное имя и знак равенства (=) во время использования Калькулятора растра.
- Только в диалоговом окне инструмента Калькулятор растра имена слоев можно использовать напрямую с операторами. При работе в Python необходимо сначала объявить слои как объекты Raster.
- Аналогичным образом только в диалоговом окне инструмента можно помещать переменные растрового калькулятора между знаками процентов (%) или кавычками (").
Примеры диалогового окна инструмента Калькулятор растра
Ниже приведены некоторые примеры выражений алгебры карт, которые можно выполнить в инструменте Калькулятор растра. В этих выражениях имена растровых слоев заключаются в кавычки, например "dist".
- ("pop" > 150) & ("dist" > 10)
- ("Band4" - "Band3") / Float("Band4" + "Band3")
- Con("elev" <= 3000, 1, 0)
- Con(IsNull("elev"),0, "elev")
- Con(("landuse1" == 1) & ("landuse2" == 5), "landuse1" + "landuse2", 99)
- Con(Raster('elev') != 0,'elev')
- (Con('elev', 'elev', "", "elev_feet <> 0")) + Raster("tree_height")
- Con("inRas" < 45,1, Con(("inRas" >= 45) & ("inRas" < 47),2, Con(("inRas" >= 47)&("inRas" < 49),3, Con("inRas" >= 49,4))))
Пример выражения калькулятора растра в ModelBuilder
При использовании инструмента Калькулятор растра в ModelBuilder, единственное отличие заключается в возможности использования этих переменных не только как параметров ввода, но и как слоев. Дополнительные сведения о синтаксисе, доступных для использования типах переменных и поведении при подключении инструмента Калькулятор растра в ModelBuilder см. в справке по инструменту Калькулятор растра.
Отображение переменных и слоев в выражении
В приведенном ниже примере показано, как синтаксис выражения алгебры карты в инструменте Калькулятор растра используется в модели.
В этом примере используются переменные Набор растровых данных, Длинное целое и Растровый слой.
Обратите внимание, что для различных переменных используется немного отличающийся синтаксис.
Имя переменной или слоя Тип переменной Первое появление синтаксиса в выражении Переклассификация дороги
Переменная набора растровых данных "%Переклассификация дороги%" Вес дороги
Переменная Long %Вес дороги% Переклассификация землепользования
Растровый слой "Переквалификация землепользования" Чтобы добавить входные данные с правильным синтаксисом, выполните следующие шаги:
- Поместите курсор в нужное место в окне выражения
- Дважды щелкните подходящий слой
После нажатия кнопки ОК для закрытия диалогового окна инструмента Калькулятор растра переменная, представляющая слой "Переклассификация землепользования" будет добавлена в модель в качестве переменной модели.
При повторном открытии диалогового окна инструмента Калькулятор растра, обратите внимание на следующее:.
- Переменная Переклассификация землепользования добавлена к списку.
- Синтаксис в выражении был обновлен из синтаксиса слоя ("Переклассификация землепользования") в синтаксис переменной ("%Переклассификация землепользования%").