Types d'évaluateurs utilisés par un réseau

Chaque attribut défini dans le réseau doit avoir des valeurs pour chaque source qui participe au réseau. Un évaluateur définit des valeurs pour l'attribut de chaque source. Dans les versions précédentes d'ArcGIS (ARC/INFO et ArcGIS for Desktop Basic GIS), les valeurs des attributs étaient attribuées à l'aide d'un champ du fichier de formes ou de la couverture. Dans ArcGIS, l'évaluateur de type champ attribue des valeurs à un attribut de réseau à l'aide d'un champ de chaque source de données du réseau. De plus, ArcGIS offre d'autres types d'évaluateurs, comme par exemple des évaluateurs de type constante, expression de champ et script.

Les évaluateurs sont décrits ci-dessous.

Evaluateur

Description

Evaluateur de type champ

La méthode la plus fréquente d'attribution de valeurs à un attribut de réseau consiste à identifier un champ unique permettant d'évaluer l'attribut de réseau lors de la création du jeu de données réseau. Par exemple, un évaluateur de type champ peut être utilisé dans les cas où la valeur décrit une mesure, telle que la longueur de chaque segment de route en mètres.

Evaluateur d'expression de champ

L'évaluateur de type champ peut être modifié pour sélectionner une expression plutôt qu'un champ unique comme valeur. Dans ce cas, vous devez recréer une expression dans la boîte de dialogue Evaluateur de type champ en utilisant VBScript ou Python. Par exemple, si les unités de l'attribut de réseau sont exprimées en mètres, mais que les unités des données sources en pieds, vous pouvez créer une expression pour convertir les pieds en mètres lorsque le jeu de données réseau est créé.

AstuceAstuce:

Les évaluateurs d'expression de champ écrits dans VBScript s'exécutent bien plus rapidement que ceux écrits dans Python. C'est pourquoi vous devez essayer d'utiliser VBScript ; toutefois, n'oubliez pas ce qui suit lorsque vous sélectionnez le langage de script :

  • La plupart des produits ArcGIS peuvent interpréter le langage VBScript ou Python.
  • ArcGIS for Server (Linux) peut uniquement interpréter le langage Python.
  • Le script d'un évaluateur d'expression de champ est interprété lors de la création du jeu de données réseau.
Les implications logiques de ces considérations sont les suivantes :
  • Si vous prévoyez de créer le jeu de données réseau en utilisant un produit ArcGIS autre qu'ArcGIS for Server (Linux), vous pouvez écrire le script dans VBScript.
  • Si vous prévoyez de créer le jeu de données réseau sur ArcGIS for Server (Linux), vous devez l'écrire dans Python.
  • Si vous prévoyez de créer le jeu de données réseau en utilisant un produit ArcGIS autre qu'ArcGIS for Server (Linux), et que vous utilisez ensuite ArcGIS for Server (Linux) pour effectuer les analyses du réseau qui référencent le jeu de données réseau créé, vous pouvez écrire le script dans VBScript.

Evaluateur constant

Vous pouvez attribuer une valeur constante aux attributs. La valeur peut être numérique (0, 1, 2) pour le coût, le descripteur et les attributs de hiérarchie, ou un type de données booléen Utiliser une restriction ou Ignorer une restriction pour un attribut de restriction.

Evaluateur de fonction

L'évaluateur de fonction calcule des valeurs attributaires en exécutant une fonction de multiplication ou logique sur une autre valeur attributaire ou de paramètre. Pour les types d'attribut numériques, les valeurs sont dérivées d'une expression qui multiplie la valeur d'un autre attribut par une valeur quelconque (par exemple, DriveTime * 1,25). Pour les types d'attributs booléens, les valeurs sont dérivées d'une expression qui compare une autre valeur attributaire à une valeur de paramètre, MaxHeight < VehicleHeight, par exemple.

Evaluateur de délai de tournant global

L'évaluateur de délai de tournant global affecte une valeur de coût par défaut pour établir une transition entre deux tronçons. Le coût est basé sur l'angle de déflexion entre les deux tronçons et la classe de voies (principale, secondaire ou locale) des tronçons traversés. Vous spécifiez la classe de voies à l'aide de la boîte de dialogue Plages de hiérarchie avec un attribut de hiérarchie. Par exemple, vous pouvez utiliser l'évaluateur de délai de tournant global pour faire en sorte que tous les tournants à gauche, déterminés par les angles de déflexion, de routes secondaires sur des routes locales prennent plus longtemps que les tournants à gauche de routes secondaires sur d'autres routes secondaires. Vous pouvez également spécifier des coûts supplémentaires pour d'autres transitions, comme ajouter des délais de 10 secondes pour continuer tout droit à l'intersection de deux routes locales.

