Наборы растровых данных и каталоги растров в базе геоданных под управлением SQL Server

Растровые данные представляют собой пространственные данные в массиве ячеек одинакового размера, расположенные в строках и столбцах. Растровые данные могут состоять из одного и более канала растра. Для полного объяснения растровых данных и их атрибутов см. раздел "Разбираемся с растровыми данными" настоящего руководства. Вы можете начать с пункта Что такое растровые данные?

Растры в ArcGIS for Desktop

В ArcGIS растровые данные могут хранится в отдельном наборе растровых данных, каталоге растров и наборе данных мозаики. Для получения описания этих типов хранения растра см. раздел Организация растровых данных.

В дереве каталога отдельные наборы растровых данных в SQL Server представлены следующим значком:

Значок набора растровых данных

Каталог растра в дереве каталога представлен следующим значком:

Значок каталога растров

Имена каталогов растров и наборов растровых данных в SQL Server содержат имя базы данных, имя владельца набора каталога растра или набора данных, а также имя, собственно, каталога растра или набора растровых данных.

Например, набор растровых данных world, владельцем которого является пользователь rjp, в базе данных gdb будет отображаться в дереве Каталога, как GDB.RJP.WORLD.

Информацию о том, как хранятся наборы данных мозаики в базе геоданных, можно найти в Наборы данных мозаики в базе геоданных в SQL Server.

Таблицы растра в базе данных Microsoft SQL Server

Базы геоданных ArcSDE в базе данных SQL Server могут хранить растровые данные либо в собственном двоичном формате SQL Server, аналогично тому, как хранится Сжатый двоичный тип ArcSDE, либо с использованием типа хранения ST_Raster.

Столбец растра добавляется в бизнес-таблицу, и каждая ячейка столбца растра содержит ссылку на растр, хранящийся в отдельной таблице растра. Поэтому каждая строка бизнес-таблицы ссылается на целый растр.

Когда вы импортируете растр в базу геоданных ArcSDE в SQL Server, столбец растра добавляется в выбранную вами бизнес-таблицу. Вы можете дать столбцу растра любое имя, при условии, что оно соответствует правилам наименования столбцов в SQL Server. Согласно ограничению, установленному в ArcSDE, каждая бизнес-таблица может иметь только один столбец растра.

ПодсказкаПодсказка:

Базы данных, содержащие растры, требуют достаточно больших объемов дискового пространства по причине самой природы растров. Наборы растровых данных и каталоги растров редко бывают менее нескольких гигабайт (GB) и могут занимать до нескольких терабайт (TB) в вашей СУБД. Копирование большого объема растровых данных может стать сложной задачей. Для получения рекомендации и примеров управления растровыми данными в многопользовательских базах данных см. документацию Растровые данные в ArcSDE, которую можно загрузить с веб-сайта support.esri.com.

Растры, хранящиеся в двоичном формате SQL Server

Набор растровых данных, хранящийся в двоичном формате, включает семь таблиц: бизнес-таблицу, таблицу объектов, таблицу пространственного индекса, вспомогательную таблицу, а также таблицы блока, канала и атрибутов растра. Ниже показаны бизнес-таблица и таблицы растров для набора растровых данных world_TIF. Пунктирными линиями показано неявное отношение между двумя таблицами.

Таблицы набора двоичных растровых данных в SQL Server

Бизнес-таблица

Бизнес-таблица представляет собой таблицу СУБД, в которой хранятся атрибуты и имеется включенное пространство путем добавления растрового столбца. В ней хранится контур (который очерчивает область) растра. В приведенном выше примере бизнес-таблицей является таблица с именем world_tif .

Бизнес-таблица с растровым столбцом представляет собой набор растровых данных или каталог растров. Набор растровых данных может иметь только одну строку бизнес-таблицы, а в каталоге растров их может быть несколько. Информация о растровом столбце поддерживается в системной таблице SDE_raster_columns. Информация обо всех бизнес-таблицах, вне зависимости от того, имеют они пространственный или растровый столбец или нет, поддерживается в системной таблице SDE_table_registry.

Таблица объектов (f<layer_id>)

В таблице пространственных объектов хранится геометрия набора растровых данных. Данная таблица идентифицируется номером из столбца layer_id таблицы SDE_layers. Связь между бизнес-таблицей и таблицей объектов устанавливается с помощью идентификатора объекта (Feature ID или FID). Данный ключ, управляемый с помощью ArcSDE, является уникальным для пространственного столбца. В примере выше, таблицей объектов является f117.

