Что такое формат хранения ST_Raster?

ST_Raster является определяемым пользователем типом данных. Он хранится в отдельной строке, в отдельном столбце объекта типа ST_Raster в определенной пользователем таблице. ST_Raster обеспечивает полную поддержку базы геоданных, а также SQL-доступ к растровым данным. Это позволяет создавать приложения SQL с использованием системы управления базами данных (СУБД) для доступа к растровым операциям и запросам.

ST_Raster поддерживается в базах данных Oracle, Microsoft SQL Server и PostgreSQL. Этот тип не поддерживается в SQL Server Express.

Чтобы использовать тип ST_Raster, необходимо настроить его в СУБД. Инструкции см. в разделах Установка типа ST_Raster в Oracle, Установка типа ST_Raster в PostgreSQL или Установка типа ST_Raster в SQL Server.

Тип объекта ST_Raster определяется следующим образом:

CREATE TYPE ST_Raster AS OBJECT (
  raster_id			    INTEGER,
  type				        INTEGER,
  extent			       SE_EXTENT,
  properties			   SE_RASTERPROPERTY_LIST,
  rasterband_list	ST_RASTERBAND_LIST
	 data					       ST_PIXELDATA);

Attribute - Атрибут

Описание

raster_id

Уникально идентифицирует каждый растр в столбце таблицы, определенном как ST_Raster

Тип

В настоящее время зарезервирован только для внутреннего использования

экстент

Дополнительный атрибут, хранящий экстент поиска

свойства

Используется для хранения различных атрибутов, связанных с растром, но не с отдельными каналами растра

rasterband_list

Коллекция каналов растра, которые хранят атрибуты, свойственные каналам

данные

Зарезервированное поле

Объект ST_Raster состоит из нескольких дочерних объектов.

Диаграмма модели объектов типа ST_Raster

ST_RASTERBAND и ST_RASTERBAND_LIST

Тип ST_RASTERBAND_LIST определяется следующим образом:

CREATE TYPE st_rasterband_list 
AS VARRAY(4096) OF ST_RASTERBAND;

Тип ST_RASTERBAND определяется следующим образом:

CREATE TYPE st_rasterband AS OBJECT (
  rasterband_id	INTEGER,
  sequence			   INTEGER,
  types			      INTEGER,
  width			      INTEGER,
  height			     INTEGER,
  extent			     SE_EXTENT,
  block_origin		SE_COORD,
  block_width		 INTEGER,
  block_height		INTEGER,
  flags			      INTEGER);

Attribute - Атрибут

Описание

rasterband_id

Уникально идентифицирует каждый канал растра в столбце типа ST_Raster

sequence

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

типы

Побитовая маска, используемая для хранения различных метаданных канала растра; отдельные атрибуты, содержащиеся в побитовой маске, могут оцениваться и назначаться с помощью SQL-функций. Значение этого атрибута не должно изменяться напрямую.

ширина

Определяет ширину канала растра в пикселях

высота

Определяет высоту канала растра в пикселах

экстент

Географический экстент канала растра

block_origin

Поддерживает географическую координату блокового происхождения

block_width

Определяет ширину листа канала растра в пикселах

block_height

Определяет высоту листа канала растра в пикселах

флаги

Хранит побитовую маску метаданных каналов растров; отдельные атрибуты, содержащиеся в побитовой маске, могут оцениваться и назначаться с помощью SQL-функций. Это значение этого атрибута не должно изменяться напрямую.

SE_RASTERPROPERTY и SE_RASTERPROPERTY_LIST

Тип ST_RASTERPROPERTY_LIST определяется следующим образом:

CREATE TYPE se_rasterproperty_list
  AS VARRAY(1048576) OF SE_RASTERPROPERTY;

Тип ST_RASTERPROPERTY определяется следующим образом:

CREATE TYPE se_rasterproperty AS OBJECT (
  name				 VARCHAR2(65),
  intvalue	INTEGER,
  strvalue	VARCHAR2(160));

Attribute - Атрибут

Описание

name

Имя параметра свойства растра

intvalue

Хранит целочисленное значение свойства растра

strvalue

Хранит строковое значение свойства растра

SE_EXTENT

Тип SE_EXTENT определяется следующим образом:

CREATE TYPE se_extent AS OBJECT (
  minx				FLOAT(64),
  miny				FLOAT(64),
  maxx				FLOAT(64),
  maxy				FLOAT(64));

Attribute - Атрибут

Описание

minx

Минимальное значение X-координаты

miny

Минимальное значение Y-координаты

maxx

Максимальное значение X-координаты

maxy

Максимальное значение Y-координаты

SE_COORD

Тип SE_COORD определяется следующим образом:

CREATE TYPE se_coord AS OBJECT (
  x				FLOAT(64),
  y				FLOAT(64));

Attribute - Атрибут

Описание

x

Значение X-координаты

y

Значение Y-координаты

ST_PIXELDATA

Тип ST_PIXELDATA определяется следующим образом:

CREATE TYPE st_pixeldata AS OBJECT (
width    INTEGER,
height   INTEGER,
numbands INTEGER,
extent   SE_EXTENT,
types    INTEGER,
data     BLOB,
mask     BLOB);

Attribute - Атрибут

Описание

ширина

Ширина объекта в пикселах.

высота

Высота объекта в пикселах

numbands

Определяет число каналов для объекта

экстент

Географический экстент объекта

типы

Побитовая маска, используемая для хранения различных метаданных растра; отдельные атрибуты, содержащиеся в побитовой маске, могут оцениваться и назначаться с помощью SQL-функций. Значение этого атрибута не должно изменяться напрямую.

данные

Массив значений пикселов для объекта

маска

Побитовый массив NoData для объекта

5/10/2014