Pour en savoir plus sur l'établissement de tournants globaux

Evaluateur de type script

Vous pouvez affecter des attributs à partir des résultats de l'exécution d'un script VBScript ou Python. Cette méthode permet de modéliser des attributs complexes. Contrairement à d'autres évaluateurs, l'évaluateur de type script n'attribue aucune valeur lorsqu'un réseau est créé. Il attribue des valeurs lorsqu'une analyse de réseau particulière nécessite l'utilisation de cet attribut, ce qui peut se produire au moment du calcul. Si les valeurs d'un attribut changent constamment, l'utilisation d'un évaluateur de type script peut garantir la mise à jour des attributs pour chaque analyse de réseau.

AstuceAstuce:

L'évaluateur de type script calculant ses valeurs au moment de l'analyse, il peut avoir une incidence négative sur les performances d'analyse. Essayez, si possible, d'utiliser un autre évaluateur.

Les évaluateurs de script écrits dans VBScript s'exécutent bien plus rapidement que ceux écrits dans Python. C'est pourquoi vous devez essayer d'utiliser VBScript ; toutefois, n'oubliez pas ce qui suit lorsque vous sélectionnez le langage de script :

  • La plupart des produits ArcGIS peuvent interpréter le langage VBScript ou Python.
  • ArcGIS for Server (Linux) peut uniquement interpréter le langage Python.
  • Le script d'un évaluateur de script est interprété lorsqu'une couche d'analyse de réseau est calculée.
Les implications logiques de ces considérations sont les suivantes :
  • Si vous prévoyez d'effectuer des analyses de réseau en utilisant un produit ArcGIS autre qu'ArcGIS for Server (Linux), vous pouvez écrire le script dans VBScript.
  • Si vous prévoyez d'effectuer des analyses sur ArcGIS for Server (Linux), vous devez l'écrire dans Python.

Evaluateurs de trafic sur un tronçon

Les évaluateurs de trafic sur un tronçon sont conçus pour les données de trafic. Ils peuvent fournir des temps de trajet en fonction d'une heure et d'un jour de la semaine donnés à l'aide des données de trafic historique ou dynamique. Ils incluent des attributs de repli de coût qui fournissent des temps de trajet pour la semaine et le week-end lorsque les temps de trajet pour des heures spécifiques de la journée ne sont pas disponibles. Les évaluateurs de trafic sur un tronçon incluent également un attribut de coût ne tenant pas compte du temps que Network Analyst référence lors du séquencement des arrêts dans une analyse d'itinéraires ou des passages dans une tournée de véhicules.

Pour en savoir plus sur les données de trafic

Chaque jonction en entrée et chaque tournant en entrée peuvent avoir un évaluateur. Chaque tronçon en entrée peut en avoir deux, un pour chaque sens de numérisation du tronçon.

Un évaluateur par défaut peut être attribué aux tronçons, aux jonctions et aux tournants. Si un évaluateur explicite n'est pas spécifié pour une source particulière, les valeurs de cette source sont attribuées par l'évaluateur par défaut.

Voici le workflow général de l'affectation d'un évaluateur :

  1. Sélectionnez la source à laquelle l'évaluateur doit être attribué.
  2. Choisissez un type d'évaluateur tel que Champ, Constante, Fonction ou Script.
  3. Spécifiez la valeur à attribuer à l'attribut de réseau.

    Si les valeurs proviennent d'un champ, ce dernier sera sélectionné dans un menu déroulant. Si les valeurs sont calculées à l'aide d'une expression de champ, définissez le type d'évaluateur sur Champ et appuyez sur la touche F12 du clavier pour afficher la boîte de dialogue Evaluateurs de type champ. Vous pouvez également cliquer avec le bouton droit sur la source dans la boîte de dialogue Evaluateurs et choisir Propriétés dans le menu Valeur afin d'ouvrir la boîte de dialogue Evaluateurs de type champ.

Exemples d'évaluateurs

Attribution de valeurs à des attributs de coût

