Что такое формат хранения 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_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 для объекта |