Работа с Растровыми объектами
Растровые объекты могут использоваться в качестве входных данных выражений Алгебры карт и являются их первичным результатом. При выполнении выражения Алгебры карт, в котором используются операторы, входные данные должны быть Растровыми объектами или константами. Выходные растры выражений Алгебры карт всегда временные, но их можно сохранить, вызвав метод save Растрового объекта. К Растровым объектам можно выполнять запросы, чтобы быстро получить доступ к свойствам соответствующих наборов данных.
Создание Растрового объекта
Растровые объекты создаются либо путем выбора набора растровых данных, либо являются выходными данными инструментов дополнительного модуля Дополнительный модуль ArcGIS Spatial Analyst. Квалификация растра позволяет легко выполнять запросы многих свойств набора растровых данных.
- Чтобы создать Растровый объект, задайте имя слоя или путь к набору данных и его имя, как показано в примере ниже.В вышеприведенном выражении к свойствам набора растровых данных elevation теперь можно обратиться через выходной Растровый объект (rasObject). Перечень свойств Растрового объекта см. в Полный перечень свойств Растрового объекта.
rasObject = Raster("C:/Data/elevation")
- Растровые объекты создаются как результат выполнения инструментов дополнительного модуля Spatial Analyst.
# rasObject is a Raster object pointing to a temporary # raster dataset rasObject = Slope("C:/Data/elevation")
Примечание:Инструменты, не входящие в группу инструментов дополнительного модуля Spatial Analyst, не возвращают на выходе Растровые объекты.
Метод save растра
Растр, связанный с Растровым объектом, можно сохранить с помощью метода save.
Инструменты дополнительного модуля Spatial Analyst создают временные выходные данные. Эти выходные данные можно сохранить, используя метод Растрового объекта save. В приведенном ниже примере временные выходные данные инструмента Уклон (Slope) сохраняются в заданной выходной папке.
outraster = Slope("C:/Data/elevation")
outraster.save("C:/output/sloperaster")
Место, где будут сохранены данные, определяется тем, что вы указали в методе save, и параметрами среды рабочей области, которые вы задали.
- Когда задан полный путь с именем набора данных, данные будут сохранены в этом месте.
- Если указано только имя набора данных, то местоположение сохраняемых данных определяется параметрами среды рабочей области геообработки.
- Если задана временная или текущая рабочая область, сохраняемые данные будут сохранены в заданной рабочей области.
- Если заданы и текущая, и временная рабочие области, данные будут сохранены в текущей рабочей области.
- Если рабочая область не задана, будет возвращена ошибка.
- Если вы просто хотите сохранить данные там, где они есть, с именем по умолчанию, вызовите метод save, не указывая имя, как показано в примере ниже:
outraster.save()
- Метод save применим ко всем растровым форматам, поддерживаемым Spatial Analyst. В приведенном ниже примере метод save растра используется, чтобы сохранить данные в растр файловой базы геоданных и в формат IMAGINE.
outraster.save("C:/output/file_gdb.gdb/sloperaster") outraster.save("C:/output/sloperaster.img")
Работа со свойствами растра
Когда растр квалифицирован как Растровый объект, можно легко выполнить запрос свойств из набора данных. Все свойства Растрового объекта доступны только для чтения. Запрос свойства Растра возвращает строку, число или объект. Свойства растра можно использовать различными способами, в том числе как входные данные для параметра инструмента, или чтобы задать параметр среды (как показано ниже).
from arcpy import env
from arcpy.sa import *
outraster = Raster("C:/Data/studyarea")
myextent = outraster.extent
# Modify myextent as necessary for your workflow and use it to set the extent environment
env.extent = myextent
Свойства растра, предусмотренные для Растрового объекта, включают свойства из функции Описать (Describe) (Свойств набора растровых данных) и инструмента Получить свойства Растра (Get Raster Properties).