L'attribut de réseau DriveTime du graphique ci-dessous utilise un évaluateur de type champ pour les classes d'entités source Streets. Cela est indiqué dans la colonne Type. La colonne Valeur montre que le champ FT_Minutes fournit les valeurs d'attribut de réseau pour le sens aller de la source Rues. De même, les valeurs du sens retour de la source rues proviennent du champ TF_Minutes.

Dans cet exemple, les autres tronçons en entrée de ce réseau représentent des tronçons de transit et n'affichent aucun temps de conduite. Par conséquent, une valeur constante de -1, ou mieux zéro, et des attributs de restriction spécifiques interdisant les automobiles et d'autres véhicules peuvent leur être affectés.

ApprofondissementApprofondissement :

Les restrictions sont préférées par rapport aux coûts négatifs car ces derniers sont soustraits lors de l'accumulation des attributs de coût.

Attribution de valeurs à des attributs de coût

Les attributs de coût peuvent également être dérivés d'un autre attribut de coût grâce à l'évaluateur de fonction. Par exemple, un attribut qui modélise les temps de trajet de véhicules lents peut utiliser l'évaluateur de fonction pour référencer un attribut qui modélise les temps de trajet normaux et le multiplie par un facteur de ralentissement.

Evaluateur de fonction modélisant un temps de trajet plus long

Attribution de valeurs à des restrictions

Les attributs de restriction ont un type de données booléen. Un élément source peut utiliser ou ignorer la restriction associée. Par conséquent une valeur constante Utiliser une restriction ou Ignorer une restriction peut lui être attribuée.

Attribution de valeurs à des restrictions

Les attributs de restriction peuvent également être dérivés à l'aide de l'évaluateur de fonction en vue de comparer un autre attribut à une valeur de paramètre. Par exemple, un attribut qui modélise des restrictions de hauteur de véhicule peut utiliser l'évaluateur de fonction pour comparer la limite de hauteur d'une route à la hauteur réelle du véhicule stockée dans un paramètre attributaire. Si l'expression est vraie, la restriction est utilisée sur la route ; si l'expression est fausse, la restriction est ignorée. L'exception à cette règle est lorsque l'une ou l'autre des opérandes (MaxHeight ou hauteur du véhicule) a une valeur de zéro, l'expression est toujours évaluée comme étant fausse.

Evaluateur de fonction modélisant une restriction de hauteur

En savoir plus sur l'utilisation de paramètres avec les attributs de réseau

Les attributs de restriction peuvent également être attribués à l'aide d'un champ de la classe d'entités source. Par exemple, vous pouvez utiliser un évaluateur d'expression de champ pour générer des résultats booléens. Si l'expression est vraie, l'élément utilise la restriction, dans le cas contraire, il l'ignore.

Lorsqu'un jeu de données réseau est créé, l'Extension ArcGIS Network Analyst analyse toutes les sources pour identifier les champs les plus utilisés tels que Oneway. S'il trouve un champ Oneway dans une source, il crée un attribut de réseau Oneway et attribue des valeurs à la source correspondante selon les expressions de champ.

Vous trouverez ci-dessous deux captures d'écran de l'expression VBScript utilisée pour un attribut de restriction Oneway. Il existe un évaluateur et une expression pour chaque sens de numérisation de la rue.

Evaluateur d'expression de champ du sens aller (VBScript)
Evaluateur d'expression de champ du sens retour (VBScript)

Ces expressions déterminent la ou les directions autorisées pour le trajet en fonction de la valeur textuelle du champ Oneway :

  • FT ou F = Le trajet est autorisé seulement dans le sens de numérisation de l'entité linéaire (sens aller).
  • TF ou T = Le trajet est autorisé uniquement dans le sens de numérisation inverse de l'entité linéaire (sens retour).
  • N = Le trajet n'est autorisé dans aucune direction.
  • Toute autre valeur = Le trajet est autorisé dans les deux directions.

RemarqueRemarque :

Bien que VBScript soit recommandé pour les évaluateurs de réseau, vous devez écrire les scripts dans Python si l'évaluateur doit être exécuté sur ArcGIS for Server (Linux). Les données saisies dans les sections Code de script Pre-Logic et Valeur = de la boîte de dialogue de l'évaluateur diffèrent dans VBScript et dans Python.

Dans VBScript, vous écrivez une expression dans Code de script Pre-Logic qui définit une variable, puis vous définissez Valeur = sur cette variable.

