Copie des classes d'entités source
Chaque classe d'entités figurant dans une géodatabase possède un ID de classe d'entités. Il s'agit d'un nombre entier généré automatiquement qui identifie de manière unique la classe d'entités au sein d'une géodatabase. Lorsque vous copiez une classe d'entités d'une géodatabase dans une autre, les identifiants de classes d'entités de l'original et de la copie seront probablement différents. Si vous les copiez et collez au sein de la même géodatabase, leurs identifiants seront sans aucun doute différents.
Dans un jeu de données réseau, les entités source participantes et les enregistrements se réfèrent parfois l'un à l'autre, en partie par l'intermédiaire des identifiants des classes d'entités. Ainsi, si un identifiant de classe d'entités est différent de ce qui est attendu, les références aux entités sont endommagées.
Les types de données réseau qui font référence aux identifiants de classes d'entités, et qui par conséquent risquent d'avoir des références endommagées lors de la copie des données, sont les tournants, la signalisation et les tables de trafic (en particulier les tables de trafic Rue-Profils et Rue-TMC).
Les entités tournants ont des valeurs attributaires qui font référence aux identifiants de classes d'entités de deux sources tronçons en entrée ou plus afin d'identifier les tournants interdits ou pénalisés entre les tronçons adjacents.
La table Signalisation-Rue fait référence aux identifiants de classes d'entités des tronçons en entrée afin d'identifier les manœuvres étiquetées entre les tronçons adjacents pour fournir des itinéraires plus détaillés.
La table de jointure Rue-Profil comporte des valeurs attributaires qui font référence à l'identifiant de classe d'entités d'un tronçon en entrée afin de lier les données de trafic historique aux rues. De même, les valeurs attributaires dans la table de jointure Rue-TMC font référence à l'identifiant de classe d'entités des tronçons en entrée afin de contribuer à lier les données de trafic réel aux rues.
Lorsque les identifiants de classes d'entités auxquels les tournants, la signalisation et les tables de trafic se réfèrent sont incorrects, des erreurs se produisent. Pire encore, lorsque les identifiants sont valides mais incorrects, des résultats inattendus sont engendrés. Par exemple, une table de jointure Rue-Profil ou Rue-TMC utilisée avec des données de trafic pourrait référencer les mauvaises entités rues et par conséquent entraîner l'affichage de vitesses de déplacement incorrectes ou l'utilisation de telles vitesses lors de l'analyse. De même, la table de jointure Signalisation-Rue pourrait référencer les mauvaises rues et entraîner des feuilles de route tournant par tournant confuses.
Pour éviter ces problèmes, copiez le jeu de données réseau vers un autre jeu de classes d'entités, au lieu de copier chacune de ses classes d'entités source. Lorsqu'un jeu de données réseau est copié, les données source sont copiées avec le réseau, et les identifiants de classes d'entités référencés dans les tables attributaires pour les tournants, la signalisation et les tables de trafic sont mis à jour pour correspondre aux nouveaux identifiants de classes d'entités.
Si vous copiez individuellement des tournants, des tables de signalisation ou des tables de trafic, vous pouvez uniquement mettre à jour les champs d'identifiants référencés de façon manuelle, qui est à éviter. Vous pouvez sinon créer un jeu de données réseau de base à l'aide des données de tournants, de signalisation, de trafic et d'autres données réseau que vous prévoyez d'utiliser, puis copier et coller le jeu de données réseau temporaire des classes d'entités source individuelles. Les classes d'entités source sont copiées automatiquement avec le jeu de données réseau. Au terme du processus, vous pouvez supprimer le jeu de données réseau temporaire ou continuer à l'utiliser. Cette méthode actualise automatiquement les références aux identifiants de classes d'entités de sorte que vous n'avez pas besoin d'effectuer les mises à jour manuellement.
Si vous ne pouvez pas copier le jeu de données réseau ou si vous devez actualiser les identifiants de classes d'entités pour d'autres motifs, vous pouvez utiliser les étapes ci-dessous pour vous guider.
Supposons que vous disposiez d'une classe d'entités tronçons source nommée Streets, qui est désignée comme classe d'entités Streets d'origine dans les étapes ci-dessous. Supposons également que la classe d'entités Streets d'origine soit associée à des tournants, signalisations et données de trafic d'origine. Ces données d'origine sont dans ce cas copiées dans un autre jeu de classes d'entités, ce qui crée une classe d'entité Streets, des tournants, des signalisations et des données de trafic en double. Dans les étapes ci-dessous, les données dupliquées sont référencées comme la classe d'entités Streets copiée, la classe d'entités tournants, la table Signalisation-Rue et les tables de trafic. Cette manière d'identifier les données d'origine et les données copiées a pour but de faciliter le suivi de ces étapes.
- Dans la fenêtre Catalogue d'ArcMap, accédez à la classe d'entités Streets d'origine. Cliquez avec le bouton droit sur la classe d'entités, puis sélectionnez Propriétés.
- Dans la boîte de dialogue Propriétés de la classe d'entités cliquez sur l'onglet Général.
- Cliquez sur le bouton comportant des points de suspension en regard de la zone de texte Nom.
La boîte de dialogue ID de classe d'objets indique l'identifiant de classe d'entités. Enregistrez la valeur affichée, car vous aurez peut-être à retrouver cette valeur dans les données de tournants, signalisation et tables de trafic.
Ajoutez la classe d'entités à ArcMap.
Cliquez sur le bouton Fenêtre Python dans la barre d'outils Standard pour ouvrir la fenêtre Python.
Dans la fenêtre Python, tapez arcpy.Describe("<nom de la couche>").DSID, en remplaçant <nom de la couche> par le nom de la couche d'entités.
Par exemple, pour obtenir l'identifiant de classe d'entités de la couche Streets, tapez arcpy.Describe("Streets").DSID.
Appuyez sur Entrée.
L'identifiant de classe d'entités s'affiche sous la commande que vous avez tapée.
Supprimez la couche d'entités Streets d'origine d'ArcMap.
- Obtenez l'identifiant de classe d'entités de la classe d'entités Streets copiée. Utilisez la même méthode que pour obtenir l'identifiant de la classe d'entités Streets d'origine.
- Si les valeurs de la classe d'entités sont les mêmes pour la classe d'entités Streets d'origine et celle copiée, aucune action supplémentaire n'est requise. Toutefois, si les identifiants sont différents, vous devez ouvrir les tables attributaires de la classe d'entités tournants copiée, de la table Signalisation-Rue et des tables de trafic, puis remplacer l'identifiant de la classe d'entités Streets d'origine trouvé à l'étape 3 par l'identifiant de la classe d'entités Streets copiée trouvée à l'étape 4.
Pour réparer la classe d'entités tournants copiée, remplacez l'identifiant de la classe d'entités Streets d'origine trouvé dans les champs Edge#FCID (où # représente un nombre) par l'identifiant de la classe d'entités Streets copiée.
Vous pouvez également créer un jeu de données réseau sur les données copiées, puis exécuter l'outil Mettre à jour selon la géométrie. Cet outil met automatiquement à jour les valeurs de champs des entités tournants, mais vous devez modifier manuellement la géométrie des entités tournants dont les sommets ne croisent pas les entités rues copiées ou ne croisent pas les entités rues coïncidentes. La mise à jour de la géométrie nécessite que les sommets des entités rues croisent un tronçon en entrée afin d'identifier la classe d'entités source et les identifiants d'entités auxquels les tournants sont associés.
Pour réparer la table de jointure Signalisation-Rue, Rue-Profil ou Rue-TMC, recherchez le champ EdgeFCID et remplacez les occurrences de l'identifiant de la classe d'entités Streets d'origine par celui de la classe d'entités Streets copiée.
Le bouton représentant des points de suspension a été ajouté à ArcMap dans la version 10.1 pour obtenir l'identifiant de classe d'entités. Si vous devez rechercher un identifiant de classe d'entités avec ArcMap 10.0, utilisez la fenêtre Python, comme décrit ci-dessous.