Доступно с лицензией Spatial Analyst.
При построении выражений в калькуляторе растра одним или двумя кликами выбираются различные слои, переменные, кнопки и названия инструментов, что позволяет избегать синтаксических ошибок, связанным с неправильным вводом соответствующих элементов.
Так как выражение, введенное в инструменте Калькулятор растра , будет выполнено в Python, а язык Python чувствителен к регистру, важно указывать надлежащие прописные буквы в названиях инструментов. Например, чтобы использовать инструмент IsNull, следует ввести его название как IsNull, а не Isnull или isnull.
При последовательном использовании ряда относительных или логических операторов в выражении следует указывать скобки. Дополнительные сведения см. в советах по использованию инструмента Калькулятор растра.
Примеры выражений в диалоговом окне Калькулятор растра
Хотя алгебра карты используется как в калькуляторе растра, так и непосредственно в Python, существует ряд отличий в синтаксисе, о которых всегда следует помнить.
- Так как существует специальный выходной параметр в диалоговом окне инструмента Калькулятор растра (Raster Calculator), выражения алгебры карты не включают выходное имя и знак равенства (=) во время использования калькулятора растра.
- Только в диалоговом окне инструмента Калькулятор растра имена слоев можно использовать напрямую с операторами. При работе в Python необходимо сначала объявить слои как растровые объекты.
- Аналогичным образом только в диалоговом окне инструмента можно помещать переменные растрового калькулятора между знаками процентов (%) или кавычками (").
Примеры диалогового окна инструмента Калькулятор растра
Ниже приведены некоторые примеры выражений алгебры карт, которые можно выполнить в инструменте Калькулятор растра. В этих выражениях имена растровых слоев заключаются в кавычки, например "dist".
- ("pop" > 150) & ("dist" > 10)
- (("reclass_rd_dist" * 3) + ("reclass_landuse" * 2) + "reclass_elev") /6.0
- ("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 %Вес дороги% Переклассификация землепользования
Растровый слой "Переквалификация землепользования" Добавление входных данных с правильным синтаксисом
- Поместите курсор в нужное место окна выражения.
- Дважды щелкните имя нужного слоя или переменной.
После нажатия кнопкиОК для закрытия диалогового окна инструмента Калькулятор растра переменная, представляющая слой "Переклассификация землепользования" будет добавлена в модель в качестве переменной модели.
При повторном открытии диалогового окна инструмента Калькулятор растра следует обратить внимание на следующие вещи.
- Переменная "Переклассификация землепользования" добавлена к списку Слои и переменные.
- Синтаксис в выражении был обновлен из синтаксиса слоя ("Переклассификация землепользования") в синтаксис переменной ("%Переклассификация землепользования%").