ST_Raster является определяемым пользователем типом данных. Он хранится в отдельной строке, в отдельном столбце объекта типа ST_Raster в определенной пользователем таблице. ST_Raster обеспечивает полную поддержку базы геоданных, а также SQL-доступ к растровым данным. Это позволяет создавать приложения SQL для доступа и работы с растровыми операциями и запросами.
ST_Raster поддерживается в базах данных Oracle, Microsoft SQL Server и PostgreSQL. ST_Raster не поддерживается в SQL Server Express, Amazon Relational Database Service for SQL Server или Amazon Relational Database Service for PostgreSQL.
Чтобы использовать тип 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);
Атрибут | Описание |
---|---|
raster_id | Уникально идентифицирует каждый растр в столбце таблицы, определенном как ST_Raster |
type | В настоящее время зарезервирован только для внутреннего использования |
extent | Дополнительный атрибут, хранящий экстент поиска |
properties | Используется для хранения различных атрибутов, связанных с растром, но не с отдельными каналами растра |
rasterband_list | Коллекция каналов растра, которые хранят атрибуты, свойственные каналам |
data | Зарезервированное поле |
Объект 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);
Атрибут | Описание |
---|---|
rasterband_id | Уникально идентифицирует каждый канал растра в столбце типа ST_Raster |
sequence | Поддерживает последовательность каждого канала в данной коллекции каналов растра, значение последовательности для каждого канала в коллекции должно быть уникальным. |
types | Побитовая маска, используемая для хранения различных метаданных канала растра; отдельные атрибуты, содержащиеся в побитовой маске, могут оцениваться и назначаться с помощью SQL-функций. Значение этого атрибута не должно изменяться напрямую. |
width | Определяет ширину канала растра в пикселях |
height | Определяет высоту канала растра в пикселах |
extent | Географический экстент канала растра |
block_origin | Поддерживает географическую координату блокового происхождения |
block_width | Определяет ширину листа канала растра в пикселах |
block_height | Определяет высоту листа канала растра в пикселах |
flags | Хранит побитовую маску метаданных каналов растров. Отдельные атрибуты, содержащиеся в побитовой маске, могут оцениваться и назначаться с помощью 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));
Атрибут | Описание |
---|---|
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));
Атрибут | Описание |
---|---|
minx | Минимальное значение X-координаты |
miny | Минимальное значение Y-координаты |
maxx | Максимальное значение X-координаты |
maxy | Максимальное значение Y-координаты |
SE_COORD
Тип SE_COORD определяется следующим образом:
CREATE TYPE se_coord AS OBJECT (
x FLOAT(64),
y FLOAT(64));
Атрибут | Описание |
---|---|
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);
Атрибут | Описание |
---|---|
width | Ширина объекта в пикселах. |
height | Высота объекта в пикселах |
numbands | Определяет число каналов для объекта |
extent | Географический экстент объекта |
types | Побитовая маска, используемая для хранения различных метаданных растра. Отдельные атрибуты, содержащиеся в побитовой маске, могут оцениваться и назначаться с помощью SQL-функций. Значение этого атрибута не должно изменяться напрямую. |
data | Массив значений пикселов для объекта |
mask | Побитовый массив NoData для объекта |