PostgreSQL に格納されたジオデータベースのテレイン データセット
テレイン データセットは 3 次元の地表面を表すサーフェス モデルです。テレイン データセットは(フィーチャクラスとして格納される)計測データとルールを使用して、標高を表すための TIN(Triangular Irregular Network)ピラミッドを生成します。
ソース フィーチャクラスは、テレイン データセットによって参照されるか、テレイン データセットに埋め込まれます。
テレイン データセットの詳細については、「テレイン データセットの概要」のトピックをご参照ください。まず始めに「テレイン データセットとは」というトピックをご参照ください。
ArcGIS Desktop のテレイン
カタログ ツリーではテレイン データセットは他のフィーチャ データセットと同じように表示されますが、テレインを含んでいます。テレインは次のアイコンで表されます。
PostgreSQL のジオデータベースにあるテレイン データセットの名前には、データベース名、テレインの所有者の名前、およびテレイン自体の名前を含みます。
たとえば、ジオデータベース m8db にあるテレイン データセット topography_terrain を sasha というユーザが所有している場合、カタログ ツリーには m8db.sasha.topograhy_terrain と表示されます。
テレインに属するフィーチャクラス(topo_break_lines、topo_clip_poly、topo_mass_points、および topo_water_poly)を確認できます。テレイン データセットにフィーチャクラスが埋め込まれているかどうかを確認するには、テレインのプロパティを調べます。テレインを右クリックして [データ ソース] タブをクリックします。これはテレインの作成に使用されたすべてのフィーチャクラスを表示します。この例では、このテレインの作成に埋め込みフィーチャクラスは使用されていません。埋め込みフィーチャクラスがある場合は、カタログ ツリーのフィーチャ データセットには表示されていない追加のフィーチャクラスが表示され、[テレイン プロパティ] ダイアログ ボックスの [エンベデッド] 列に「Yes」という値が表示されます。
PostgreSQL データベースのテレイン
テレイン データセットはフィーチャ データセットと同じテーブルに加えて、テレイン固有のテーブルによってを使用してジオデータベースで管理されます。これらのテーブルはテレイン データセットを作成したユーザのスキーマに作成されます。次に、これらのテーブルを示します。
データ カバレッジの観点からは、コンポジット タイルの境界は不完全です。それらのメジャー値は無効であるか、1 つ以上のコーナーの近傍に含まれている可能性があります。これらのタイル データの範囲をカバーするサーフェスを定義するには、隣接タイルを使用します。DTM_<OBJECTID>_COMPOSITETILES テーブルは、どのタイルがコンポジット タイルであるかと、それらを完成させるデータを提供する隣接タイルを識別します。コンポジット タイルごとにレコードが 1 つ含まれます。
フィールド名 |
フィールド タイプ |
説明 |
NULL? |
---|---|---|---|
id |
integer |
隣接タイルをポイントするシェープの一意な ID |
NOT NULL |
tilenr |
integer |
コンポジット タイルの番号 テレインのタイル システムによって定義されます。-1 の値は、テレインの境界タイルの重心を含んでいるレコードのために予約されています。 |
NOT NULL |
emptytile |
smallint |
-1 の値は、タイルのメジャー値が無効であることを示します。0 の値は、タイルにデータが含まれているが、不完全であることを示します。 |
NOT NULL |
othertiles |
st_geometry |
各隣接タイルのタイル重心を含んでいるマルチポイント シェープで、コンポジット タイルを完成させるメジャー値を提供します。 |
ダーティ エリアとは構成要素である 1 つ以上のフィーチャクラスのフィーチャを編集した結果として無効になっているタイルです。DTM_<OBJECTID>_DIRTYAREA テーブルは、これらの無効なタイルを管理し、編集が行われたフィーチャクラスを記録するために使用されます。編集が行われたフィーチャクラスごとにレコードが 1 つ使用されます。編集が行われていない場合、このテーブルは空です。
フィールド名 |
フィールド タイプ |
説明 |
NULL? |
---|---|---|---|
id |
integer |
シェープの一意な ID |
NOT NULL |
classid |
integer |
編集のソースであるフィーチャクラスのクラス ID |
NOT NULL |
tilecount |
integer |
フィーチャクラスの編集の結果として発生したダーティ タイルの数 |
NOT NULL |
dirtyarea |
st_geometry |
フィーチャクラスの編集の結果として無効になったタイル重心を含んでいるマルチポイント シェープ |
NOT NULL |
EMBED テーブルは埋め込みマルチポイント フィーチャクラスを格納するために使用されます。0..n のテーブルが存在します。それらのテーブルが存在するかどうかは、テレインにデータが埋め込まれているかどうかによります。埋め込みフィーチャクラスにつきテーブルが 1 つ使用されます。このテーブルには、テレインのピラミッド構造の一部として使用するという目的もあります。埋め込みデータはタイル レベルとピラミッド レベルでグループ化されます。
フィールド名 |
フィールド タイプ |
説明 |
NULL? |
---|---|---|---|
id |
integer |
シェープの一意な ID |
NOT NULL |
tilerow |
integer |
埋め込みポイントが属しているテレイン タイルの行番号 |
|
tilecol |
integer |
埋め込みポイントが属しているテレイン タイルの列番号 |
|
resolution |
numeric(38,8) |
ポイントが使用されるピラミッド レベルを示します。 ピラミッドレベルは累積されるため、それらのレベルに属するポイントの解像度は同じであるか、それら自体よりも大きくなります。テレインの概観図には特殊なケースがあります。概観図レベルの解像度が -1 の値で示されるケースです。この値が割り当てられたポイントはピラミッド全体に属します。 |
|
pointcount |
integer |
マルチポイントのポイントの数 |
NOT NULL |
neighbordata |
smallint |
ポイントがタイルの図郭線境界の内側にあるかどうかを示します。それらの外側はタイル エリアのカバレッジを完成させるために使用されます。0 の値はポイントがタイルの内側にあることを示し、-1 の値は外側にあることを示します。 |
NOT NULL |
shape |
st_geometry |
埋め込みマルチポイントのジオメトリ |
INSIDETILES テーブルはテレインのデータ エリアまたは内挿ゾーンの内側にあるテレイン タイルを記録するために使用されます。これはピラミッド レベルごとに記録されます。ピラミッド レベルによって範囲が異なる可能性があるためです(たとえば、ピラミッド レベルごとに異なるクリップ ポリゴン フィーチャクラスが使用される場合など)。ピラミッド レベルごとにレコードが 1 つ使用されます。これには、概観図レベルとフル解像度レベルの両方が含まれます。
フィールド名 |
フィールド タイプ |
説明 |
NULL? |
---|---|---|---|
id |
integer |
シェープの一意な ID |
NOT NULL |
ztolerance |
numeric(38,8) |
ピラミッド レベルの座標精度。-1 という値は概観図レベルを示します。 |
NOT NULL |
insidetiles |
st_geometry |
データ タイルの重心を格納するマルチポイント ジオメトリ |
MRFC テーブルは非埋め込みフィーチャクラスのピラミッド構造です。参照先のフィーチャクラスの標高点とブレークライン頂点は、フル解像度のピラミッド レベルに属する前の状態で格納されます。データはタイル レベルとピラミッド レベルでグループ化されます。
フィールド名 |
フィールド タイプ |
説明 |
NULL? |
---|---|---|---|
id |
integer |
シェープの一意な ID |
NOT NULL |
tilerow |
integer |
埋め込みポイントが属しているテレイン タイルの行番号 |
|
tilecol |
integer |
ピラミッド ポイント/頂点が属しているテレイン タイルの列番号 |
|
resolution |
numeric(38,8) |
ポイントが使用されるピラミッド レベルを示します。 ピラミッドレベルは累積されるため、それらのレベルに属するポイントの解像度は同じであるか、それら自体よりも大きくなります。テレインの概観図には特殊なケースがあります。概観図レベルの解像度が -1 の値で示されるケースです。この値が割り当てられたポイントはピラミッド全体に属します。 |
|
pointcount |
integer |
マルチポイントのポイントの数 |
NOT NULL |
neighbordata |
smallint |
ポイントがタイルの図郭線境界の内側にあるかどうかを示します。それらの外側はタイル エリアのカバレッジを完成させるために使用されます。0 の値はポイントがタイルの内側にあることを示し、-1 の値は外側にあることを示します。 |
NOT NULL |
shape |
st_geometry |
マルチポイント ジオメトリ |
PROPS テーブルは個々のテレイン データセットのバージョン固有のプロパティを保持するために使用されます。これにはポイントの数と範囲が含まれます。この情報は BLOB に格納され、ユーザがテーブルを通じてアクセスすることはできません。代わりに、テレインの ArcObjects API を使用して情報にアクセスします。
フィールド名 |
フィールド タイプ |
説明 |
NULL? |
---|---|---|---|
id |
integer |
レコードのオブジェクト ID |
NOT NULL |
properties |
bytea |
バージョン固有のデータセット プロパティを格納します |
gdb_items テーブルにもテレイン データセットを管理するためのレコードが作成されます。テレイン テーブルの名前に含まれている <ID> は、gdb_items テーブルの objectid フィールドからきています。
テレイン データセットはフィーチャ データセットの一部であるため、gdb_itemrelationships テーブルでも追跡されます。フィーチャ データセットの uuid は col_originid に対応し、フィーチャクラスの uuid は gdb_itemrelationships テーブルの destid です。次に、テレイン データセットの追加テーブルを示します。例にあげた DTM_* テーブルの名前に含まれている「1」は、gdb_items テーブルの objectid フィールドからきています。
以下の例では、データセットに埋め込みフィーチャクラスがなかったため、対応する dtm_1_embed テーブルは作成されませんでした。
破線はテーブル間の暗黙的なリレーションシップを示しています。
テレイン データセットの使用は、PostGIS ジオメトリ格納を使用するときに限られています。
XML ワークスペース ドキュメントのテレイン
テレイン データセットは、XML ドキュメントにおいて ersriDTTerrain タイプで定義されます。
<DatasetType>esriDTTerrain</DatasetType>
次に、テレイン データセットについての 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>sde.DEFAULT</Version> <Domains xsi:type="esri:ArrayOfDomain" /> <DatasetDefinitions xsi:type="esri:ArrayOfDataElement"> <DataElement xsi:type="esri:DEFeatureDataset"> <CatalogPath>/V=sde.DEFAULT/FD=m8db.sasha.topography</CatalogPath> <Name>m8db.sasha.topography</Name> <Children xsi:type="esri:ArrayOfDataElement"> <DataElement xsi:type="esri:DETerrain"> <Version>1</Version> <CatalogPath>/V=sde.DEFAULT/FD=m8db.sasha.topography/TERR=m8db.sasha.topography_terrain</CatalogPath> <Name>m8db.sasha.topography_terrain</Name> <DatasetType>esriDTTerrain</DatasetType> <DSID>1</DSID> <FeatureDatasetName>m8db.sasha.topography</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>874</FeatureClassID> <FeatureClassName>m8db.sasha.topo_break_lines</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>m8db.sasha.topo_clip_poly</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> <TerrainDataSource xsi:type="esri:TerrainDataSource"> <Version>1</Version> <FeatureClassID>873</FeatureClassID> <FeatureClassName>m8db.sasha.topo_mass_points</FeatureClassName> <GroupID>4</GroupID> <SourceStatus>1</SourceStatus> <SourceType>0</SourceType> <SurfaceFeatureType>2</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> <TerrainDataSource xsi:type="esri:TerrainDataSource"> <Version>1</Version> <FeatureClassID>873</FeatureClassID> <FeatureClassName>m8db.sasha.topo_water_poly</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">