Jeux de données de MNT d'une géodatabase dans SQL Server
Les jeux de données de MNT sont des surfaces qui représentent un espace en trois dimensions. Ils utilisent des mesures (stockées comme classes d'entités) et des règles pour générer des pyramides de TIN (triangular irregular network) permettant de représenter les altitudes.
Les classes d'entités source peuvent être référencées par le jeu de données de MNT ou être encapsulées dans le jeu de données de MNT.
Pour plus d'explications sur les jeux de données de MNT, reportez-vous aux rubriques correspondantes du livre Présentation des jeux de données de MNT. Vous pouvez commencer par la rubrique Qu'est-ce qu'un jeu de données de MNT ?
MNT dans ArcGIS Desktop
Dans l'arborescence du Catalogue, les jeux de données de MNT sont identiques à tout autre jeu de classes d'entités, mais ils contiennent un MNT. Les MNT sont représentés avec l'icône suivante :
Le nom d'un jeu de données de MNT dans une géodatabase SQL Server contient le nom de la base de données, le nom du propriétaire du localisateur et le nom du localisateur même.
Par exemple, un jeu de données de MNT appelé napa_terrain, dont le propriétaire serait l'utilisateur molly et qui serait enregistré dans la géodatabase gdb serait désigné gdb.MOLLY.Napa_terrain dans l'arborescence du catalogue.
Pour voir les classes d'entités participant au MNT, consultez ses propriétés. Dans l'exemple suivant, vous pouvez voir deux des classes d'entités qui participent au MNT : ud_terrain_breaks, ud_terrain_clip, et une classe d'entités intégrée : napasub.
MNT dans une base de données Microsoft SQL Server
Comme tous les jeux de données, les jeux de données de MNT sont gérés dans la géodatabase dans les mêmes tables que les jeux de classes d'entités ; de plus, des tables spécifiques aux MNT sont créées dans la structure de l'utilisateur ayant créé le jeu de données de MNT. Il s'agit des tables suivantes :
Les tuiles composites sont incomplètes, en termes de couverture de données, autour de leur périmètre. Un vide de mesures complet ou à proximité d'un ou plusieurs angles pourrait exister. Les données des tuiles voisines permettent de définir une surface couvrant l'étendue de ces tuiles. Cette table permet d'identifier les tuiles composites et les tuiles avoisinantes pouvant fournir des données pour les compléter. Elle comprend une entrée par tuile composite.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
ID |
objectid |
Identifiant unique de la forme pointant vers les tuiles voisines |
NOT NULL |
tilenr |
long |
Numéro de la tuile composite Défini par le système de tuiles du MNT. La valeur -1 est réservée à l'enregistrement qui contient les centroïdes des tuiles de périmètre du MNT. |
NOT NULL |
emptytile |
short |
La valeur -1 indique que la tuile est vide de toute mesure. La valeur 0 indique que la tuile a des données mais est incomplète. |
NOT NULL |
othertiles |
BLOB geometry |
Forme multi-points stockant le centroïde de chaque tuile avoisinante pouvant fournir des mesures pour compléter la tuile composite |
NOT NULL |
Les zones à valider sont des tuiles invalidées suite aux modifications apportées aux entités d'une ou de plusieurs classes d'entités participantes. Cette table permet d'assurer un suivi de ces tuiles invalidées et d'enregistrer dans quelles classes d'entités les modifications ont eu lieu. Elle comprend une entrée par classe d'entités ayant été modifiée. Si aucune modification n'a été effectuée, cette table est vide.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
ID |
objectid |
Identifiant unique de la forme |
NOT NULL |
classid |
long |
Identifiant de classe de la classe d'entités à l'origine des mises à jour |
NOT NULL |
tilecount |
long |
Nombre de tuiles à valider suite aux mises à jour apportées à la classe d'entités |
NOT NULL |
dirtyarea |
BLOB geometry |
Forme multi-points comprenant les centroïdes des tuiles à valider suite aux mises à jour apportées à la classe d'entités |
NOT NULL |
Les tables encapsulées permettent de stocker les classes d'entités multi-points encapsulées. Il peut y avoir entre 0 et n tables encapsulées. Elles n'existent que si le MNT a des données encapsulées. Chaque table correspond à une classe d'entités encapsulée. Une table encapsulée sert également comme partie de la structure pyramidale du MNT. Les données encapsulées sont regroupées par tuile et par niveau de pyramide.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
ID |
objectid |
Identifiant unique de la forme |
NOT NULL |
tilerow |
long |
Numéro de ligne de la tuile de MNT à laquelle appartiennent les points encapsulés |
NOT NULL |
tilecol |
long |
Numéro de colonne de la tuile de MNT à laquelle appartiennent les points encapsulés |
NOT NULL |
resolution |
numeric(38,8) |
Indique à quel(s) niveau(x) de pyramide les points sont utilisés Les niveaux de pyramide étant cumulatifs, les points participent aux niveaux de résolution égale ou supérieure à la leur. La vue d'ensemble de MNT est un cas particulier. La résolution du niveau de vue d'ensemble est indiquée par une valeur de -1. Les points attribués à cette valeur participent dans toute la pyramide. |
NOT NULL |
pointcount |
long |
Nombre de points du multi-points |
NOT NULL |
neighbordata |
smallint |
Indique si les points sont à l'intérieur du cadre de la tuile ; les points extérieurs permettent d'assurer une couverture complète de la surface de la tuile. La valeur 0 indique que les points sont à l'intérieur de la tuile. La valeur -1 indique qu'ils sont à l'extérieur. |
NOT NULL |
shape |
BLOB geometry |
Géométrie multi-points encapsulée |
NOT NULL |
La table InsideTiles permet d'enregistrer quelles tuiles sont dans la zone de données ou dans la zone d'interpolation du MNT. Cette donnée est enregistrée par niveau de pyramide car l'étendue peut différer selon le niveau (en fonction de l'utilisation de différentes classes d'entités surfaciques de découpage selon les niveaux, par exemple). Chaque niveau de pyramide correspond à une entrée, y compris la vue d'ensemble et le niveau de résolution maximale.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
ID |
objectid |
Identifiant unique de la forme |
NOT NULL |
ztolerance |
numeric(38,8) |
La valeur -1 pour la résolution du niveau de pyramide A indique la vue d'ensemble. |
NOT NULL |
insidetiles |
BLOB geometry |
Géométrie multi-points qui stocke les centroïdes des tuiles de données |
NOT NULL |
Le MRFC est la structure pyramidale pour les classes d'entités non encapsulées. Les sommets des points cotés et des lignes de fracture des classes d'entités référencées sont stockés ici, à la condition préalable qu'ils participent au niveau de pyramide de résolution maximale (ils peuvent également participer à d'autres niveaux). Les données sont regroupées par tuile et par niveau de pyramide.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
ID |
objectid |
Identifiant unique de la forme |
NOT NULL |
tilerow |
long |
Numéro de ligne de la tuile de MNT à laquelle appartiennent les points encapsulés |
NOT NULL |
tilecol |
long |
Numéro de colonne de la tuile de MNT à laquelle appartiennent les points/sommets de pyramide |
NOT NULL |
resolution |
numeric(38,8) |
Indique à quel(s) niveau(x) de pyramide les points sont utilisés Les niveaux de pyramide étant cumulatifs, les points participent aux niveaux de résolution égale ou supérieure à la leur. La vue d'ensemble de MNT est un cas particulier. La résolution du niveau de vue d'ensemble est indiquée par une valeur de -1. Les points attribués à cette valeur participent dans toute la pyramide. |
NOT NULL |
pointcount |
long |
Nombre de points du multi-points |
NOT NULL |
neighbordata |
smallint |
Indique si les points sont à l'intérieur du cadre de la tuile ; les points extérieurs permettent d'assurer une couverture complète de la surface de la tuile. La valeur 0 indique que les points sont à l'intérieur de la tuile. La valeur -1 indique qu'ils sont à l'extérieur. |
NOT NULL |
shape |
BLOB geometry |
Géométrie multi-points |
NOT NULL |
La table props du MNT permet de stocker des propriétés spécifiques de version pour un jeu de données de MNT individuel. Celles-ci comprennent le nombre de points et l'étendue. Les informations sont stockées dans un objet BLOB et ne sont pas accessibles à l'utilisateur par l'intermédiaire de la table. Utilisez plutôt l'API ArcObjects du MNT pour accéder aux informations.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
ID |
integer |
Identifiant d'objet de l'entrée |
NOT NULL |
properties |
varbinary(max) |
Stocke les propriétés spécifiques de version du jeu de données |
Une entrée est également créée dans la table GDB_ITEMS pour assurer le suivi du jeu de données de MNT. La partie id dans les noms des tables de MNT provient du champ ObjectID de la table GDB_ITEMS.
Les jeux de données de MNT faisant partie d'un jeu de classes d'entités, ils sont également suivis dans la table GDB_ITEMRELATIONSHIPS. Le jeu de classes d'entités UUID correspond à l'identifiant ORIGINID, et la classe d'entités UUID est l'identifiant DESTID dans la table GDB_ITEMRELATIONSHIPS. Voici les tables supplémentaires pour un jeu de données de MNT. La valeur 2 dans les noms des tables d'exemple DTM_* provient du champ ObjectID de la table GDB_ITEMS.
Les lignes pointillées indiquent les relations implicites entre colonnes.
Vous ne pouvez pas utiliser le type de données spatiales de géographie Microsoft avec les jeux de données de MNT car les entités 3D ne sont pas prises en charge.
MNT dans un document XML
Les jeux de données de MNT sont signalés dans un document XML par le type de jeu de données ersriDTTerrain.
<DatasetType>esriDTTerrain</DatasetType>
Voici une partie du document XML correspondant au jeu de données de MNT ud_terrain_ds. L'extrait de document XML ci-dessous couvre la définition du jeu de données, y compris les sources de données, jusqu'au moment de décrire la première classe d'entités du jeu de données.
<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">