Ajout de fuseaux horaires à un jeu de données réseau
L'heure de la journée (et éventuellement la date) change pour un véhicule lorsqu'il passe un fuseau horaire. Si les fuseaux horaires ne sont pas configurés sur un jeu de données réseau qui couvre plusieurs fuseaux horaires, les valeurs horaires qui figurent dans une analyse peuvent être source de confusion. De plus, les jeux de données réseau liés au trafic peuvent renvoyer des temps de trajet incorrects si les fuseaux horaires sont ignorés. Pour éviter ces problèmes, vous pouvez configurer la prise en charge des fuseaux horaires dans votre jeu de données réseau.
Cette rubrique explique les raisons pour lesquelles la configuration de fuseaux horaires peut s'avérer nécessaire sur votre jeu de données réseau et elle indique comment les configurer à l'aide d'un attribut de réseau de fuseau horaire.
![Remarque Remarque](rsrc/note.png)
lorsqu'un jeu de données réseau coïncide entièrement avec un seul fuseau horaire, vous n'avez pas besoin de configurer les fuseaux horaires. Il est également inutile de configurer les fuseaux horaires si vous n'effectuez jamais d'analyses de réseau avec une heure de début et une impédance basée sur temps.
Importance des fuseaux horaires dans l'analyse de réseau
Pour mieux comprendre les raisons pour lesquelles il est essentiel de définir un attribut de fuseau horaire sur un jeu de données réseau lié au trafic qui couvre plusieurs fuseaux horaires, supposez qu'une analyse d'itinéraires parcourt, à 8h13, deux tronçons adjacents, le premier commençant dans le fuseau horaire de l'Est et le second se poursuivant dans le fuseau horaire du Centre. Si aucun attribut de fuseau horaire n'est configuré, le jeu de données réseau ignorera le décalage horaire et récupérera les temps de trajet des tronçons sur la base d'un seul fuseau horaire. Cela signifie qu'au lieu de récupérer le temps de trajet pour le tronçon qui se trouve dans le fuseau horaire du Centre à 7h13, il pourrait récupérer le temps de trajet à 8h13 voire même à une autre heure en fonction du fuseau horaire qui est défini par défaut.
Si toutefois les fuseaux horaires sont correctement configurés, le coût du tronçon qui se trouve dans le fuseau horaire de l'Est est évalué à 8h13 heure locale et le tronçon qui se trouve dans le fuseau horaire du Centre est correctement évalué à 7h13 heure locale. La précision des temps de trajet est ainsi conservée dans un jeu de données réseau lié au trafic. La feuille de route indique aussi les changements de fuseau horaire.
![]() |
La feuille de route indique ici qu'un véhicule démarre dans un fuseau horaire à 8h00 et passe à un autre fuseau horaire à 8h13, qui devient 7h13 dans le nouveau fuseau horaire (étape 7.1). |
Qu'un jeu de données réseau couvrant plusieurs fuseaux horaires soit lié au trafic ou non, la configuration d'un attribut de fuseau horaire facilite la saisie et l'interprétation de propriétés horaires (comme des fenêtres horaires et des heures de départ ou d'arrivée), car leurs valeurs de temps se rapportent toujours à l'heure locale. Par exemple, supposez que vous ajoutiez deux arrêts, un dans le fuseau horaire de l'Est et l'autre dans le fuseau horaire du Centre, et que vous souhaitiez définir leurs fenêtres horaires de 8h00 à 9h00 heure locale. Si les fuseaux horaires ne sont pas configurés, vous devez alors convertir manuellement les valeurs d'une ou des deux fenêtres horaires en fonction du fuseau horaire défini par défaut. Lorsque les fuseaux horaires sont configurés sur le jeu de données réseau, les heures que vous entrez sont automatiquement définies sur l'heure locale du tronçon sous-jacent et Network Analyst prend en charge les conversions de temps en interne.
Prise en charge des fuseaux horaires par les jeux de données réseau
Les fuseaux horaires possèdent un décalage horaire par rapport au temps universel coordonné (UTC). Les règles locales indiquent le décalage UTC, le passage ou non à l'heure d'été et, le cas échéant, le décalage et les plages de dates pour le passage à l'heure d'été. Comme ces règles peuvent fréquemment changer, il est difficile d'assurer le suivi de toutes les règles passées et actuelles. Heureusement, les dernières versions des systèmes d'exploitation Windows assurent ce suivi en indiquant tous les changements de fuseau horaire dans le monde sur votre ordinateur grâce aux mises à jour Windows. Les fuseaux horaires et leurs règles sont enregistrés dans le Registre Windows.
Network Analyst récupère les décalages UTC et les règles de passage à l'heure d'été pour les fuseaux horaires à partir du Registre Windows. Son mode de fonctionnement est présenté dans le diagramme conceptuel ci-dessous.
Le champ TimeZoneID des entités tronçons sources indique le fuseau horaire dans lequel les entités se trouvent. La valeur TimeZoneID est une clé étrangère d'une table de fuseaux horaires qui réside dans le même espace de travail que le jeu de données réseau et enregistre une liste de fuseaux horaires. Le champ MSTimeZone qui figure dans la table de fuseaux horaires est également une clé étrangère, mais d'une entrée qui figure dans le Registre Windows. (Des valeurs entières sont le plus souvent utilisées pour les identifiants et les clés étrangères, mais le Registre utilise du texte pour identifier les fuseaux horaires.) Le Registre fournit à Network Analyst des informations sur le décalage UTC et les plages de dates pour le passage à l'heure d'été.
![]() |
Dans ce diagramme, les rues dont le champ TimeZoneID a pour valeur 2 sont mises en surbrillance et reliées à l'enregistrement de l'heure normale du Centre dans la table TimeZones. La valeur MSTimeZone relie ensuite les rues à la clé de l'heure normale du Centre dans le Registre. Ces relations permettent à Network Analyst de déterminer que ces rues ont un décalage UTC de -6 heures de novembre à mars et un décalage de -5 heures de mars à novembre. |
Comme indiqué dans le graphique, vous avez besoin d'une table de fuseaux horaires et d'un champ TimeZoneID pour les classes d'entités tronçons sources avant de pouvoir configurer des fuseaux horaires sur le jeu de données réseau. Une fois que vous disposez de ces éléments, vous pouvez créer un attribut de réseau de fuseau horaire.
Création de la table de fuseaux horaires
Pour créer et renseigner automatiquement une table de fuseaux horaires, exécutez l'outil Renseigner la table de fuseaux horaires que vous pouvez télécharger à partir du Centre de ressources ArcGIS. Sinon, suivez la procédure ci-dessous qui vous guidera pas à pas dans le processus de création manuelle d'une table de fuseaux horaires. Pour cette séquence d'étapes et la suivante, vous devez maîtrisez la création et la modification de tables dans ArcGIS.
- Créez une table dans le même espace de travail que le jeu de données réseau et attribuez-lui un nom (TimeZones, par exemple).
Si l'espace de travail est une géodatabase, la table doit être créée au niveau de la géodatabase même si le jeu de données réseau doit résider un niveau plus avant, à savoir dans un jeu de données d'entité.
- Ajoutez un attribut de texte à la table et nommez-le MSTimeZone.
Attention :
Le nom de l'attribut de texte doit être MSTimeZone, car il s'agit d'un mot-clé pour Network Analyst.
La longueur des attributs doit correspondre au nom du plus long fuseau horaire que vous ajouterez à la table. A partir de mars 2010, le plus long nom de fuseau horaire dans le Registre Windows comporte 61 caractères.
- Vous pouvez, si vous le souhaitez, ajouter un autre champ de texte pour décrire le fuseau horaire.
Les avantages présentés par l'ajout d'un champ descriptif comme celui-ci sont décrits dans la prochaine étape.
- Une fois la table créée, vous devez renseigner le champ MSTimeZone avec les noms des fuseaux horaires. Vous pouvez effectuer cette opération manuellement ou par programmation.
Si vous souhaitez procéder par programmation, commencez par rechercher l'objet TimeZoneFactory dans le Centre de ressources ArcGIS. Sinon, les sous-étapes ci-dessous décrivent comment rechercher manuellement les valeurs dans le Registre Windows.
- Ouvrez l'Editeur du Registre.
Dans Windows 7 ou Vista, cliquez sur Démarrer, tapez regedit dans la zone de texte Rechercher, puis appuyez sur Entrée.
Dans Windows XP, cliquez sur Démarrer > Exécuter pour ouvrir la boîte de dialogue Exécuter. Tapez regedit dans la zone de texte Ouvrir et appuyez sur Entrée.
- Les clés qui figurent dans le Registre ressemblent à des dossiers. Développez les clés suivantes : HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > WindowsNT > CurrentVersion > Time Zones.
Une longue liste de clés secondaires s'affiche sous la clé Time Zones. Chaque clé de la liste représente un fuseau horaire. Les valeurs que vous entrez dans votre nouvelle table de fuseaux horaires sous l'attribut MSTimeZone doivent correspondre exactement à l'orthographe des noms de ces clés pour que Network Analyst puisse les retrouver dans le Registre au moment du calcul.
Attention :
Veillez à ne pas apporter de modifications au Registre, car cela risquerait d'endommager votre système.
Pour copier un nom, cliquez sur une clé de fuseau horaire et appuyez sur F2 pour entrer en mode édition. Appuyez sur CTRL+C pour copier le nom dans le Presse-papiers. Appuyez sur Echap pour quitter le mode édition. (Pour coller le nom par la suite, appuyez sur CTRL+V.)
Lorsqu'une clé est sélectionnée dans l'Editeur du Registre, ses valeurs s'affichent dans l'autre volet de la fenêtre Editeur du Registre. Les valeurs décrivent le fuseau horaire et Network Analyst utilise ces valeurs pour déterminer les heures correctes. Même si Network Analyst n'utilise pas la valeur Display, vous pouvez utiliser ces informations pour voir le décalage horaire du fuseau horaire à partir de l'UTC, ainsi que des informations géographiques sur les lieux où il est utilisé.
- Créez un enregistrement dans la table de fuseaux horaires pour chaque fuseau horaire que vous devez utiliser dans le jeu de données réseau. Pour le champ MSTimeZone de chaque enregistrement, entrez ou collez le nom du fuseau horaire tel qu'il apparaît dans l'Editeur du Registre.
Par exemple, si votre jeu de données réseau couvre l'ensemble des Etats-Unis, cinq valeurs MSTimeZone figurent alors dans votre table, comme indiqué ci-dessous. (Le champ Display est facultatif.)
IdObjet
MSTimeZone
Display
1
Heure normale de l'Est
(UTC-05:00) Eastern Time (US & Canada)
2
Heure normale du Centre
(UTC-06:00) Central Time (US & Canada)
3
Heure normale des Rocheuses
(UTC-07:00) Mountain Time (US & Canada)
4
Heure normale des Rocheuses US
(UTC-07:00) Arizona
5
Heure normale du Pacifique
(UTC-08:00) Pacific Time (US & Canada)
Astuce :
Le champ Display est ici ajouté pour mieux décrire la valeur MSTimeZone. Les informations qu'il contient ont été copiées à partir des valeurs Display des clés de fuseau horaire dans le Registre.
Même si Network Analyst n'a pas besoin de champ comme Display dans la table, son ajout peut faciliter l'identification des fuseaux horaires représentés par MSTimeZone. Par exemple, les valeurs de l'heure normale des Rocheuses et de l'heure normale des Rocheuses US pour MSTimeZone semblent très similaires. Dans le champ Display, vous pouvez toutefois constater que le fuseau horaire de l'Arizona est représenté par l'heure normale des Rocheuses US. (L'Arizona a besoin d'un identifiant de fuseau horaire distinct car, contrairement au reste des états de l'heure normale des Rocheuses, il ne passe pas à l'heure d'été.)
- Ouvrez l'Editeur du Registre.
Vous disposez maintenant d'une table avec un champ de texte nommé MSTimeZone. La prochaine étape consiste à relier chaque entité tronçon source au fuseau horaire correct dans la table.
Ajout du champ TimeZoneID
Chaque entité tronçon source doit être associée à un fuseau horaire en particulier.
- Ajoutez un champ de nombres entiers nommé TimeZoneID à chaque classe d'entités tronçons source. Même si vous pouvez attribuer n'importe quel nom à ce champ, il est communément nommé TimeZoneID.
- Calculez les valeurs des entités tronçons source.
Les valeurs TimeZoneID sont des clés étrangères qui relient les entités à des enregistrements dans la table de fuseaux horaires que vous venez de créer. Dans l'exemple ci-dessus, ObjectID 5 représente l'heure normale du Pacifique. Le champ TimeZoneID de toutes les entités tronçons source qui figurent dans ce fuseau horaire doit donc avoir pour valeur 5. Si l'heure normale du Pacifique devait avoir une valeur ObjectID différente, remplacez alors la valeur de TimeZoneID par cette valeur.
Ajout d'un attribut de réseau de fuseau horaire
Cette procédure montre comment créer un attribut de réseau de fuseau horaire sur le jeu de données réseau. L'attribut établit une relation entre le champ TimeZoneID des classes d'entités tronçons source et la table de fuseaux horaires.
-
Sous l'onglet Attributs de la boîte de dialogue Propriétés du jeu de données réseau ou dans l'Assistant Nouveau jeu de données réseau, cliquez sur Ajouter.
La boîte de dialogue Ajouter un nouvel attribut s'ouvre.
- Attribuez un nom à l'attribut, comme TimeZone.
- Sélectionnez Descripteur dans la liste Type d'utilisation.
-
Sélectionnez Entier dans la liste Type de données.
-
Cliquez sur OK.
L'attribut est ajouté à la liste d'attributs.
-
Cliquez avec le bouton droit sur le nouvel attribut, cliquez sur Utiliser les fuseaux horaires, puis cliquez sur le nom de la table de fuseaux horaires que vous avez créée.
Un cercle vert avec un T au milieu s'affiche à gauche du nom de l'attribut pour indiquer qu'il s'agit de l'attribut de fuseau horaire.
- Double-cliquez sur le nom de l'attribut de fuseau horaire pour ouvrir la boîte de dialogue Evaluateurs.
-
Pour chaque tronçon en entrée, définissez un évaluateur de type champ pour lire les valeurs TimeZoneID à partir de la classe d'entités source.
Dans l'exemple ci-dessous, un évaluateur de type champ qui lit les valeurs d'un champ TimeZoneID dans la classe d'entités source Streets est affecté aux feuilles de route dans le sens aller et dans le sens retour.
-
Cliquez sur OK.
La boîte de dialogue Evaluateurs se ferme. Une fois l'Assistant Nouveau jeu de données réseau terminé ou la boîte de dialogue Propriétés du jeu de données réseau fermée, vous pouvez créer le jeu de données réseau pour y incorporer le nouveau champ de fuseau horaire.