SQL Server に格納されたジオデータベースのテレイン データセット
テレイン データセットは 3 次元の地表面を表すサーフェス モデルです。テレイン データセットは(フィーチャクラスとして格納される)計測データとルールを使用して、標高を表すための TIN(Triangular Irregular Network)ピラミッドを生成します。
ソース フィーチャクラスは、テレイン データセットによって参照されるか、テレイン データセットに埋め込まれます。
テレイン データセットの詳細については、「テレイン データセットの概要」のトピックをご参照ください。まず始めに「テレイン データセットとは」というトピックをご参照ください。
ArcGIS Desktop でのテレイン
カタログ ツリーではテレイン データセットは他のフィーチャ データセットと同じように表示されますが、テレインを含んでいます。テレインは次のアイコンで表されます。
SQL Server のジオデータベースにあるテレイン データセットの名前には、データベース名、テレインの所有者の名前、およびテレイン自体の名前を含みます。
たとえば、ジオデータベース「gdb」でユーザ「molly」に所有されているテレイン データセット「napa_terrain」は、カタログ ツリーでは「gdb.MOLLY.Napa_terrain」として表示されます。
テレインにどんなフィーチャクラスが属しているかを確認するには、テレイン プロパティをチェックします。次の例では、テレインに属するフィーチャクラスが 2 つ(napa_sub_breaks と napa_sub_clip)あり、埋め込みフィーチャクラスが 1 つ(napasub)あることがわかります。
Microsoft SQL Server データベースのテレイン
テレイン データセットはフィーチャ データセットと同じテーブルに加えて、テレイン固有のテーブルによってを使用してジオデータベースで管理されます。これらのテーブルはテレイン データセットを作成したユーザのスキーマに作成されます。次に、これらのテーブルを示します。
データ カバレッジの観点からは、コンポジット タイルの境界は不完全です。それらのメジャー値は無効であるか、1 つ以上のコーナーの近傍に含まれている可能性があります。これらのタイル データの範囲をカバーするサーフェスを定義するには、隣接タイルを使用します。DTM_<OBJECTID>_COMPOSITETILES テーブルは、どのタイルがコンポジット タイルであるかと、それらを完成させるデータを提供する隣接タイルを識別します。コンポジット タイルごとにレコードが 1 つ含まれます。
フィールド名 |
フィールド タイプ |
説明 |
NULL ? |
---|---|---|---|
ID |
objectid |
隣接タイルをポイントするシェープの一意な ID |
NOT NULL |
tilenr |
long |
コンポジット タイルの番号 テレインのタイル システムによって定義されます。-1 の値は、テレインの境界タイルの重心を含んでいるレコードのために予約されています。 |
NOT NULL |
emptytile |
short |
-1 の値は、タイルのメジャー値が無効であることを示します。0 の値は、タイルにデータが含まれているが、不完全であることを示します。 |
NOT NULL |
othertiles |
BLOB geometry |
各隣接タイルのタイル重心を含んでいるマルチポイント シェープで、コンポジット タイルを完成させるメジャー値を提供します。 |
NOT NULL |
ダーティ エリアとは構成要素である 1 つ以上のフィーチャクラスのフィーチャを編集した結果として無効になっているタイルです。DTM_<OBJECTID>_DIRTYAREA テーブルは、これらの無効なタイルを管理し、編集が行われたフィーチャクラスを記録するために使用されます。編集が行われたフィーチャクラスごとにレコードが 1 つ使用されます。編集が行われていない場合、このテーブルは空です。
フィールド名 |
フィールド タイプ |
説明 |
NULL ? |
---|---|---|---|
ID |
objectid |
シェープの一意な ID |
NOT NULL |
classid |
long |
編集のソースであるフィーチャクラスのクラス ID |
NOT NULL |
tilecount |
long |
フィーチャクラスの編集の結果として発生したダーティ タイルの数 |
NOT NULL |
dirtyarea |
BLOB geometry |
フィーチャクラスの編集の結果として無効になったタイル重心を含んでいるマルチポイント シェープ |
NOT NULL |
EMBED テーブルは埋め込みマルチポイント フィーチャクラスを格納するために使用されます。0..n のテーブルが存在します。それらのテーブルが存在するかどうかは、テレインにデータが埋め込まれているかどうかによります。埋め込みフィーチャクラスにつきテーブルが 1 つ使用されます。このテーブルには、テレインのピラミッド構造の一部として使用するという目的もあります。埋め込みデータはタイル レベルとピラミッド レベルでグループ化されます。
フィールド名 |
フィールド タイプ |
説明 |
NULL ? |
---|---|---|---|
ID |
objectid |
シェープの一意な ID |
NOT NULL |
tilerow |
long |
埋め込みポイントが属しているテレイン タイルの行番号 |
NOT NULL |
tilecol |
long |
埋め込みポイントが属しているテレイン タイルの列番号 |
NOT NULL |
resolution |
numeric(38,8) |
ポイントが使用されるピラミッド レベルを示します。 ピラミッドレベルは累積されるため、それらのレベルに属するポイントの解像度は同じであるか、それら自体よりも大きくなります。テレインの概観図には特殊なケースがあります。概観図レベルの解像度が -1 の値で示されるケースです。この値が割り当てられたポイントはピラミッド全体に属します。 |
NOT NULL |
pointcount |
long |
マルチポイントのポイントの数 |
NOT NULL |
neighbordata |
smallint |
ポイントがタイルの図郭線境界の内側にあるかどうかを示します。それらの外側はタイル エリアのカバレッジを完成させるために使用されます。0 の値はポイントがタイルの内側にあることを示し、-1 の値は外側にあることを示します。 |
NOT NULL |
shape |
BLOB geometry |
埋め込みマルチポイントのジオメトリ |
NOT NULL |
INSIDETILES テーブルはテレインのデータ エリアまたは内挿ゾーンの内側にあるテレイン タイルを記録するために使用されます。これはピラミッド レベルごとに記録されます。ピラミッド レベルによって範囲が異なる可能性があるためです(たとえば、ピラミッド レベルごとに異なるクリップ ポリゴン フィーチャクラスが使用される場合など)。ピラミッド レベルごとにレコードが 1 つ使用されます。これには、概観図レベルとフル解像度レベルの両方が含まれます。
フィールド名 |
フィールド タイプ |
説明 |
NULL ? |
---|---|---|---|
ID |
objectid |
シェープの一意な ID |
NOT NULL |
ztolerance |
numeric(38,8) |
ピラミッド レベルの座標精度。-1 という値は概観図レベルを示します。 |
NOT NULL |
insidetiles |
BLOB geometry |
データ タイルの重心を格納するマルチポイント ジオメトリ |
NOT NULL |
MRFC テーブルは非埋め込みフィーチャクラスのピラミッド構造です。参照先のフィーチャクラスの標高点とブレークライン頂点は、フル解像度のピラミッド レベルに属する前の状態で格納されます。データはタイル レベルとピラミッド レベルでグループ化されます。
フィールド名 |
フィールド タイプ |
説明 |
NULL ? |
---|---|---|---|
ID |
objectid |
シェープの一意な ID |
NOT NULL |
tilerow |
long |
埋め込みポイントが属しているテレイン タイルの行番号 |
NOT NULL |
tilecol |
long |
ピラミッド ポイント/頂点が属しているテレイン タイルの列番号 |
NOT NULL |
resolution |
numeric(38,8) |
ポイントが使用されるピラミッド レベルを示します。 ピラミッドレベルは累積されるため、それらのレベルに属するポイントの解像度は同じであるか、それら自体よりも大きくなります。テレインの概観図には特殊なケースがあります。概観図レベルの解像度が -1 の値で示されるケースです。この値が割り当てられたポイントはピラミッド全体に属します。 |
NOT NULL |
pointcount |
long |
マルチポイントのポイントの数 |
NOT NULL |
neighbordata |
smallint |
ポイントがタイルの図郭線境界の内側にあるかどうかを示します。それらの外側はタイル エリアのカバレッジを完成させるために使用されます。0 の値はポイントがタイルの内側にあることを示し、-1 の値は外側にあることを示します。 |
NOT NULL |
shape |
BLOB geometry |
マルチポイント ジオメトリ |
NOT NULL |
PROPS テーブルは個々のテレイン データセットのバージョン固有のプロパティを保持するために使用されます。これにはポイントの数と範囲が含まれます。この情報は BLOB に格納され、ユーザがテーブルを通じてアクセスすることはできません。代わりに、テレインの ArcObjects API を使用して情報にアクセスします。
フィールド名 |
フィールド タイプ |
説明 |
NULL ? |
---|---|---|---|
ID |
integer |
レコードのオブジェクト ID |
NOT NULL |
properties |
varbinary(max) |
バージョン固有のデータセット プロパティを格納します |
GDB_ITEMS テーブルにもテレイン データセットを管理するためのレコードが作成されます。テレイン テーブルの名前に含まれている <ID> は、GDB_ITEMS テーブルの ObjectID フィールドからきています。
テレイン データセットはフィーチャ データセットの一部であるため、GDB_ITEMRELATIONSHIPS テーブルでも追跡されます。フィーチャ データセットの UUID は ORIGINID に相当し、フィーチャクラスの UUID は GDB_ITEMRELATIONSHIPS テーブルの DESTID です。次に、テレイン データセットの追加テーブルを示します。例にあげた DTM_* テーブルの名前に含まれている「2」は、GDB_ITEMS テーブルの ObjectID フィールドからきています。
破線はテーブル間の暗黙的なリレーションシップを示しています。
Microsoft の geography 空間データ型は 3D フィーチャをサポートしていないため、テレイン データセットに使用することはできません。
XML ドキュメントのテレイン
テレイン データセットは、XML ドキュメントにおいて ersriDTTerrain タイプで定義されます。
<DatasetType>esriDTTerrain</DatasetType>
次に、napa_sub テレイン データセットの XML ドキュメントの一部を示します。この XML ドキュメントは、データ ソースを含めたデータセットの定義が記載された、データセットの最初のフィーチャクラスまでの部分です。
<esri:Workspace xmlns:esri="http://www.esri.com/schemas/ArcGIS/10" 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=gdb.MOLLY.napa_sub</CatalogPath> <Name>gdb.MOLLY.napa_sub</Name> <Children xsi:type="esri:ArrayOfDataElement"> <DataElement xsi:type="esri:DETerrain"> <Version>2</Version> <CatalogPath>/V=RJP.WO2557/FD=gdb.MOLLY.napa_sub/TERR=gdb.MOLLY.napa_sub_terrain1</CatalogPath> <Name>gdb.MOLLY.napa_sub_terrain1</Name> <DatasetType>esriDTTerrain</DatasetType> <DSID>2</DSID> <FeatureDatasetName>gdb.MOLLY.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>gdb.MOLLY.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>gdb.MOLLY.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>gdb.MOLLY.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">