Для каждого свойства растра, из перечисленных в заголовке, существует функция или ряд функций, которые можно использовать для того, чтобы узнать, есть ли у растра такое свойство и каково его значение.
Эти функции можно использовать как изолированно, в SQL-операторах SELECT, так и в качестве части условия WHERE в операторах UPDATE для ограничения области обновляемых записей. Либо можно включать такие функции в оператор SELECT как часть скрипта, определяющую значение свойства растра, прежде, чем изменить это свойство.
Описание
Значения общих или конкретных свойств ST_Raster можно получить, используя характеристические функции.
При использовании характеристических функций без аргументов, функции возвращают общие свойства. Кроме того, чтобы получить конкретное свойство, можно задать характеристической функции аргумент. Допустимыми аргументами характеристических функций являются цветовая карта (colormap) и хранилище (storage).
При указании аргумента цветовая карта (colormap) функция возвращает значения общих свойств ST_Raster и индекс цветовой карты, примененной к растру. Если для данного растра цветовой карты не существует, а вы ее запросили, будет выдано сообщение об ошибке.
При задании аргумента хранилище (storage) кроме общей информации о растре функция возвращает следующие свойства:
- Минимальные значения для каждого канала и уровня пирамидного слоя
- Максимальные значения для каждого канала и уровня пирамидного слоя
- Среднее значение для каждого канала и уровня пирамидного слоя
- Стандартное отклонение значений пикселов для каждого канала и уровня пирамидного слоя
- Общее число пикселов в значении растра
- Значения размеров сжатого растра по каналам и уровням пирамидных слоев
Значение пиксела
В столбцах ST_Raster поддерживаются следующие пиксельные форматы:
- 1bit: 1-битные данные
- 4bit: 4-битные данные
- uint8: 8-битное целое число без знака
- int8: 8-битное целое число со знаком
- uint16: 16-битное целое число без знака
- int16: 16-битное целое число со знаком
- uint32: 32-битное целое число без знака
- int32: 32-битное целое число со знаком
- float: число с плавающей точкой обычной точности
- double: число с плавающей точкой двойной точности
Для определения, какой из пиксельных форматов используется в конкретном значении ST_Raster, применяется функция getPixelType.
Статистика
Если в растре есть статистика, ArcGIS Desktop может при выводе в ArcMap растянуть растр так, чтобы его было легче просматривать. Статистика растра также необходима для некоторых инструментов геообработки, работающих с растром.
Чтобы узнать, содержит ли конкретный ST_Raster вычисленную статистику, можно воспользоваться его функцией hasStats.
Функцию hasStats можно также использовать в условиях WHERE оператора UPDATE, чтобы ограничить область обновления данных только теми растрами, у которых нет статистики, или такими записями, которые уже содержат вычисленную статистику.
Сжатие
В ST_Raster можно использовать следующие типы сжатия:
- НЕТ (NONE): данные сохраняются без сжатия.
- LZ77: LZ77 использует сжатие длины без потерь; лучше всего подходит для данных с низкой степенью изменений или при невозможности использовать другие алгоритмы сжатия.
- JPEG: JPEG расшифровывается как Joint Photographic Experts Group — комитет, который разработал этот стандарт сжатия. JPEG — тип сжатия с потерей качества. Сжатие JPEG может применяться только к 8-битным данным, которые не имеют индекса цветовой карты.
- JP2: этот тип сжатия основан на «коротковолновом» формате JPEG 2000. Такой тип сжатия может применяться как к 8-битным, так и к 16-битным данным.
Для определения типа сжатия, примененного к значению ST_Raster, используется функция getCompressionType.
Чаще всего используется сжатие LZ77. Однако, для трехслойного и 8-битного растра и неоднородных данных в градациях серого, применяется и JPEG-сжатие. Сжатие JPEG2000 обычно применяется для 16-битных данных.
Пирамидный тип интерполяции
Пирамидная интерполяция – это алгоритм, применяемый при построении пирамидных слоев на растровом значении. Интерполяция предсказывает значения ячеек растра, основываясь на других ближайших значениях растра.
Существуют три возможных типа пирамидных слоев, используемых в значениях ST_Raster: ближайшая окрестность, билинейная интерполяция и кубическая свертка. Для определения типа интерполяции, примененного при построении пирамидного слоя для определенного значения ST_Raster, используется функция getInterpolationType.
Чаще всего используется билинейная интерполяция, поскольку она дает более гладкое изображение. Однако, билинейная интерполяция не учитывает значения пикселов предыдущего уровня. Ее нельзя использовать для данных, к которым применена цветовая карта, и не следует применять, если разрядность пиксельных данных менее 8 бит.
Обычно, если билинейная интерполяция не используется, то применяется пирамидная интерполяция методом ближайшей окрестности.
Если растр не содержит пирамидных слоев, то запрос, содержащий функцию getInterpolationType возвращает значение NULL.
Тип чередования
Типы чередования – это схемы хранения значений пикселов изображения.
ST_Raster поддерживает следующие типы чередования: попиксельная запись спектральных каналов (BIP) и поканальная запись (BSQ). Для определения, какой из типов используется в конкретном значении ST_Raster, применяется функция getInterleaveType.