Сводка
Создает растровый объект, который можно использовать в скриптах Python или выражении инструмента Алгебра карт. Растровый объект – это переменная, которая ссылается на набор растровых данных.
Растровый объект можно создать двумя способами: указав путь к существующему растру на диске или получив его в результате выполнения какой-либо инструкции Алгебры карт.
Описание
Растровый объект, созданный на основе существующих данных, можно использовать в последующих выражениях Алгебры карт, при этом он будет содержать все связанные свойства и методы растра.
# out_raster is a resultant raster object
out_raster = Raster("c:/data/inraster")
Любой инструмент или оператор (см. Раздел Работа с операторами Алгебры карт), создающий выходной растр слева от знака равенства, формирует растровый объект. Например, в следующем выражении out_raster является растровым объектом.
out_raster = Slope("inelevation")
Когда растровый объект возвращается выражением Алгебры карт, по умолчанию объект (переменная и связанный набор данных) является временным.
Временный набор данных, связанный с растровым объектом, может стать постоянном при использовании следующих механизмов:
- Можно вызвать метод save для растрового объекта.
- Можно вызвать Сделать постоянным, щелкнув правой кнопкой слой со связанным растровым объектом в TOC и указав имя выходных данных.
- Можно сохранить проект карты (.mxd, .3dd и т.д.) со всеми слоями со связанными растровыми объектами.
В третьем случае набор данных, на который ссылается растровый объект, автоматически сохраняется на диск с именем по умолчанию.
Если указанный растр не сделать постоянным с помощью одного из предыдущих методов, переменная и указанный набор растровых данных будут удалены, когда переменная выходит за область действия, например при завершении автономного скрипта или закрытия ArcGIS. Если растровый объект ссылается на постоянные данные на диске, эти данные не удаляются.
Определенные операторы есть и в Алгебре карт, и в Python. Если вы хотите, чтобы оператор работал с растровыми данными (а не скалярными значениями), входные растры необходимо преобразовать в растровый объект с помощью конструктора класса Raster: Raster("inRaster").
# The plus operator (available with Spatial Analyst) is used on the input
# rasters creating an output raster object
out_raster = Raster("input1") + Raster("input2")
# The Python plus operator is used on numbers creating a scalar variable
out_var = 4 + 7
# When there is a mix of rasters with numbers the Spatial Analyst
# operator is used creating an output raster object
out_raster = Raster("input") + 10
Определенные свойства, связанные с растровым объектом, доступны, только если указанный набор растровых данных является постоянным. Если указанный набор растровых данных является временным, этим свойствам будет присвоено значение None. Указанными свойствами являются catalogPath, compressionType, format, hasRAT, name и path.
После того, как набор растровых данных сделан постоянным, он не может вернуться во временное состояние.
Синтаксис
Raster (inRaster)
Параметр | Объяснение | Тип данных |
inRaster [inRaster,...] | Входной набор растровых данных или список наборов растровых данных. | Raster |
Свойства
Владение | Объяснение | Тип данных |
bandCount (только чтение) | Количество каналов в указанном наборе растровых данных. | Integer |
catalogPath (только чтение) | Полный путь и имя набора растровых данных. | String |
compressionType (только чтение) | Тип сжатия. Доступны следующие типы:
| String |
extent (только чтение) | Экстент указанного набора растровых данных. | Extent |
format (только чтение) | Формат растра.
| String |
hasRAT (чтение и запись) | Обозначает, имеется ли связанная атрибутивная таблица: True, если атрибутивная таблица присутствует, False – если отсутствует. | Boolean |
height (только чтение) | Число строк. | Integer |
isInteger (только чтение) | True, если у растрового набора данных тип "целое число". | Boolean |
isTemporary (только чтение) | True, если растровый набор данных временный, и False - если постоянный. | Boolean |
maximum (только чтение) | Максимальное значение в указанном наборе растровых данных. | Double |
mean (только чтение) | Среднее значение в указанном наборе растровых данных. | Double |
meanCellHeight (только чтение) | Размер ячейки в направлении y. | Double |
meanCellWidth (только чтение) | Размер ячейки в направлении x. | Double |
minimum (только чтение) | Минимальное значение в указанном наборе растровых данных. | Double |
name (только чтение) | Имя указанного набора растровых данных. | String |
noDataValue (только чтение) | Значение NoData в указанном наборе растровых данных. | Double |
path (только чтение) | Полный путь указанного набора растровых данных. | String |
pixelType (только чтение) | Тип пикселов указанного набора растровых данных. Есть следующие типы:
| String |
spatialReference (только чтение) | Пространственная привязка указанного набора растровых данных. | SpatialReference |
standardDeviation (только чтение) | Стандартное отклонение значений ячеек в набор растровых данных. | Double |
uncompressedSize (только чтение) | Размер указанного набора растровых данных на диске. | Double |
width (только чтение) | Число столбцов. | Integer |
Обзор метода
Метод | Объяснение |
save ({name}) | Выполняет постоянное сохранение набора данных, ссылающегося на растровый объект. |
Методы
save ({name})
Параметр | Объяснение | Тип данных |
name | Имя, назначаемое набору растровых данных на диске. | String |
Пример кода
Пример класса Raster 1
Создает объект Raster из набора растровых данных и получает свойства для анализа.
import arcpy
my_raster = arcpy.Raster('elevation')
my_min = my_raster.minimum
my_max = my_raster.maximum
my_area = (my_raster.width * my_raster.height) * my_raster.meanCellWidth
Пример класса Raster 2
Создает объект Raster, получает свойства, создает случайный ошибочный растр (+/- 3 фута), добавляет его в растр высот и преобразует его единицы из футов в метры.
import arcpy
from arcpy.sa import *
elev_raster = Raster('c:/data/elevation')
my_extent = elev_raster.extent
my_cellsize = (elev_raster.meanCellHeight + elev_raster.meanCellWidth) / 2
res01 = arcpy.CreateRandomRaster_management("", "error3", "UNIFORM 0.0 3.0",
my_extent, my_cellsize)
elev_meters = (elev_raster + Raster(res01)) * 0.3048
elev_meters.save("c:/output/fgdb.gdb/elevM_err")