Dans Python, vous devez écrire une fonction dans la zone de texte Code de script Pre-Logic commençant par le mot-clé def, renvoyer une valeur à un moment donné avec le mot-clé return, puis appeler la fonction à partir de la zone de texte Valeur =. Vous trouverez ci-dessous deux captures d'écran illustrant l'écriture d'un évaluateur d'expression de champ dans Python pour définir une restriction Oneway. Comparez-les à l'exemple VBScript ci-dessus afin de mieux comprendre les différences d'écriture des expressions des évaluateurs dans VBScript et dans Python.

Evaluateur d'expression de champ du sens aller (Python)
Evaluateur d'expression de champ du sens retour (Python)
Notez également que, dans l'exemple Python ci-dessus, l'instruction if utilise une expression logique composée plutôt qu'une expression logique simple afin d'identifier les valeurs Null et d'éviter les erreurs. Si value est supprimé de if value and value.upper() in ('N', 'FT', 'F'):, et qu'une valeur Null est transmise à partir du champ ONEWAY, une erreur est générée car la fonction value.upper() ne peut pas gérer les valeurs Null. C'est pourquoi value est évaluée comme fausse et Python quitte immédiatement l'instruction if avant d'évaluer value.upper().

Paramètre Utilisation d'une restriction

Un attribut de restriction est toujours associé à un paramètre Utilisation d'une restriction, qui permet de déterminer si les éléments utilisant la restriction sont interdits, simplement évités, voire préférés. Dans la plupart des cas, vous définirez le paramètre Utilisation d'une restriction sur Interdit, mais dans certains cas, vous pourrez procéder autrement.

Pour en savoir plus sur le paramètre Utilisation d'une restriction

Attribution de hiérarchies

En affectant des hiérarchies sur votre jeu de données réseau, vous pouvez classer les tronçons en catégories selon les différents niveaux hiérarchiques et réduire ainsi les temps de calcul. Toutefois, n'oubliez pas que les résultats de calculs hiérarchiques peuvent s'avérer moins optimaux que les calculs non hiérarchiques. Il est recommandé de lire également A propos de l'analyse de réseau avec une hiérarchie pour mieux comprendre ce que sont les hiérarchies et pourquoi elles peuvent être utilisées.

Les niveaux de hiérarchie sont définis par des nombres entiers consécutifs, en démarrant à un. L'entier le plus petit, à savoir un, représente le niveau le plus élevé de la hiérarchie. Les valeurs d'entiers plus élevées représentent des niveaux de hiérarchie inférieurs. Par exemple, si vous divisez un réseau en trois niveaux de hiérarchie, vous affectez la valeur 1 aux routes principales, la valeur 2 aux routes locales et la valeur 3 aux routes auxiliaires. Les routes principales peuvent comprendre les autoroutes nationales alors que les routes auxiliaires peuvent comprendre des rues résidentielles.

La hiérarchie dans un jeu de données réseau est souvent affectée via un champ ou un évaluateur d'expression de champ. Si la classe d'entités Streets comporte un attribut de classe de voies (Hiérarchie) avec les valeurs 1, 2, et 3, représentant respectivement des autoroutes entre états, des routes principales et des routes secondaires, l'attribut de hiérarchie peut être défini simplement à l'aide d'évaluateurs de type champ.

Attribution d'une hiérarchie

En général, trois, quatre ou cinq niveaux de hiérarchie sont affectés à un attribut de hiérarchie, mais vous pouvez en affecter autant que vous voulez, tant que chaque niveau est représenté par un nombre entier consécutif en partant de un. Il est conseillé d'éviter d'affecter un trop grand nombre de niveaux de hiérarchie, toutefois, car cela peut laisser quelques tronçons déconnectés en rapport avec le reste de la hiérarchie, ce qui peut avoir pour effet de causer des échecs lors de la résolution des couches d'analyse de réseau.

Si la classe d'entités source a un attribut qui classe les voies en un nombre de groupes plus élevé que vous ne souhaitez en tant que niveaux dans votre hiérarchie, vous pouvez encore classer les groupes à l'aide d'un évaluateur d'expression de champ pour obtenir le nombre de niveaux de hiérarchie que vous souhaitez. Prenez par exemple une classe d'entités Streets avec un champ de type entier nommé Func_Class qui comporte les six classes de voies suivantes :