Таблица пространственного индекса (s<layer_id>)

Таблица пространственного индекса хранит ссылки на геометрию, основанные на простой, регулярной сетке. Данная таблица идентифицируется номером в столбце layer_id в таблице SDE_layers. В примере с набором растровых данных World, таблицей пространственного индекса является s117. Пространственный индекс содержит запись для каждой комбинации геометрии и ячейки сетки для поддержки пространственных запросов. При выполнении пространственного запроса определяются ячейки сетки, относящиеся к области поиска, и на их основе возвращается список пикселов-кандидатов.

Таблицы растровых изображений

В данных таблицах хранятся фактические растровые изображения.

ПримечаниеПримечание:

Таблицы растра присутствуют в вашей базе данных только в том случае, если в базе геоданных у вас есть растровые данные.

SDE_aux_<raster_column_ID>

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

Существующие метаданные изображения, например, статистика изображения, цветовые карты или битовые маски, автоматически сохраняются во вспомогательной таблице растра. Столбец rasterband_id вспомогательной таблицы растра представляет собой ссылку внешнего ключа на первичный ключ таблицы канала растра. Две таблицы соединяются на основании ссылки первичный/внешний ключ при доступе к метаданным канала растра.

Имя поля

Тип поля

Описание

Null?

rasterband_id

integer

Номер, соответствующий каналу растра; например, набор растровых данных с двумя каналами растра будет иметь в данном поле два различных значения — 1 и 2.

NOT NULL

type

integer

Включенные значения

NOT NULL

object

varbinary(max)

Содержит все фактические данные, индекс цветовой карты, статистику растра или преобразование координат

NOT NULL

SDE_blk_<raster_column_ID>

В таблице блоков растров хранится фактические данные для каждого канала изображения.

В таблице блоков растров хранятся пикселы канала растра. Пикселы разделяются по блокам в соответствии с размером, который задается пользователем. Приложения ArcGIS, которые импортируют или создают растровые данные в базах геоданных, имеют размеры по умолчанию. Инструменты геообработки и ArcCatalog, например, используют размер блока растров по умолчанию, равный 128 на 128 пикселов. Размеры блока растров, а также метод сжатия, если он указан, определяются размером хранения для каждого блока растров. Вы можете выбрать размеры блока растров, которые, в сочетании с методом сжатия, позволяют разместить каждую строку таблицы блока растров в СУБД.

Таблица блоков растров содержит столбец RASTERBAND_ID , которые является ссылкой внешнего ключа на первичный ключ таблицы канала растра RASTERBAND_ID. Эти таблицы соединяются на основании ссылки первичный/внешний ключ при доступе к блокам каналов растра.

Таблица блоков растра заполняется в соответствии с принципом пирамиды уменьшения разрешения. Количество слоев пирамиды определяется количеством уровней, указанных приложением. Приложение, такое как инструменты геообработки или ArcCatalog, позволяет вам задавать уровни, выполнять запрос их расчета базой геоданных или обеспечивают обе функции сразу. Пирамида начинается в основании, уровне 0, содержащем исходные пикселы изображения. Пирамида движется к вершине путем объединения четырех пикселов предыдущего уровня в один пиксел текущего уровня. Данный процесс продолжается до достижения вершины, которая может определятся автоматически или задаваться пользователем.

Дополнительные уровни пирамиды увеличивают количество блоков растра не более, чем на одну треть. Однако, так как вы можете указывать количество слоев пирамиды, то ее размер может быть и меньше. Первый уровень пирамиды составляет 25 процентов от основания. Также необходимо отметить, что первый уровень пирамиды можно пропустить – данный факт позволяет значительно сократить размер пирамиды.

Пирамидный слой растра
Пирамидный слой растра

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

Имя поля

Тип поля

Описание

Null?

rasterband_id

integer

Номер, соответствующий каналу растра; например, набор растровых данных с двумя каналами растра будет иметь в данном поле два различных значения — 1 и 2.

NOT NULL

rrd_factor

integer

Уровень слоя пирамиды; уровни слоев пирамиды начинаются с 0 и могут увеличиваться.

NOT NULL

row_nbr

integer

Номер позиции строки листов

NOT NULL

col_nbr

integer

Номер позиции столбца листов

NOT NULL

block_data

varbinary(max)

Данные пикселя, хранящиеся в листе

NOT NULL

