Exemple de carte de l'atlas d'une commune |
Pour fixer les choses, la base de données de travail du réseau routier est au format géodatabase fichier ESRI. On travaille avec ArcGIS 10.x et le module NetworkAnalyst pour les analyses les plus poussés. Les atlas des voies sont réalisés avec les outils des "pages dynamiques" d'ArcGIS. Pour que l'atlas présente bien, on réalise aussi une page de couverture. On a voulu aussi ajouter un index des voies: une liste alphabétique des voies avec les carreaux dans lesquels elles figurent. Ce dernier point a présenté une certaine difficulté. ArcGIS ne propose pas d'outil permettant de créer directement une telle table. On a pensé pouvoir le réaliser sous Excel à partir d'un export des voies croisées avec les carreaux. Mais ce n'est pas si simple qu'on le pensait!
La colonne index donne la liste des cartes de chaque voie |
Pour faciliter la production de l'index, j'ai réalisé un script python pour construire cette table. Bien sûr, le script est ensuite intégré dans une boîte à outils dédiée, pour plus de facilité. L'idée est de partir de la classe d'entités des segments des voies (ou des itinéraires), de la classe d'entités des index des cartes (les carreaux numérotés des emprise des cartes) et de construire une table à deux attributs:
- l'identifiant des voies
- la liste concaténée des cartes où figure la voie
L'algorithme du script Python repose sur une boucle de parcours de toutes les voies. toutes les voies qui ont un nom ou un numéro doivent figurer dans l'index. Les voies sans nom n'y figurent pas. On sélectionne tous les segments d'une voie et on fait une intersection par emplacement avec la couche des index de cartes (les carreaux numérotés des emprises). On concatène la liste des numéros des cartes dans un seul attribut (appelé "index"...).
AtlasIndex.py