Si vous avez lu comment fonctionne le traçage avec ArcGIS Utility Network, vous avez probablement remarqué que de nombreuses fonctionnalités nécessitent des attributs réseau. Ce sont les attributs utilisés pour définir si un dispositif est ouvert/fermé, en service/retraité ou toute autre caractéristique d'un élément qui doit être prise en compte lorsque le système effectue son analyse. Le but de cet article est de discuter de certaines des implémentations techniques des attributs réseau afin que vous puissiez prendre des décisions éclairées sur la façon de configurer votre utility network.
Qu'est-ce qu'un attribut réseau ?
Un attribut réseau est un attribut configuré pour être utilisé dans l'analyse avec un utility network. Les attributs réseau peuvent être utilisés comme barrières de traversabilité, telles que des barrières de condition ou des barrières de filtre. Ils peuvent également être utilisés pour contrôler la sortie du traçage en créant une condition de sortie ou pour des fonctions de synthèse. La seule façon d'utiliser un attribut non réseau dans le traçage est d'utiliser le type de résultat Feature pour exporter les attributs associés à un élément.
Définir un attribut réseau est un processus en deux étapes. Tout d'abord, vous devez définir un attribut réseau dans l'utility network en utilisant l'outil Ajouter un attribut réseau. Cela n'ajoutera aucun champ à vos classes d'entités, cela définit uniquement un attribut pouvant être utilisé dans l'analyse.
Pour remplir cet attribut réseau, vous devez mapper un champ d'une ou plusieurs classes de votre utility network en utilisant l'outil Définir un attribut réseau. Les champs mappés à l'attribut réseau n'ont pas besoin d'avoir le même nom, mais il existe certaines contraintes lors du mappage des champs à un attribut réseau. Si le champ que vous souhaitez définir comme attribut réseau n'apparaît pas dans la liste déroulante, c'est soit parce que le type de données du champ n'est pas correct, soit parce que le champ est nullable alors que l'attribut réseau ne l'est pas. Les champs utilisés pour les attributs réseau qui ont des domaines assignés doivent avoir des valeurs de domaine similaires pour garantir un comportement cohérent lors de l'analyse.
Lorsqu'un champ est désigné comme attribut réseau, cela signifie que l'utility network stockera une copie de la valeur de cet élément dans les tables système du réseau pour une utilisation lors de l'analyse chaque fois que l'élément est validé. Cela permet au réseau d'effectuer l'analyse plus rapidement, car toutes les informations nécessaires pour prendre des décisions pendant l'analyse sont disponibles sans avoir besoin d'interroger les valeurs des éléments individuels. Stocker plus d'informations dans le réseau pour l'analyse signifie qu'il faudra lire davantage d'informations depuis les éléments lors de leur validation, persister plus d'informations dans les tables système et lire plus d'informations depuis ces tables pendant l'analyse.
Tous les stockages ne se valent pas, et dans la section suivante nous discuterons des différentes options pour stocker les attributs réseau et comment elles affectent la performance.
Performance
La décision la plus importante lors de la création d'un attribut réseau est de décider s'il sera stocké en ligne ou non. Les attributs réseau stockés en ligne sont conservés à l'intérieur de la topologie du réseau, aux côtés de la connectivité, ce qui permet un accès aussi rapide que possible lors du traçage puisqu'ils sont chargés en même temps que la connectivité. Les attributs réseau qui ne sont pas stockés en ligne sont toujours conservés dans les tables système, mais ils sont stockés dans un stockage secondaire dédié aux attributs réseau.
La raison pour laquelle il existe deux mécanismes différents de stockage pour les attributs réseau est qu'il y a seulement une petite quantité d'espace disponible pour les attributs réseau en ligne. Le stockage en ligne doit être réservé aux attributs nécessaires à la traversée du réseau, comme les barrières de traversabilité, et doivent être des valeurs entières. Les attributs réseau utilisés pour les fonctions de synthèse ou les conditions de sortie ne bénéficieront pas autant d'être stockés en ligne.
Vous devriez également considérer la fréquence d'utilisation d'un attribut réseau avant de le désigner comme devant être stocké en ligne. Les attributs réseau faisant partie de votre définition de sous-réseau ou référencés par des configurations nommées fréquemment utilisées sont de bons candidats pour le stockage en ligne. Les attributs réseau, comme ceux pour la configuration estivale ou hivernale, qui ne sont utilisés que quelques fois par mois ne sont pas aussi importants à stocker en ligne.
Une considération importante lors de l'identification des attributs réseau est de se rappeler qu'ils doivent être validés, écrits et lus depuis la base de données. Plus vous avez d'attributs réseau, plus il faudra du temps pour activer/valider votre topologie du réseau, tracer votre utility network et mettre à jour votre sous-réseau. Le coût individuel de chaque attribut est relativement faible, mais ces coûts peuvent rapidement s'accumuler pour les réseaux avec beaucoup d'attributs. Il vaut mieux commencer avec un nombre relativement petit d'attributs dont vous savez avoir besoin, puis ajouter des attributs supplémentaires au fil du temps selon vos besoins.
Si vous identifiez un champ que vous souhaitez utiliser comme attribut réseau en ligne, vous voudrez peut-être apporter quelques modifications au champ pour le rendre plus adapté au stockage en ligne. Nous discuterons certaines de ces considérations dans la section suivante.
Stockage
Étant donné qu'il y a une quantité finie d'espace pour les attributs en ligne, il vaut la peine de discuter ce qui détermine la taille allouée à un attribut réseau en ligne afin que vous puissiez concevoir les champs supportant vos attributs réseau pour un stockage et une performance idéaux. Ce qui suit est un résumé du sujet ArcGIS Help sur comment calculer la taille en bits pour les attributs réseaux en ligne.
La première limitation pour stocker un attribut en ligne est le type de données de l'attribut réseau et son champ associé. Bien que la plupart des types de données puissent être utilisés comme attributs réseaux, seuls les champs entiers courts ou entiers longs peuvent être stockés en ligne. Cela s'explique par le fait que le réseau stocke une représentation binaire des valeurs pour l'attribut réseau.
La deuxième limitation est qu'un attribut réseau en ligne doit avoir un domaine associé. Les valeurs dans ce domaine déterminent la quantité d'espace allouée au champ dans l'index du réseau.
La quantité d'espace allouée à l'attribut réseau correspond à la quantité de stockage binaire nécessaire pour stocker la plus grande valeur dans le domaine. Pour cette raison, il est préférable que le domaine soit aussi compact que possible, avec la plus grande valeur aussi petite que possible. Si l'attribut et le domaine sont conçus pour des comparaisons bit à bit, alors chaque valeur dans le domaine représentera une puissance de deux (1, 2, 4, etc.). La taille initiale du stockage est calculée en utilisant le domaine spécifié dans l'outil Créer un Attribut Réseau, mais lorsque l'attribut est assigné à différentes classes il peut s'étendre selon les domaines assignés aux champs auxquels il est attribué.
Taille en bits | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 333333333333333... | 20 |
|---|
Valeur maximale du domaine | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | . . . | 1,048,575 |
Max Domain Value (nullable) | 0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | … | 524,287 |
If the fields assigned to the network attribute are allowed to be null, then the network attribute needs additional storage to represent an empty network value. When designing a model’s network attributes, it’s good to consider making the fields used for network attributes non-nullable to save storage space. This is why fields and domains that are assigned to network attributes often have a value of 0 for unknown, because this allows the field to be marked as non-nullable.
Conclusion
Now that you’ve read this article you should have a foundational understanding of how to create and use network attributes in a utility network. You should also be able to understand the benefits and limitations of storing a network attribute in-line and determine how beneficial it is to store a particular network attribute an in-line. With this information you should be able to confidently make changes to your own model, configuring network attributes to meet the needs of your model.
You can learn more about network attributes by reading the Network Attributes topic in ArcGIS Help.
If you have specific questions about how to solve different workflows, please visit us on the ArcGIS Utility Network channel on the Esri Community site. This is an active community with thousands of active members.