Terrain-Datasets in einer Geodatabase in PostgreSQL
Terrain-Datasets sind Oberflächen, die dreidimensionalen Raum darstellen. Sie nutzen Messwerte (als Feature-Classes gespeichert) und Regeln, um Triangular Irregular Network (TIN)-Pyramiden zur Repräsentation der Höhe zu generieren.
Die Quell-Feature-Classes können vom Terrain-Dataset referenziert werden oder in das Terrain-Dataset eingebettet sein.
Eine Erklärung zu Terrain-Datasets finden Sie unter "Terrain-Datasets". Beginnen Sie mit dem Thema Was ist ein Terrain-Dataset?
Terrains in ArcGIS for Desktop
Im Kataloginhaltsverzeichnis sehen Terrain-Datasets wie beliebige andere Feature-Datasets aus, sie enthalten jedoch ein Terrain. Terrains werden mit folgendem Symbol dargestellt:
Der Name eines Terrain-Datasets in einer Geodatabase im PostgreSQL enthält den Datenbanknamen, den Namen des Locator-Besitzers und den Namen des Locators selbst.
Beispiel: Das Terrain-Dataset "topography_terrain" in einer Geodatabase mit dem Namen "m8db", das Benutzer "sasha" gehört, wird als "m8db.sasha.topograhy_terrain" im Kataloginhaltsverzeichnis aufgelistet.
Sie können die Feature-Classes sehen, die am Terrain beteiligt sind: "topo_break_lines", "topo_clip_poly", "topo_mass_points" und "topo_water_poly". Um herauszufinden, ob es eingebettete Feature-Classes im Terrain-Dataset gibt, überprüfen Sie die Terraineigenschaften. Klicken Sie mit der rechten Maustaste auf das Terrain und anschließend auf die Registerkarte "Datenquellen". Diese listet alle Feature-Classes auf, die verwendet wurden, um das Terrain zu erstellen. In diesem Beispiel wurden bei der Erstellung des Terrains keine eingebetteten Feature-Classes verwendet. Wenn es welche gegeben hätte, wäre eine zusätzliche Feature-Class, die im Feature-Dataset im Kataloginhaltsverzeichnis nicht sichtbar war, in der Spalte "Eingebettet" des Dialogfeldes "Terraineigenschaften" aufgeführt gewesen und hätte den Wert "Ja" aufgewiesen.
Terrains in einer PostgreSQL-Datenbank
Terrain-Datasets werden in der Geodatabase in den gleichen Tabellen wie Feature-Datasets verwaltet. Zusätzlich werden terrainspezifische Tabellen im Schema des Benutzers erstellt, der das Terrain-Dataset erstellt hat. Diese Tabellen lauten wie folgt:
Zusammengesetzte Kacheln sind hinsichtlich der Daten-Coverage um ihren Umfang unvollständig. Sie können keine Messwerte aufweisen oder sich in der Nähe einer oder mehrerer Ecken befinden. Um eine Oberfläche zu definieren, die die Ausdehnung dieser Kacheln abdeckt, werden Daten von angrenzenden Kacheln verwendet. Diese Tabelle wird verwendet, um zu identifizieren, bei welchen Kacheln es sich um zusammengesetzte Kacheln handelt, und welche angrenzenden Kacheln Daten für die zusammengesetzte Kachel bereitstellen. Pro zusammengesetzter Kachel wird ein Datensatz verwendet.
Feldname |
Feldtyp |
Beschreibung |
NULL? |
---|---|---|---|
id |
integer |
Die eindeutige Kennung des Shapes, das auf Nachbarkacheln zeigt |
NOT NULL |
tilenr |
integer |
Die Nummer der zusammengesetzten Kachel Diese wird vom Kachelsystem des Terrains definiert. Der Wert -1 ist für einen Datensatz reserviert, der die Schwerpunkte der Umfangskacheln des Terrains enthält. |
NOT NULL |
emptytile |
smallint |
Der Wert -1 gibt an, dass die Kachel keine Messwerte aufweist. Der Wert 0 gibt an, dass die Kachel einige Daten aufweist, aber unvollständig ist. |
NOT NULL |
othertiles |
st_geometry |
Multipoint-Shape, das den Kachelschwerpunkt jeder angrenzenden Kachel speichert, die Messwerte für die zusammengesetzte Kachel bereitstellt |
Nicht überprüfte Bereiche sind Kacheln, die als Ergebnis der Änderungen an Features in einer oder mehreren beteiligten Feature-Classes nicht mehr gültig sind. Diese Tabelle wird verwendet, um diese ungültigen Kacheln zu protokollieren und aufzuzeichnen, in welchen Feature-Classes Änderungen vorgenommen wurden. Pro Feature-Class mit Änderungen wird ein Datensatz verwendet. Die Tabelle ist leer, wenn keine Änderungen vorgenommen wurden.
Feldname |
Feldtyp |
Beschreibung |
NULL? |
---|---|---|---|
id |
integer |
Die eindeutige Kennung für das Shape |
NOT NULL |
classid |
integer |
Die Klassenkennung der Feature-Class, die Quelle der Änderungen ist |
NOT NULL |
tilecount |
integer |
Die Anzahl der ungültigen Kacheln durch Änderungen an der Feature-Class |
NOT NULL |
dirtyarea |
st_geometry |
Multipoint-Shape mit den Kachelschwerpunkten, die durch Änderungen an der Feature-Class ungültig sind |
NOT NULL |
Embed-Tabellen werden verwendet, um eingebettete Multipoint-Feature-Classes zu speichern. Es sind möglicherweise 0..n Embed-Tabellen vorhanden. Dies hängt davon ab, ob das Terrain eingebettete Daten aufweist. Pro eingebetteter Feature-Class wird eine Tabelle verwendet. Eine Embed-Tabelle ist Teil der Pyramidenstruktur des Terrains. Die eingebetteten Daten werden nach Kachel und Pyramidenebene gruppiert.
Feldname |
Feldtyp |
Beschreibung |
NULL? |
---|---|---|---|
id |
integer |
Die eindeutige Kennung für das Shape |
NOT NULL |
tilerow |
integer |
Die Zeilennummer der Terrainkachel, zu der die eingebetteten Punkte gehören |
|
tilecol |
integer |
Die Spaltennummer der Terrainkachel, zu der die eingebetteten Punkte gehören |
|
resolution |
numeric(38,8) |
Gibt an, in welchen Pyramidenebenen die Punkte verwendet werden Da Pyramidenebenen kumuliert sind, ist die Auflösung von Punkten für Ebenen gleich oder höher. Ein besonderer Fall ist die Terrainübersicht. Die Auflösung der Übersichtsebene wird mit dem Wert -1 angegeben. Diesem Wert zugewiesene Punkte gelten für die gesamte Pyramide. |
|
pointcount |
integer |
Die Anzahl an Punkten im Multipoint |
NOT NULL |
neighbordata |
smallint |
Gibt an, ob sich innerhalb der Kachelkartenrahmengrenze Punkte befinden. Die Punkte außerhalb der Grenze werden verwendet, um das vollständige Coverage der Kachelfläche sicherzustellen. Der Wert 0 gibt an, dass sich die Punkte innerhalb der Kachel befinden. -1 gibt an, dass sie sich außerhalb der Kachel befinden. |
NOT NULL |
shape |
st_geometry |
Eingebettete Multipoint-Geometrie |
Die Tabelle "InsideTiles" wird verwendet, um aufzuzeichnen, welche Terrainkacheln sich innerhalb der Datenfläche, oder Interpolationszone, des Terrains befinden. Dies wird pro Pyramidenebene aufgezeichnet, da sich die Ausdehnung für die Ebenen unterscheiden kann (z. B. bei der Verwendung unterschiedlicher Clip-Polygon-Feature-Classes in unterschiedlichen Pyramidenebenen). Pro Pyramidenebene wird ein Datensatz verwendet. Dies schließt Übersichtsebenen und Ebenen mit voller Auflösung ein.
Feldname |
Feldtyp |
Beschreibung |
NULL? |
---|---|---|---|
id |
integer |
Die eindeutige Kennung für das Shape |
NOT NULL |
ztolerance |
numeric(38,8) |
Die Auflösung der Pyramidenebene A mit dem Wert -1 gibt die Übersichtsebene an. |
NOT NULL |
insidetiles |
st_geometry |
Multipoint-Geometrie, die die Datenkachel-Schwerpunkte speichert |
MRFC ist die Pyramidenstruktur für nicht eingebettete Feature-Classes. Massenpunkte und Bruchkantenstützpunkte für referenzierte Feature-Classes werden hier unter der Vorbedingung gespeichert, dass sie Teil einer Pyramidenebene mit voller Auflösung sind. (Sie können auch Teil anderer Ebenen sein.) Die Daten werden nach Kachel und Pyramidenebene gruppiert.
Feldname |
Feldtyp |
Beschreibung |
NULL? |
---|---|---|---|
id |
integer |
Die eindeutige Kennung für das Shape |
NOT NULL |
tilerow |
integer |
Die Zeilennummer der Terrainkachel, zu der die eingebetteten Punkte gehören |
|
tilecol |
integer |
Die Spaltennummer der Terrainkachel, zu der die Pyramidenpunkte/Stützpunkte gehören |
|
resolution |
numeric(38,8) |
Gibt an, in welchen Pyramidenebenen die Punkte verwendet werden Da Pyramidenebenen kumuliert sind, ist die Auflösung von Punkten für Ebenen gleich oder höher. Ein besonderer Fall ist die Terrainübersicht. Die Auflösung der Übersichtsebene wird mit dem Wert -1 angegeben. Diesem Wert zugewiesene Punkte gelten für die gesamte Pyramide. |
|
pointcount |
integer |
Die Anzahl an Punkten im Multipoint |
NOT NULL |
neighbordata |
smallint |
Gibt an, ob sich innerhalb der Kachelkartenrahmengrenze Punkte befinden. Die Punkte außerhalb der Grenze werden verwendet, um das vollständige Coverage der Kachelfläche sicherzustellen. Der Wert 0 gibt an, dass sich die Punkte innerhalb der Kachel befinden. -1 gibt an, dass sie sich außerhalb der Kachel befinden. |
NOT NULL |
shape |
st_geometry |
Multipoint-Geometrie |
Die Tabelle "terrain props" enthält versionsspezifische Eigenschaften für ein individuelles Terrain-Dataset. Diese schließen Punktanzahl und Ausdehnung ein. Die Informationen werden in einem BLOB gespeichert. Benutzer können in der Tabelle nicht auf sie zugreifen. Verwenden Sie stattdessen die ArcObjects-API des Terrains, um auf die Informationen zuzugreifen.
Feldname |
Feldtyp |
Beschreibung |
NULL? |
---|---|---|---|
id |
integer |
Objekt-ID für den Datensatz |
NOT NULL |
properties |
bytea |
Speichert versionsspezifische Dataset-Eigenschaften |
Ein Datensatz wird auch in der Tabelle gdb_items erstellt, um das Terrain-Dataset zu protokollieren. Die ID im Namen der Terrain-Tabellen stammt aus dem Feld objectid der Tabelle gdb_items.
Da Terrain-Datasets Teil eines Feature-Datasets sind, werden sie auch in der Tabelle gdb_itemrelationships verfolgt. Das Feature-Dataset uuid entspricht col_originalid, und die Feature-Class uuid ist destid in der Tabelle gdb_itemrelationships. Die weiteren Tabellen für ein Terrain-Dataset werden hier angezeigt. Die 1 in den DTM_*-Tabellennamen stammt aus dem Feld objectid in der Tabelle gdb_items.
Da es keine eingebetteten Feature-Classes im Dataset gab, wurde keine entsprechende Tabelle "dtm_1_embed" erstellt.
Die gestrichelten Linien geben implizite Beziehungen zwischen Spalten an.
Die Verwendung von Terrain-Datasets ist bei Nutzung der PostGIS-Geometriespeicherung beschränkt.
Terrains in einem XML-Workspace-Dokument
Terrain-Datasets werden in einem XML-Dokument durch den Dataset-Typ "ersriDTTerrain" gekennzeichnet.
<DatasetType>esriDTTerrain</DatasetType>
Nachfolgend finden Sie einen Teil des XML-Dokuments für ein Terrain-Dataset. Dieser Auszug des XML-Dokuments enthält die Definition des Datasets, einschließlich der Datenquellen, bis zur Beschreibung der ersten Feature-Class im Dataset.
<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">