SDE_bnd_<raster_column_id>

В таблице канала растра хранится информация о каналах изображения. Каждому каналу растра соответствует одна запись.

В базе геоданных каналы растра хранятся в таблице каналов растра. Таблица каналов растра соединяется с таблицей растра в столбце RASTER_ID. Параметр RASTER_ID столбца таблицы канала растра представляет собой ссылку внешнего ключа на первичный ключ таблицы растра.

Имя поля

Тип поля

Описание

Null?

rasterband_id

integer

Номер, соответствующий каналу растра; например, набор растровых данных с двумя каналами растра будет иметь в данном поле два различных значения — 1 и 2.

NOT NULL

sequence_nbr

integer

Последовательность канала растра в наборе растровых данных.

NOT NULL

raster_id

integer

Уникальный идентификатор набора растровых данных; соответствует значению в столбце растра бизнес-таблицы

NOT NULL

name

nvarchar(65)

Дополнительное имя канала растра

band_flags

integer

Битовая маска, содержащая свойства канала

NOT NULL

band_width

integer

Ширина канала в пикселах

NOT NULL

band_height

integer

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

NOT NULL

band_types

integer

Битовая маска, содержащая свойства канала

NOT NULL

block_width

integer

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

NOT NULL

block_height

integer

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

NOT NULL

block_origin_x

float

x-координата начала растра

NOT NULL

block_origin_y

float

y-координата начала растра.

NOT NULL

eminx

float

Минимальное значение x канала растра

NOT NULL

eminy

float

Минимальное значение y канала растра

NOT NULL

emaxx

float

Максимальное значение y канала растра

NOT NULL

emaxy

float

Максимальное значение y канала растра

NOT NULL

cdate

integer

Дата создания канала растра

NOT NULL

mdate

integer

Дата последнего изменения канала растра

NOT NULL

SDE_ras_<raster_column_id>

В таблице описания растра хранится описание изображений в столбце растра.

Имя поля

Тип поля

Описание

Null?

raster_id

integer

Уникальный идентификатор набора растровых данных; соответствует значению в столбце растра бизнес-таблицы

NOT NULL

raster_flags

integer

Сохранено для будущего использования

description

nvarchar(65)

Описание набора растровых данных

Другие системные таблицы для отслеживания растров

Как и другие типы данных, каталоги растров и наборы данных отслеживаются в таблицах GDB_ITEMS и SDE_layers. Столбцы типа растра отслеживаются в таблице SDE_raster_columns — существует одна запись для каждой таблицы, содержащей растровый столбец.

Могут присутствовать дополнительные таблицы атрибутов, являющиеся частью набора растровых данных или каталога растров. В действительности для одного набора растровых данных будет существовать одна таблица атрибутов растра, но каталоги растров могут иметь несколько таких таблиц. Таблицы атрибутов растра используются для определения атрибутов значения отдельной растровой ячейки.. Дополнительные сведения об использовании данных таблиц см. в разделе Атрибутивные таблицы наборов растровых данных.

Вы можете использовать инструмент Построить атрибут растра (Build Raster Attribute) группы инструментов Свойства растра (Raster Properties) из набора инструментов Управление данными (Data Management). Дополнительную информацию о данном инструмента см. в разделе Построить таблицу атрибутов растра (управление данными).

Для наборов растровых данных дополнительные таблицы атрибутов имеют имя в формате SDE_VAT_<raster_column_ID>. Для каталогов растра имя таблицы имеет формат SDE_VAT_<raster_column_ID>_<Object_ID>.

Растры, хранящиеся в формате 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>).

View a diagram of a raster dataset using ST_Raster storage in SQL Server.

ПримечаниеПримечание:

Для открытия файла необходим Adobe Acrobat Reader.

Штриховые линии определяют неявные отношения между столбцами.

Растры в XML-документе

В XML-документе наборы растровых данных сопровождаются тегами DataElement. Теги имеют значение "esri:DERasterDataset".

<DataElement xsi:type="esri:DERasterDataset">
       <CatalogPath>/V=sde.DEFAULT/RD=gdb.RJP.world_TIF</CatalogPath> 
       <Name>gdb.RJP.world_TIF</Name> 
       <Children xsi:type="esri:ArrayOfDataElement">
          <DataElement xsi:type="esri:DERasterBand">
            <CatalogPath>/V=sde.DEFAULT/RD=gdb.RJP.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>
      </DataElement>
9/11/2013