Наборы данных Terrain в базе геоданных в DB2
Наборы данных Terrain – это поверхности, представляющие трехмерное пространство. Они используют измерения (хранящиеся как классы пространственных объектов) и правила для создания пирамид нерегулярной триангуляционной сети (TIN) для воссоздания рельефа.
Источник класса пространственных объектов может быть привязан к наборам данных terrain или внедрен в набор данных terrain.
Для объяснения набора данных terrain см. руководство "Разбираемся с наборами данными terrain". Вы можете начать с раздела Что такое набор данных terrain?
Наборы данных terrain в ArcGIS for Desktop
В дереве каталога наборы данных terrain выглядят аналогично другим наборам классов, но содержат terrain. Наборы данных terrain представляются следующим значком:
Имя набора данных terrain в базе геоданных в DB2 содержит имя базы данных, имя владельца локатора и имя, собственно, локатора.
Например, набор данных terrain с именем napa_terrain, владельцем которого является пользователь gis, в базе геоданных с названием gdb в дереве каталога отображается как GDB.GIS.Napa_terrain.
Для просмотра класса пространственных объектов, участвующих в построении набора данных Terrain, проверьте свойства terrain В следующем примере вы увидите два класса пространственных объектов, участвующих в построении terrain—napa_sub_breaks, napa_sub_clip, а также внедренный класс пространственных объектов napasub.
Наборы данных Terrain в базе данных IBM DB2
Являясь наборами данных, terrain управляются в базе геоданных с использованием таблиц, аналогичных наборам классов объектов, также имеются три специальные terrain таблицы, созданные в схеме пользователя, который создал набор данных terrain. Это следующие таблицы:
Составные листы являются неполными, в терминах покрытия данных, по их периметру. Они могут не содержать полностью всех измерений или только близости одного или нескольких углов. Для определения поверхности, покрывающей экстенты этих листов, используются данные из окружающих листов. Данная таблица используется для идентификации листов, которые являются составными, а также предоставление данных для их завершения соседними листами. На один составной лист используется одна запись.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
ID |
INTEGER |
Уникальный идентификатор формы, указывающей на соседние листы |
NOT NULL |
TILENR |
INTEGER |
Номер составного листа Определяется системой листа набора данных terrain. Для одной записи, содержащей центроиды листов периметра terrain, зарезервировано значение -1. |
NOT NULL |
EMPTYTILE |
SMALLINT |
Значение -1 указывает, что лист не содержит измерений. Значение 0 указывает, что лист содержит некоторые данные, но не является полным. |
NOT NULL |
OTHERTILES |
ST_MULTIPOINT |
Форма мультиточки хранит центроид листа для каждого окружающего листа, который предоставляет измерения для завершения составного листа |
Измененные области представляют собой листы, ставшие недействительными в результате редактирования классов объектов в одном или более участвующих в построении классе пространственных объектов. Данная таблица используется для слежения за недействительными листами, и записи классов объектов, в которых было выполнено редактирование. Для одного класса пространственных объектов, в котором было выполнено редактирование, используется одна запись. Таблица будет пустой только в том случае, если редактирование не выполняется.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
ID |
INTEGER |
Уникальный идентификатор формы |
NOT NULL |
CLASSID |
INTEGER |
Идентификатор класса пространственных объектов, являющегося источником редактирования |
NOT NULL |
TILECOUNT |
INTEGER |
Количество измененных листов в процессе редактирования класса пространственных объектов |
NOT NULL |
DIRTYAREA |
ST_MULTIPOINT |
Форма мультиточки содержит центроиды листов, ставших недействительными в результате редактирования класса пространственных объектов. |
NOT NULL |
Таблицы Embed используется для хранения класса объектов мультиточки. Может существовать 0..n embed таблиц. Их наличие зависит от того, имеет ли terrain внедренные данные. Для внедренного класса объектов используется одна таблица. Являясь частью структуры пирамиды таблица embed имеет двойную цель. Внедренные данные группируются по листу и уровню слоя пирамиды.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
ID |
INTEGER |
Уникальный идентификатор формы |
NOT NULL |
TILEROW |
INTEGER |
Номер строки листа terrain, которому принадлежат внедренные точки |
|
TILECOL |
INTEGER |
Номер столбца листа terrain, которому принадлежат внедренные точки |
|
RESOLUTION |
DECIMAL(31,8) |
Указывает уровень или уровни пирамиды, в которых используются точки. Так как уровни пирамидных слоев являются кумулятивными, данные точки участвуют в уровнях, разрешение которых равно или превосходит их. Специальный случай включает обзор terrain. Разрешение уровня обзора отмечено значением -1. Точки, имеющие данное значение, участвуют в построении всех пирамидных слоев. |
|
POINTCOUNT |
INTEGER |
Число точек в мультиточке |
NOT NULL |
NEIGHBORDATA |
SMALLINT |
Указывает на то, имеются ли точки внутри границы рамки листа; наружные точки используются для обеспечения полного покрытия площади листа. Значение 0 указывает, что точки находятся внутри листа. Значение -1 указывает, что точки находятся снаружи |
NOT NULL |
SHAPE |
ST_MULTIPOINT |
Внедренный тип геометрии мультиточка |
Таблица InsideTiles используется для записи листов terrain, которые находятся в области данных или зоне интерполяции объекта terrain. Эти данные записываются на уровень пирамиды, так как экстент может изменятся по уровням (например, с использованием различных классов объекта вырезания полигона в различных уровнях пирамиды). Одному уровню пирамиды соответствует одна запись. К ним относятся обзор и уровни полного разрешения.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
ID |
INTEGER |
Уникальный идентификатор формы |
NOT NULL |
ZTOLERANCE |
DECIMAL(31,8) |
Разрешение уровня пирамиды A со значением -1 указывает на уровень обзора. |
NOT NULL |
INSIDETILES |
ST_MULTIPOINT |
Тип геометрии мультиточка содержит данные о центроидах листа |
MRFC представляет собой структуру пирамиды для невнедренных классов пространственных объектов. Облака точке и вершины линий перегиба для связанных классов пространственных объектов хранятся при условии, что они участвуют в уровне полного разрешения пирамиды (они могут также участвовать и в других уровнях). Данные группируются по листу и уровню слоя пирамиды.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
ID |
INTEGER |
Уникальный идентификатор формы |
NOT NULL |
TILEROW |
INTEGER |
Номер строки листа terrain, которому принадлежат точки пирамиды/вершины |
|
TILECOL |
INTEGER |
Номер столбца листа terrain, которому принадлежат точки пирамиды/вершины |
|
RESOLUTION |
DECIMAL(31,8) |
Указывает на уровень (уровни) слоев пирамиды , в котором используются точки. Так как пирамидальные слои являются кумулятивными, данные точки участвуют в уровнях, разрешение которых равно или превосходит их. Специальный случай включает обзор terrain. Разрешение уровня обзора отмечено значением -1. Точки, имеющие данное значение, участвуют в построении всех пирамидных слоев. |
|
POINTCOUNT |
INTEGER |
Число точек в мультиточке |
NOT NULL |
NEIGHBORDATA |
SMALLINT |
Указывает на то, имеются ли точки внутри границы рамки листа; наружные точки используются для обеспечения полного покрытия площади листа. Значение 0 указывает, что точки находятся внутри листа. Значение -1 указывает, что точки находятся снаружи |
NOT NULL |
SHAPE |
ST_MULTIPOINT |
Тип геометрии мультиточка |
Таблица terrain props используется для хранения свойств отдельного набора данных terrain, характерных для версии. К ним относится число точек и экстент. Информация хранится в таблице BLOB и не доступна для пользователя по всей таблице. Вместо нее для доступа к информации используется ArcObjects API.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
ID |
INTEGER |
Идентификатор объекта для записи |
NOT NULL |
PROPERTIES |
BLOB |
Хранит свойства набора данных, характерные для версии |
Запись также создается в таблице GDB_ITEMS для слежения за набором данных terrain. Значение id в именах таблиц terrain получается из поля OBJECTID таблицы GDB_ITEMS.
Так как наборы данных terrain являются частью набора классов, то они также отслеживаются в таблице GDB_ITEMRELATIONSHIPS. Набор классов UUID соответствует ORIGINID, а класс пространственных объектов UUID является DESTID в таблице GDB_ITEMRELATIONSHIPS. Ниже приведены дополнительные таблицы для набора данных terrain. 2 в примере имен таблиц DTM_* получена из поля OBJECTID таблицы GDB_ITEMS.
Штриховые линии определяют неявные отношения между столбцами.
Terrain в XML-документе
Наборы данных Terrain указаны в XML-документе типом набора данных ersriDTTerrain.
<DatasetType>esriDTTerrain</DatasetType>
Ниже показана часть XML-документа для набора данных terrain napa_sub. Приведенный ниже фрагмент XML-документа описывает определение набора данных, включая источники данных, до точки описания первого класса пространственных объектов в наборе данных.
<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>RJP.WO2557</Version>
<Domains xsi:type="esri:ArrayOfDomain" />
<DatasetDefinitions xsi:type="esri:ArrayOfDataElement">
<DataElement xsi:type="esri:DEFeatureDataset">
<CatalogPath>/V=RJP.WO2557/FD=sde.RJP.napa_sub</CatalogPath>
<Name>sde.RJP.napa_sub</Name>
<Children xsi:type="esri:ArrayOfDataElement">
<DataElement xsi:type="esri:DETerrain">
<Version>2</Version>
<CatalogPath>/V=RJP.WO2557/FD=sde.RJP.napa_sub/TERR=sde.RJP.napa_sub_terrain1</CatalogPath>
<Name>sde.RJP.napa_sub_terrain1</Name>
<DatasetType>esriDTTerrain</DatasetType>
<DSID>2</DSID>
<FeatureDatasetName>sde.RJP.napa_sub</FeatureDatasetName>
<Versioned>false</Versioned>
<CanVersion>false</CanVersion>
<ChildrenExpanded>true</ChildrenExpanded>
<MetadataRetrieved>false</MetadataRetrieved>
<FullPropsRetrieved>true</FullPropsRetrieved>
<PyramidType>0</PyramidType>
<TileSize>6000</TileSize>
<MaxShapeSize>5000</MaxShapeSize>
<MaxOverviewSize>50000</MaxOverviewSize>
<TerrainDataSources xsi:type="esri:ArrayOfTerrainDataSource">
<TerrainDataSource xsi:type="esri:TerrainDataSource">
<Version>1</Version>
<FeatureClassID>875</FeatureClassID>
<FeatureClassName>sde.RJP.DTM_2_DISCONNECT_3</FeatureClassName>
<GroupID>1</GroupID>
<SourceStatus>1</SourceStatus>
<SourceType>1</SourceType>
<SurfaceFeatureType>18</SurfaceFeatureType>
<IsBase>true</IsBase>
<ApplyToOverview>true</ApplyToOverview>
<AutoGeneralize>false</AutoGeneralize>
<ResolutionLowerBound>0</ResolutionLowerBound>
<ResolutionUpperBound>0</ResolutionUpperBound>
<SourceName>napasub_embedded</SourceName>
<HeightField>Shape</HeightField>
<TagValueField />
<ReservedFields xsi:type="esri:ArrayOfString" />
</TerrainDataSource>
<TerrainDataSource xsi:type="esri:TerrainDataSource">
<Version>1</Version>
<FeatureClassID>874</FeatureClassID>
<FeatureClassName>sde.RJP.napa_sub_breaks</FeatureClassName>
<GroupID>2</GroupID>
<SourceStatus>1</SourceStatus>
<SourceType>0</SourceType>
<SurfaceFeatureType>1</SurfaceFeatureType>
<IsBase>true</IsBase>
<ApplyToOverview>false</ApplyToOverview>
<AutoGeneralize>false</AutoGeneralize>
<ResolutionLowerBound>0</ResolutionLowerBound>
<ResolutionUpperBound>2.6</ResolutionUpperBound>
<SourceName />
<HeightField>Shape</HeightField>
<TagValueField />
<ReservedFields xsi:type="esri:ArrayOfString" />
</TerrainDataSource>
<TerrainDataSource xsi:type="esri:TerrainDataSource">
<Version>1</Version>
<FeatureClassID>873</FeatureClassID>
<FeatureClassName>sde.RJP.napa_sub_clip</FeatureClassName>
<GroupID>3</GroupID>
<SourceStatus>1</SourceStatus>
<SourceType>0</SourceType>
<SurfaceFeatureType>10</SurfaceFeatureType>
<IsBase>false</IsBase>
<ApplyToOverview>true</ApplyToOverview>
<AutoGeneralize>false</AutoGeneralize>
<ResolutionLowerBound>0</ResolutionLowerBound>
<ResolutionUpperBound>31</ResolutionUpperBound>
<SourceName />
<HeightField />
<TagValueField />
<ReservedFields xsi:type="esri:ArrayOfString" />
</TerrainDataSource>
</TerrainDataSources>
<TerrainPyramidLevelZTols xsi:type="esri:ArrayOfTerrainPyramidLevelZTol">
<TerrainPyramidLevelZTol xsi:type="esri:TerrainPyramidLevelZTol">
<Version>1</Version>
<PyramidLevelStatus>1</PyramidLevelStatus>
<PointCount>-1</PointCount>
<MaxScale>10000</MaxScale>
<Resolution>5</Resolution>
</TerrainPyramidLevelZTol>
<TerrainPyramidLevelZTol xsi:type="esri:TerrainPyramidLevelZTol">
<Version>1</Version>
<PyramidLevelStatus>1</PyramidLevelStatus>
<PointCount>-1</PointCount>
<MaxScale>20000</MaxScale>
<Resolution>10</Resolution>
</TerrainPyramidLevelZTol>
</TerrainPyramidLevelZTols>
</DataElement>
<DataElement xsi:type="esri:DEFeatureClass">