Наборы растровых данных и каталоги растров в базе геоданных под управлением Oracle
Растровые данные представляют собой пространственные данные в массиве ячеек одинакового размера, расположенные в строках и столбцах. Растровые данные могут состоять из одного и более канала растра. Для полного объяснения растровых данных и их атрибутов см. раздел "Разбираемся с растровыми данными" настоящего руководства. Вы можете начать с пункта Что такое растровые данные?
Растры в ArcGIS for Desktop
В ArcGIS растровые данные могут хранится в отдельном наборе растровых данных, каталоге растров и наборе данных мозаики. Для получения описания этих типов хранения растра см. раздел Организация растровых данных.
В дереве каталога отдельные наборы растровых данных в Oracle представлены следующим значком:
Каталог растра в дереве каталога представлен следующим значком:
В базе геоданных в Oracle имя каталогов растров или наборов растровых данных включает имя владельца каталога растров или набора растровых данных и само имя каталога или набора.
Например, набор растровых данных world, владельцем которого является пользователь rock, будет отображаться в дереве Каталога, как ROCK.WORLD.
Более подробную информацию о хранении наборов данных мозаики в базе геоданных см. в Наборы данных мозаики в базе геоданных в Oracle.
Таблицы растров в базе данных Oracle
Базы геоданных ArcSDE в базе данных Oracle хранят растровые данные, используя следующие типы хранения растров: LONG RAW, BLOB, GeoRaster, или ST_Raster.
Для растров, хранящихся в Oracle, столбец растра добавляется к бизнес-таблице, и каждая ячейка столбца растра содержит ссылку на растр, хранящийся в отдельной таблице растров. Поэтому каждая строка бизнес-таблицы ссылается на определенный растр.
Когда вы импортируете растр в базу геоданных ArcSDE в Oracle, столбец растра добавляется к бизнес-таблице по вашему выбору. Вы можете назвать столбец растра по собственному выбору, при условии, что название следует правилам наименования столбцов в Oracle. В ArcSDE установлено ограничение на один столбец растра для каждой бизнес-таблицы.
Растры, хранящиеся в формате LONG RAW или BLOB
Набор растровых данных, хранящийся в формате LONG RAW или BLOB, представлен в виде семи таблиц в базе геоданных: бизнес-таблица, таблица объектов, таблица пространственных индексов, а также вспомогательная, атрибутивная, блоковая таблица и таблица каналов. Далее показаны бизнес-таблица и таблица растров для набора растровых данных WORLD_TIF.
Тип данных LONG RAW может быть исключен в дальнейших релизах Oracle. Поэтому Esri рекомендует пользователям не создавать новые наборы растровых данных, используя тип хранения LONG RAW.
Бизнес-таблица
Бизнес-таблица представляет собой таблицу СУБД, в которой хранятся атрибуты и имеется включенное пространство путем добавления растрового столбца. В ней хранится контур (который очерчивает область) растра. В приведенном выше примере бизнес-таблицей является таблица с именем WORLD_TIF .
Бизнес-таблица с растровым столбцом представляет собой набор растровых данных или каталог растров. Набор растровых данных может иметь только одну строку бизнес-таблицы, а в каталоге растров их может быть несколько. Информация о растровом столбце поддерживается в системной таблице RASTER_COLUMNS. Информация обо всех бизнес-таблицах, вне зависимости от того, имеют они пространственный или растровый столбец или нет, поддерживается в системной таблице TABLE_REGISTRY.
Таблица объектов (f<layer_id>)
В таблице пространственных объектов хранится геометрия набора растровых данных. Данная таблица идентифицируется по значению (номеру) из столбца LAYER_ID в таблице LAYERS. Связь между бизнес-таблицей и таблицей объектов устанавливается через идентификатор объекта (Feature ID, или FID). Данный ключ, управляемый с помощью ArcSDE, является уникальным для пространственного столбца. В примере выше, таблицей объектов является F117.
Таблица пространственного индекса (s<layer_id>)
Таблица пространственного индекса хранит ссылки на геометрию, основываясь на простой, регулярной сетке. Данная таблица идентифицируется по значению (номеру) в столбце LAYER_ID в таблице LAYERS. В примере с набором растровых данных WORLD_TIF, таблицей пространственного индекса является S117. Пространственный индекс содержит запись для каждой геометрии и комбинацию ячеек сетки, чтобы поддерживать пространственные запросы. При выполнении пространственного запроса, ячейки сетки, попадающие в область поиска, определяются и используются, чтобы вернуть список пикселов-кандидатов.
Таблицы растровых изображений
В данных таблицах хранятся фактические растровые изображения.
Таблицы растра присутствуют в вашей базе данных только в том случае, если в базе геоданных у вас есть растровые данные.
Во вспомогательной таблице растра хранится цветовая карта изображения, а также дополнительная битовая маска, которая используется для наложения изображений и создания мозаики.
Существующие метаданные изображения, например, статистика изображения, цветовые карты или битовые маски, автоматически сохраняются во вспомогательной таблице растра. Столбец rasterband_id вспомогательной таблицы растра представляет собой ссылку внешнего ключа на первичный ключ таблицы канала растра. Две таблицы соединяются на основании ссылки первичный/внешний ключ при доступе к метаданным канала растра.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
RASTERBAND_ID |
NUMBER(38) |
Номер, соответствующий каналу растра; например, набор растровых данных с двумя каналами растра будет иметь в данном поле два различных значения — 1 и 2. |
NOT NULL |
TYPE |
NUMBER(38) |
Включенные значения |
NOT NULL |
OBJECT |
LONG RAW or BLOB |
Содержит все фактические данные, индекс цветовой карты, статистику растра или преобразование координат |
NOT NULL |
В таблице блоков растров хранится фактические данные для каждого канала изображения.
В таблице блоков растров хранятся пикселы канала растра. Пикселы разделяются по блокам в соответствии с размером, который задается пользователем. Приложения ArcGIS, которые импортируют или создают растровые данные в базах геоданных, имеют размеры по умолчанию. Инструменты геообработки и ArcCatalog, например, используют размер блока растров по умолчанию, равный 128 на 128 пикселов. Размеры блока растров, а также метод сжатия, если он указан, определяются размером хранения для каждого блока растров. Вы можете выбрать размеры блока растров, которые, в сочетании с методом сжатия, позволяют разместить каждую строку таблицы блока растров в СУБД.
Таблица блоков растров содержит столбец RASTERBAND_ID , которые является ссылкой внешнего ключа на первичный ключ таблицы канала растра RASTERBAND_ID. Эти таблицы соединяются на основании ссылки первичный/внешний ключ при доступе к блокам каналов растра.
Для столбца Oracle в системах Linux, UNIX и Windows вам необходимо создать очень большое табличное пространство для хранения таблицы блоков растра (BLK), а также создать второе табличное пространство средних размеров для хранения остальных таблиц растров и индексов.
При создании табличных пространств для таблицы блоков растра в Oracle рекомендуется использовать размер экстента 64. Размер экстента определяет количество страниц с размером листа, которое будет записано в контейнер перед переходом к следующему контейнеру. Размер экстента определяется во время создания табличного пространства и не может быть легко изменен впоследствии. Существует вспомогательный тип таблицы растра – таблица атрибута растра. В данных таблицах хранятся значения атрибута на основании значений ячеек в растре.
Таблица блоков растра заполняется в соответствии с принципом пирамиды уменьшения разрешения. Количество слоев пирамиды определяется количеством уровней, указанных приложением. Приложение, такое как инструменты геообработки или ArcCatalog, позволяет вам задавать уровни, выполнять запрос их расчета базой геоданных или обеспечивают обе функции сразу. Пирамида начинается в основании, уровне 0, содержащем исходные пикселы изображения. Пирамида движется к вершине путем объединения четырех пикселов предыдущего уровня в один пиксел текущего уровня. Данный процесс продолжается до достижения вершины, которая может определятся автоматически или задаваться пользователем.
Дополнительные уровни пирамиды увеличивают количество блоков растра не более, чем на одну треть. Однако, так как вы можете указывать количество слоев пирамиды, то ее размер может быть и меньше. Первый уровень пирамиды составляет 25 процентов от основания. Также необходимо отметить, что первый уровень пирамиды можно пропустить – данный факт позволяет значительно сократить размер пирамиды.
При построении пирамиды большее количество растров создается путем постепенного понижения предыдущего слоя на двойной коэффициент до достижения вершины. По причине уменьшения приложения и роста ячеек, не превышающего порог разрешения, выбирается более высокий уровень слоя пирамиды. Назначение пирамиды заключается в оптимизации производительности отображения.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
RASTERBAND_ID |
NUMBER(38) |
Номер, соответствующий каналу растра; например, набор растровых данных с двумя каналами растра будет иметь в данном поле два различных значения — 1 и 2. |
NOT NULL |
RRD_FACTOR |
NUMBER(38) |
Уровень слоя пирамиды; уровни слоев пирамиды начинаются с 0 и могут увеличиваться. |
NOT NULL |
ROW_NBR |
NUMBER(38) |
Номер позиции строки листов |
NOT NULL |
COL_NBR |
NUMBER(38) |
Номер позиции столбца листов |
NOT NULL |
BLOCK_DATA |
LONG RAW or BLOB |
Данные пикселя, хранящиеся в листе |
NOT NULL |
В таблице канала растра хранится информация о каналах изображения. Каждому каналу растра соответствует одна запись.
В базе геоданных каналы растра хранятся в таблице каналов растра. Таблица каналов растра соединяется с таблицей растра в столбце RASTER_ID. Параметр RASTER_ID столбца таблицы канала растра представляет собой ссылку внешнего ключа на первичный ключ таблицы растра.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
RASTERBAND_ID |
NUMBER(38) |
Номер, соответствующий каналу растра; например, набор растровых данных с двумя каналами растра будет иметь в данном поле два различных значения — 1 и 2. |
NOT NULL |
SEQUENCE_NBR |
NUMBER(38) |
Последовательность канала растра в наборе растровых данных. |
NOT NULL |
RASTER_ID |
NUMBER(38) |
Уникальный идентификатор набора растровых данных; соответствует значению в столбце растра бизнес-таблицы |
NOT NULL |
NAME |
NVARCHAR2(65) |
Дополнительное имя канала растра |
|
BAND_FLAGS |
NUMBER(38) |
Битовая маска, содержащая свойства канала |
NOT NULL |
BAND_WIDTH |
NUMBER(38) |
Ширина канала в пикселах |
NOT NULL |
BAND_HEIGHT |
NUMBER(38) |
Высота канала в пикселах |
NOT NULL |
BAND_TYPES |
NUMBER(38) |
Битовая маска, содержащая свойства канала |
NOT NULL |
BLOCK_WIDTH |
NUMBER(38) |
Ширина блока в пикселах |
NOT NULL |
BLOCK_HEIGHT |
NUMBER(38) |
Высота блока в пикселах |
NOT NULL |
BLOCK_ORIGIN_X |
NUMBER(64) |
x-координата начала растра |
NOT NULL |
BLOCK_ORIGIN_Y |
NUMBER(64) |
y-координата начала растра. |
NOT NULL |
EMINX |
NUMBER(64) |
Минимальное значение x канала растра |
NOT NULL |
EMINY |
NUMBER(64) |
Минимальное значение y канала растра |
NOT NULL |
EMAXX |
NUMBER(64) |
Максимальное значение y канала растра |
NOT NULL |
EMAXY |
NUMBER(64) |
Максимальное значение y канала растра |
NOT NULL |
CDATE |
NUMBER(38) |
Дата создания канала растра |
NOT NULL |
MDATE |
NUMBER(38) |
Дата последнего изменения канала растра |
NOT NULL |
В таблице описания растра хранится описание изображений в столбце растра.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
RASTER_ID |
NUMBER(38) |
Уникальный идентификатор набора растровых данных; соответствует значению в столбце растра бизнес-таблицы |
NOT NULL |
RASTER_FLAGS |
NUMBER(38) |
Сохранено для будущего использования |
|
DESCRIPTION |
NVARCHAR2(65) |
Описание набора растровых данных |
Другие системные таблицы для отслеживания растров
Как и другие типы данных, каталоги растров и наборы данных отслеживаются в таблицах GDB_ITEMS и LAYERS. Столбцы типа растра отслеживаются в таблице RASTER_COLUMNS — существует одна запись для каждой таблицы, содержащей растровый столбец.
Могут присутствовать дополнительные таблицы атрибутов, являющиеся частью набора растровых данных или каталога растров. В действительности для одного набора растровых данных будет существовать одна таблица атрибутов растра, но каталоги растров могут иметь несколько таких таблиц. Таблицы атрибутов растра используются для определения атрибутов значения отдельной растровой ячейки.. Дополнительные сведения об использовании данных таблиц см. в разделе Атрибутивные таблицы наборов растровых данных.
Вы можете использовать инструмент Построить атрибут растра (Build Raster Attribute) группы инструментов Свойства растра (Raster Properties) из набора инструментов Управление данными (Data Management). Дополнительную информацию о данном инструмента см. в разделе Построить таблицу атрибутов растра (управление данными).
Для наборов растровых данных дополнительные таблицы атрибутов имеют имя в формате SDE_VAT_<raster_column_ID>. Для каталогов растра имя таблицы имеет формат SDE_VAT_<raster_column_ID>_<Object_ID>.
View a diagram of a raster dataset using binary storage in Oracle.
Штриховые линии определяют неявные отношения между столбцами.
Для открытия файла необходим Adobe Acrobat Reader.
Растры, хранящиеся в формате ST_Raster
ST_Raster - это определенный пользователем тип объектов, который предназначен для подтипов. Набор растровых данных, хранящийся в формате ST_Raster, представлен в виде трех таблиц: бизнес-таблица, вспомогательная таблица и блоковая таблица. При использовании в базе геоданных формата хранения ST_Raster, одинаковая информация, которая будет храниться в таблице растра и в таблице канала растра для бинарных растров, является частью объекта ST_Raster в основной таблице. Объект ST_Raster также хранит геометрию для растра.
Растры, хранящиеся в формате ST_Raster, имеют вспомогательные (SDE_AUX_<raster_ID>) и блоковые (SDE_BLK_<raster_ID>) таблицы (см. секцию "Таблицы растровых изображений" в данном разделе), но не используют таблицу каналов (SDE_BND_<raster_ID>) или таблицу растров (SDE_RAS_<raster_ID>).
Аналогично, для ST_Raster не существует f-таблицы; объект ST_Raster сам хранит геометрию.
View a diagram of a raster dataset using ST_Raster storage in Oracle.
Штриховые линии определяют неявные отношения между столбцами.
Для открытия файла необходим Adobe Acrobat Reader.
Растры, хранящиеся в формате GeoRaster в Oracle
Растры, хранящиеся в формате GeoRaster в базе геоданных в Oracle, имеют в бизнес-таблице столбец с типом MDSYS.GEORASTER. Эта информация отслеживается в схеме метаданных в Oracle. Столбец MDSYS.GEORASTER содержит компоненты, сходные со следующими:
Имя |
Пример значения компоненты |
---|---|
RASTER |
SDO_GEORASTER |
RASTERTYPE |
20001 |
SPATIALEXTENT |
SDO_GEOMETRY |
SDO_GTYPE |
2003 |
SDO_SRID |
NULL |
SDO_POINT |
NULL |
SDE_ELEM_INFO |
SDO_ELEM_INFO_ARRAY(1,1003,3) |
SDO_ORDINATES |
SDO_ORDINATE(0,0,0256,256) |
RASTERDATATABLE |
'SDE_RDT_1897' |
RASTERID |
2 |
METADATA |
XMLTYPE(<georasterMetadata xmlns="http://xmlns.oracle.com/spatial/georaster"> <objectI) |
Столбец метаданных очень длинный, поэтому, чтобы просмотреть его с помощью SQL*Plus, вам необходимо увеличить параметры LONGSIZE и PAGESIZE среды SQL*Plus и делать запрос, в точности, как показано ниже:
set LONG 20000
set PAGESIZE 500
Пиксельные данные для каждого столбца SDO_GEORASTER хранятся в отдельной таблице растровых данных. Таблицы данных SDO_GEORASTER, созданные с помощью ArcSDE, выглядят как SDE_RDT_<raster_column_id>, где <rastercolumn_id> - это поле идентификатора столбца растра в таблице RASTER_COLUMN, что однозначно определяет данный столбец растра в метаданных ArcSDE. ArcSDE использует параметр хранения BLK_STORAGE DBTUNE, чтобы контролировать параметры хранения для таблицы SDE_RDT_<rastercolumn_id> в Oracle. Для получения описания данной таблицы и ее полей, ознакомьтесь с главой 1 в документации Oracle Spatial GeoRaster, предоставленной Oracle.
Таблица SDE_RDT_<raster_column_id> определена следующим образом:
Имя поля |
Тип поля |
---|---|
RASTERID |
NUMBER |
PYRAMIDLEVEL |
NUMBER |
BANDBLOCKNUMBER |
NUMBER |
ROWBLOCKNUMBER |
NUMBER |
COLUMNBLOCKNUMBER |
NUMBER |
BLOCKMBR |
MDSYS.SDO_GEOMETRY |
RASTERBLOCK |
BLOB |
View a diagram of a raster dataset using SDO_GeoRaster storage in Oracle.
Для открытия файла необходим Adobe Acrobat Reader.
Учитывая природу растровых данных, базы данных, содержащие растры, требуют больших объемов дискового пространства. Наборы растровых данных и каталоги растров редко бывают менее нескольких гигабайт (GB) и могут занимать до нескольких терабайт (TB) в вашей СУБД (DBMS). Копирование большого объема растровых данных может поэтому стать сложной задачей. Чтобы получить рекомендации и примеры того, как управлять вашими растровыми данными в базе геоданных ArcSDE, вы можете ознакомиться с полезным документом Растровые данные в ArcSDE, который может быть скачан с сайта техподдержки ArcSDE по адресу support.esri.com.
Растры в XML-документе
В XML-документе наборы растровых данных сопровождаются тегами DataElement. Теги имеют значение "esri:DERasterDataset".
<esri:Workspace xmlns:esri="http://www.esri.com/schemas/ArcGIS/9.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<WorkspaceDefinition xsi:type="esri:WorkspaceDefinition">
<WorkspaceType>esriRemoteDatabaseWorkspace</WorkspaceType>
<Version>sde.DEFAULT</Version>
<Domains xsi:type="esri:ArrayOfDomain" />
<DatasetDefinitions xsi:type="esri:ArrayOfDataElement">
<DataElement xsi:type="esri:DERasterDataset">
<CatalogPath>/V=sde.DEFAULT/RD=ROCK.world_TIF</CatalogPath>
<Name>ROCK.world_TIF</Name>
<Children xsi:type="esri:ArrayOfDataElement">
<DataElement xsi:type="esri:DERasterBand">
<CatalogPath>/V=sde.DEFAULT/RD=ROCK.world_TIF/RB=Band_1</CatalogPath>
<Name>Band_1</Name>
<DatasetType>esriDTRasterBand</DatasetType>
<DSID>-1</DSID>
<Versioned>false</Versioned>
<CanVersion>false</CanVersion>
<HasOID>true</HasOID>
<OIDFieldName>ObjectID</OIDFieldName>
<Fields xsi:type="esri:Fields">
<FieldArray xsi:type="esri:ArrayOfField">
<Field xsi:type="esri:Field">
<Name>ObjectID</Name>
<Type>esriFieldTypeOID</Type>
<IsNullable>false</IsNullable>
<Length>4</Length>
<Precision>0</Precision>
<Scale>0</Scale>
<Required>true</Required>
<Editable>false</Editable>
</Field>
<Field xsi:type="esri:Field">
<Name>Value</Name>
<Type>esriFieldTypeInteger</Type>
<IsNullable>true</IsNullable>
<Length>0</Length>
<Precision>0</Precision>
<Scale>0</Scale>
</Field>
<Field xsi:type="esri:Field">
<Name>Count</Name>
<Type>esriFieldTypeInteger</Type>
<IsNullable>true</IsNullable>
<Length>0</Length>
<Precision>0</Precision>
<Scale>0</Scale>
</Field>
</FieldArray>
</Fields>
<Indexes xsi:type="esri:Indexes">
<IndexArray xsi:type="esri:ArrayOfIndex" />
</Indexes>
<IsInteger>true</IsInteger>
<MeanCellHeight>0.175996089009095</MeanCellHeight>
<MeanCellWidth>0.176000337991447</MeanCellWidth>
<Height>1024</Height>
<Width>2048</Width>
<PixelType>U8</PixelType>
<PrimaryField>1</PrimaryField>
<TableType>esriRasterTableValue</TableType>
<Extent xsi:type="esri:EnvelopeN">
<XMin>-179.906382261841</XMin>
<YMin>-90.1303147686327</YMin>
<XMax>180.542309944643</XMax>
<YMax>90.089680376681</YMax>
<SpatialReference xsi:type="esri:GeographicCoordinateSystem">
<WKT>GEOGCS["GCS_WGS_1984", DATUM["D_WGS_1984", SPHEROID["WGS_1984",6378137.0,298.257223563]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]]</WKT>
<XOrigin>-400</XOrigin>
<YOrigin>-400</YOrigin>
<XYScale>11258999068426.2</XYScale>
<ZOrigin>0</ZOrigin>
<ZScale>1</ZScale>
<MOrigin>0</MOrigin>
<MScale>1</MScale>
<XYTolerance>8.98315284119521E-09</XYTolerance>
<ZTolerance>2</ZTolerance>
<MTolerance>2</MTolerance>
<HighPrecision>true</HighPrecision>
<LeftLongitude>-180</LeftLongitude>
</SpatialReference>
</Extent>
</Data>
</DatasetData>
</WorkspaceData>
</esri:Workspace>