Raster (arcpy)

Резюме

Создает растровый объект, который можно использовать в скриптах Python или выражении инструмента Алгебра карт (Map Algebra). Растровый объект – это переменная, которая ссылается на набор растровых данных.

Растровый объект можно создать двумя способами. Можно указать путь к существующему растру на диске или же его можно получить в результате выполнения инструкции Алгебры карт (Map Algebra).

ЛицензияЛицензия:

Для выполнения выражений Алгебры карт необходим дополнительный модуль Дополнительный модуль ArcGIS Spatial Analyst.

Обсуждение

Растровый объект, созданный на основе существующих данных, можно использовать в последующих выражениях Алгебры карт (Map Algebra), при этом он будет содержать все связанные свойства и методы растра.

# outRas is a resultant raster object
outRas = Raster("C:/Data/inraster")

Любой инструмент или оператор дополнительного модуля Spatial Analyst (см. раздел Работа с операторами), имеющий выходной растр слева от знака равенства, создаёт растровый объект. Например, в следующем выражении outRas является растровым объектом.

outRas = Slope("inelevation")

Когда растровый объект возвращается выражением Алгебры карт, по умолчанию объект (переменная и связанный набор данных) является временным.

Временный набор данных, связанный с растровым объектом, может стать постоянном при использовании следующих механизмов:

  1. Можно вызвать метод сохранения растрового объекта.
  2. Можно вызвать Сделать постоянным (Make Permanent), щелкнув правой кнопкой слой со связанным растровым объектом в TOC и указав имя выходных данных.
  3. Можно сохранить проект карты (MXD, 3DD и т. д.) со всеми слоями со связанными растровыми объектами.

    В третьем случае набор данных, на который ссылается растровый объект, автоматически сохраняется на диск с именем по умолчанию.

Если указанный растр не сделать постоянным с помощью одного из предыдущих методов, переменная и указанный набор растровых данных будут удалены, когда переменная выходит за область действия, например при завершении автономного скрипта или закрытия ArcGIS. Если растровый объект ссылается на постоянные данные на диске, эти данные не удаляются.

Определенные операторы есть и в Алгебре карт, и в Python. Если вы хотите, чтобы оператор работал с растрами (а не скалярными значениями), входные растры необходимо привести к типу растровых объектов с помощью конструктора классов Raster: Raster("inRaster").

# The Spatial Analyst plus operator is used on the input rasters creating
# an output raster object
outRas = Raster("input1") + Raster("input2") 
																																												
# The Python plus operator is used on numbers creating a scalar variable
outVar = 4 + 7 

# When there is a mix of rasters with numbers the Spatial Analyst
# operator is used creating an output raster object
outRas = Raster("input") + 10

Определенные свойства, связанные с растровым объектом, доступны, только если указанный набор растровых данных является постоянным. Если указанный набор растровых данных является временным, этим свойствам присваивается значение None (Нет). При этом затрагиваются свойства catalogPath, compressionType, format, hasRAT, name и path.

После того, как набор растровых данных сделан постоянным, он не может вернуться во временное состояние.

Синтаксис

Raster (inRaster)
ПараметрОбъяснениеТип данных
inRaster

Входной набор растровых данных.

Raster

Свойства

СвойствоОбъяснениеТип данных
bandCount
(только чтение)

Количество каналов в указанном наборе растровых данных.

Integer
catalogPath
(только чтение)

Полный путь и имя набора растровых данных.

String
compressionType
(только чтение)

Тип сжатия. Доступны следующие типы:

  • LZ77
  • JPEG
  • JPEG 2000
  • PACKBITS
  • LZW
  • RLE
  • CCITT GROUP 3
  • CCITT GROUP 4
  • CCITT (1D)
  • Нет

String
extent
(только чтение)

Экстент указанного набора растровых данных.

Extent
format
(только чтение)

Формат растра

  • BIL – файл Esri Band Interleaved by Line
  • BIP – файл Esri Band Interleaved by Pixel
  • BMP – формат битовой растровой графики
  • BSQ – файл Esri Band Sequential
  • DAT – файл ENVI DAT
  • GIF – графический обменный формат для наборов растровых данных
  • Grid – формат набора растровых данных Esri Grid
  • IMAGINE Image – формат растровых данных ERDAS IMAGINE
  • JP2000 – формат растровых данных JPEG 2000
  • JPEG – формат растровых данных Joint Photographic Experts Group
  • PNG – формат растровых данных Portable Network Graphic
  • TIFF – теговый формат файла изображения для набора растровых данных

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
(только чтение)

Тип пикселей указанного набора растровых данных. Используются следующие типы

  • U1 – 1 битовый
  • U2 – 2 битовый
  • U4 – 4 битовый
  • U8 – 8-битовый целочисленный без знака
  • S8 – 8-битовый целочисленный
  • U16 – 16-битовый целочисленный без знака
  • S16 – 16-битовый целочисленный
  • U32 – 32-битовый целочисленный без знака
  • S32 – 32-битовый целочисленный
  • F32 – с плавающей точкой одинарной точности
  • F64 – с плавающей точкой двойной точности

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")
9/10/2013