Jeux de données réseau dans PostgreSQL
Les jeux de données réseau sont des ensembles de classes d'entités possédant une relation de connectivité. Les jeux de données réseau sont créés à partir de trois types de sources : des sources d'entités tronçons (axes de rue, par exemple), des sources d'entités jonctions (classes d'entités points contenant des passages à niveau de voie ferrée, par exemple) et des sources d'entités tournants. Ils permettent de modéliser les transports. Pour utiliser les jeux de données réseau, vous devez avoir installé l'Extension ArcGIS Network Analyst.
Jeux de données réseau dans ArcGIS for Desktop
Dans l'arborescence du catalogue, les jeux de données d'entité contenant des jeux de données réseau dans PostgreSQL gardent la même apparence tant que vous n'avez pas développé le jeu de données. Une fois le jeu de données développé, vous voyez apparaître le jeu de données réseau, qui est représenté par l'icône suivante :
Le nom du réseau, dans une géodatabase PostgreSQL, contient le nom de la base de données, le nom du propriétaire du réseau et le nom du réseau même.
Par exemple, un jeu de données réseau road_network_nd ayant pour propriétaire hbear dans la géodatabase m16 serait répertorié dans l'arborescence du catalogue sous la forme : m16.hbear.road_network_nd.
Lorsque vous créez un jeu de données réseau, une classe d'entités des jonctions du système est également créée. Cette classe d'entités présente le nom du jeu de données réseau, suivi de _Junctions.
Jeux de données réseau dans une base de données PostgreSQL
Les jeux de données réseau font l'objet d'un suivi dans la table gdb_items. La table gdb_itemtypes stocke une valeur qui indique que l'objet est un jeu de données réseau. La table gdb_itemrelationships stocke des informations sur la relation entre le réseau et le jeu de données d'entité dans lequel il se trouve.
Des tables sont également créées dans la structure de l'utilisateur qui possède le jeu de données réseau. Les voici :
- n_<id>_desc : la table n_<id>_desc décrit les éléments d'un réseau. Il s'agit d'une table normalisée qui compte une ligne par jonction, par tronçon et par tournant d'un réseau géométrique.
- n_<id>_props : la table n_<id>_props contient un résumé descriptif des propriétés d'un réseau, telles que le nombre d'éléments et la valeur EID maximale.
- n_<id>_topology : cette table stocke toutes les pages BLOB de topologie.
- n_<id>_edgeweight : cette table stocke toutes les pages BLOB des valeurs de pondération des tronçons.
- n_<id>_junctionweight : cette table stocke toutes les pages BLOB des valeurs de pondération des jonctions.
- n_<id>_turnweight : cette table stocke toutes les pages BLOB des valeurs de pondération des tournants.
- nd_<itemid>_dirtyareas : la table nd_<itemid>_dirtyareas stocke les informations relatives aux entités spatiales du réseau qui ont été modifiées.
- nd_<itemid>_dirtyobjects : la table nd_<itemid>_dirtyobjects stocke les informations relatives aux objets relationnels modifiés dans le jeu de données réseau.
La partie ID dans les noms des six premières tables correspond à l'identifiant réseau logique. La valeur itemID dans les deux dernières tables correspond au champ objectid de la table gdb_items.
Les structures des tables sont les suivantes :
La table n_<id>_desc contient des éléments pour chaque jonction, tronçon et tournant du jeu de données réseau.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
oid |
integer |
Identifiant unique d'un élément d'un réseau |
NOT NULL |
userclassid |
integer |
Identifiant de la classe d'entités à laquelle appartient l'élément |
NOT NULL |
userid |
integer |
ObjectID de l'entité |
NOT NULL |
usersubid |
integer |
Identifiant d'un élément dans une entité ; concerne uniquement les tronçons complexes |
NOT NULL |
elementtype |
smallint |
Code indiquant le type d'élément de réseau concerné |
NOT NULL |
eid |
integer |
Identifiant d'élément unique de l'élément de réseau ; l'identifiant d'élément n'est unique que pour le type de l'élément de réseau |
NOT NULL |
La table n_<id>_props contient un résumé descriptif des propriétés d'un réseau, telles que le nombre d'éléments et les valeurs EID maximales.
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
propertyid |
integer |
The unique identifier of the network property |
NOT NULL |
propertyname |
varchar(32) |
The name of the property |
NOT NULL |
propertyvalue |
integer |
The value of the property |
NOT NULL |
La table nd_<itemid>_dirtyareas suit les modifications des entités spatiales dans le jeu de données réseau.
Nom du champ | Type de champ | Description | Nul ? |
---|---|---|---|
objectid | integer | Identifiant unique de l'enregistrement | NOT NULL |
isretired | integer | Indique si cette entité sert encore à suivre la zone à valider d'un jeu de données réseau | NOT NULL |
dirtyarea | st_geometry geometry | Géométrie de polygone de la zone à valider |
La table nd_<itemid>_dirtyobjects suit des objets relationnels modifiés dans le jeu de données réseau, comme les tournants et les enregistrements de l'historique des données de trafic.
Nom du champ | Type de champ | Description | Nul ? |
---|---|---|---|
objectid | integer | Identifiant unique de l'enregistrement | NOT NULL |
classid | integer | Valeur objectID de l'élément d'objet à valider dans la table gdb_items | NOT NULL |
oid | integer | Identifiant d'objet de l'objet à valider | NOT NULL |
updatetype | smallint | Type de modification (insertion (0), mise à jour (1) ou suppression (2)) qui a engendré l'objet à valider | NOT NULL |
Toutes les autres tables de réseau contiennent les mêmes noms et types de champs. Leur structure est la suivante :
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
oid |
integer |
Identifiant unique de la page bytea dans la table |
NOT NULL |
pagenumber |
integer |
Numéro de la page bytea dans la table |
NOT NULL |
pageblob |
bytea |
Description de l'élément que la table décrit ; par exemple, tronçon et état du tronçon |
|
tableid |
integer |
Pour les tables d'objets BLOB n_<ID>_edgeweight, n_<ID>_turnweight et n_<ID>_junctionweight, la valeur tableID correspond à la valeur weightID. Pour la table d'objets BLOB n_<ID>_topology, la valeur tableID correspond à la position de la table d'origine dans le réseau de tables de topologie défini dans le fichier GeoDatabase\GeoDatabase\Network\Network\TableDefs.h. |
NOT NULL |
Voici un diagramme d'un jeu de données réseau dans PostgreSQL :
Les lignes pointillées indiquent les relations implicites entre colonnes.
Vous pouvez en outre intégrer d'autres tables facultatives à votre jeu de données réseau pour modéliser des temps de trajet en fonction des vitesses de trafic historique ou représenter des changements de fuseau horaire susceptibles d'affecter l'analyse du réseau. Vous créez ces tables avant de créer votre jeu de données réseau et vous les placez dans votre structure (exactement comme la classe d'entités sur laquelle repose un réseau se trouve dans la structure de l'auteur). Vous spécifiez les noms des tables. Reportez-vous à la section Extension ArcGIS Network Analyst de la documentation pour en savoir plus sur l'utilisation de ces tables de fuseau horaire et d'historique du trafic.
Jeux de données réseau dans un document d'espace de travail XML
Les balises des jeux de données réseau sont de type réseau logique. Voici un extrait de document XML créé par exportation depuis le jeu de données réseau RoadNetwork.
<LogicalNetworkName>m16.hbear.RoadNetwork_ND</LogicalNetworkName>
<NetworkType>1</NetworkType>
<Buildable>true</Buildable>
<SupportsTurns>true</SupportsTurns>
<Properties xsi:nil="true" />
<UserData xsi:nil="true" />
<EdgeFeatureSources xsi:type="esri:ArrayOfEdgeFeatureSource">
<EdgeFeatureSource xsi:type="esri:EdgeFeatureSource">
<ID>1</ID>
<ClassID>1</ClassID>
<Name>m16.hbear.Streets</Name>
<ElementType>esriNETEdge</ElementType>
<Properties xsi:nil="true" />
<FromElevationFieldName />
<ToElevationFieldName />
<Connectivity xsi:type="esri:PropertySet">
<PropertyArray xsi:type="esri:ArrayOfPropertySetProperty">
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>Version</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>UsesSubtypes</Key>
<Value xsi:type="xs:short">0</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>ClassConnectivity</Key>
<Value xsi:type="xs:short">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>SubtypeConnCount</Key>
<Value xsi:type="xs:int">0</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>DefaultGroup</Key>
<Value xsi:type="xs:int">1</Value>
</PropertySetProperty>
<PropertySetProperty xsi:type="esri:PropertySetProperty">
<Key>GroupCount</Key>
<Value xsi:type="xs:int">0</Value>
</PropertySetProperty>
</PropertyArray>
</Connectivity>
</EdgeFeatureSource>
</EdgeFeatureSources>
<JunctionFeatureSources xsi:type="esri:ArrayOfJunctionFeatureSource" />
<SystemJunctionSources xsi:type="esri:ArrayOfSystemJunctionSource">
<SystemJunctionSource xsi:type="esri:SystemJunctionSource">
<ID>3</ID>
<ClassID>4</ClassID>
<Name>m16.hbear.RoadNetwork_ND_Junctions</Name>
<ElementType>esriNETJunction</ElementType>
<Properties xsi:nil="true" />
<ElevationFieldName />
</SystemJunctionSource>
</SystemJunctionSources>
<TurnFeatureSources xsi:type="esri:ArrayOfTurnFeatureSource">
<TurnFeatureSource xsi:type="esri:TurnFeatureSource">
<ID>2</ID>
<ClassID>2</ClassID>
<Name>m16.hbear.Turns</Name>
<ElementType>esriNETTurn</ElementType>
<Properties xsi:nil="true" />
</TurnFeatureSource>
</TurnFeatureSources>
<EvaluatedNetworkAttributes xsi:type="esri:ArrayOfEvaluatedNetworkAttribute">
<EvaluatedNetworkAttribute xsi:type="esri:EvaluatedNetworkAttribute">
<ID>1</ID>
<Name>Oneway</Name>
<Units>Unknown</Units>
<DataType>esriNADTBoolean</DataType>
<UsageType>esriNAUTRestriction</UsageType>
<UserData xsi:nil="true" />
<UseByDefault>true</UseByDefault>
<AttributeParameters xsi:type="esri:ArrayOfNetworkAttributeParameter" />
</EvaluatedNetworkAttribute>
</EvaluatedNetworkAttributes>