Func_Class

Type de voie

1

Inter-Etats

2

Route à péage entre états

3

Autoroute d'état

4

Route principale

5

Rue locale

6

Bretelle d'autoroute

En outre, supposez que vous voulez regrouper les valeurs Func_Class comme indiqué dans le tableau suivant afin de créer trois niveaux de hiérarchie.

Niveau de hiérarchie

Valeurs Func_Class

1

1 (autoroutes entre états)

2 (autoroute à péage entre états)

6 (bretelles d'autoroute)

2

3 (autoroutes d'état)

4 (routes principales)

3

5 (rues locales)

Pour modéliser ce scénario, ajoutez un script aux évaluateurs de type champ de l'attribut de hiérarchie. Vous pouvez en écrire un dans un script VBScript ou Python. L'exemple ci-dessous, en VBScript, crée une variable nommée level et la définit sur 3 (niveau de hiérarchie le plus bas de cet exemple). Ensuite, la condition suivante est définie : si Func_Class est défini sur 1, 2 ou 6, attribuez une valeur de 1 à la variable level. Si Func_Class est défini sur 3 ou 4, attribuez une valeur de 2 à la variable level. Dans tous les autres cas, la valeur reste définie sur 3. La zone de texte Valeur contient la variable level afin que l'attribut de réseau de hiérarchie renvoie la valeur qu'il représente à la fin du script.

Définition de niveaux de hiérarchie à l'aide de code Pre-logic VBScript

Ainsi, une valeur hiérarchique de 1 est attribuée à tous les éléments dont le champ Func_Class affiche la valeur 1, 2 ou 6 ; une valeur hiérarchique de 2 est attribuée à tous les éléments dont le champ Func_Class affiche la valeur 3 ou 4 ; et une valeur hiérarchique de 3 est attribuée à tous les autres éléments (c'est-à-dire ceux dont le champ Func_Class = 5).

HéritageHéritage :

Avant ArcGIS 10, la boîte de dialogue Plages de hiérarchie était utilisée pour convertir plusieurs valeurs de champ en exactement trois niveaux de hiérarchie. Désormais, elle ne sert plus qu'à définir les routes principales, locales et secondaires lors de l'utilisation d'un évaluateur de délai de tournant global ou de la définition de plages d'échelle pour l'affichage du trafic. Cela signifie que la boîte de dialogue Plages de hiérarchie n'a aucun effet sur l'attribut de hiérarchie du jeu de données réseau et qu'elle ne concerne que l'évaluateur de délai de tournant global.

Boîte de dialogue Plages de hiérarchie
Cliquez sur Plages dans le volet Attributs pour voir la boîte de dialogue Plages de hiérarchie.

Lorsqu'un évaluateur de délai de tournant global est utilisé avec un attribut de hiérarchie, les tronçons doivent être classés en trois classes : routes secondaires, locales et principales. Puisqu'un attribut de hiérarchie permet de spécifier tout nombre de niveaux de hiérarchie, la boîte de dialogue Plages de hiérarchie vous permet de regrouper ces niveaux dans exactement trois classes de voies. Cela vous permet de spécifier des coûts qui sont ajoutés par défaut pour les manœuvres en fonction de la classe de voies. Par exemple, vous pouvez ajouter un délai de 10 secondes pour tous les tournants à gauche depuis des routes locales sur des routes secondaires et un délai de trois secondes pour tous les tournants à gauche depuis des routes secondaires sur d'autres routes secondaires. Beaucoup d'autres combinaisons de tournants sont possibles lors de l'utilisation de classes de voies avec l'évaluateur de délai de tournant global.

Pour en savoir plus sur l'établissement de tournants globaux

Des plages d'échelle peuvent être définies durant l'affichage du trafic afin que, lorsque vous agrandissez une carte, toutes les toutes ayant du trafic soient affichées. Lorsque vous faites un zoom arrière, les routes locales, secondaires puis principales disparaissent de l'affichage. Cela réduit l'encombrement de la carte de trafic et affiche uniquement les niveaux routiers hiérarchiques correspondant à l'échelle de la carte. Les plages d'échelle sont réglées en fonction des plages de hiérarchie que vous spécifiez dans la la boîte de dialogue Plages de hiérarchie.

Pour en savoir plus sur la visualisation du trafic

Thèmes connexes

5/25/2014