La création d’outils personnalisés pour ArcGIS en langage Python : une application aux zones viticoles d’AOC Alsace Auteur : Maxime FAYE : [email protected] – [email protected] Association des viticulteurs d’Alsace 12 Avenue de la Foire aux Vins 68000 Colmar Chambre d’Agriculture de Région Alsace, site du Haut-Rhin 11 Rue Jean Mermoz 68127 Sainte-Croix-en-Plaine Thématique : Agriculture Logiciels Esri : ArcGIS Public visé : Tout public Mots-clés : langage Python, ArcPy, viticulture, cadastre, AOC Résumé de la communication : Le langage Python est un langage de programmation, très simple à prendre en main grâce ses conventions de syntaxe peu contraignantes et par l’utilisation facile des variables qu’il emploie. Face à la demande de projets de plus en plus ambitieux, la conception personnalisée d’outils à objectifs précis dans ArcGIS avec Python devient un avantage non négligeable, notamment en gain de temps comme le démontre ce projet de viticulture en Alsace. Introduction L’Alsace est une grande région viticole française, spécialisée notamment dans le vin blanc qui représente 90% de la production régionale. La production totale alsacienne représente 18% de la production de vins blancs d’appellation d’origine contrôlée (AOC) à l’échelle de la France. La totalité de la production viticole alsacienne s’élève à 1,15 millions d’hectolitre1, soit environ 150 millions de bouteilles. La production viticole en Alsace constitue donc un enjeu régional d’envergure. Mais les données cartographiques manquent, alors que les cadastres alsaciens ont été numérisés et géoréférencés pour la première fois en 2013 (Bas-Rhin) et 2014 (Haut-Rhin). Ce projet a pour but d’exploiter ces cadastres en faisant correspondre les parcelles de vignobles d’AOC avec celles des cadastres. Croiser ces informations avec de nouvelles (occupation du sol, zones naturelles, et cætera…) permet de connaître précisément l’état actuel des vignobles alsaciens et leur expansion territoriale potentielle ou, au contraire, les zones protégées à préserver. Mise en forme des données Les données de base sont les bases de données cadastrales produites par les Conseils Départementaux d’une part, et d’autre part les contours de zone d’AOC tracés par l’INAO (Institut National de l’Origine et de la Qualité) et numérisés par l’Association des Viticulteurs d’Alsace (AVA). Pour pouvoir appliquer des outils afin d’automatiser les processus de mise à jour de la base de données parcellaire des zones d’AOC, il faut d’abord procéder à une mise en forme manuelle des données. Il faut faire coïncider les limites des parcelles cadastrales avec les contours de zones, quand cela est possible. Pour être sûr de l’exacte superposition des parcelles, les parcelles cadastrales se trouvant à l’intérieur des contours de zone sont sélectionnées et exportées vers un nouveau fichier de forme. Les parcelles à cheval sur le contour sont redécoupées. Le résultat est alors une couche contenant les parcelles cadastrales correspondant à la zone d’AOC. Conception d’outils d’automatisation Le logiciel ArcMap nous propose d’importer des scripts au sein d’une boîte à outils personnalisée. Les scripts sont rédigés en Python, un langage de programmation. Ce langage fait appel à des outils de base et peut employer des outils supplémentaires issus de « modules » contenant des outils plus performants. Par exemple, le module « os » contient tous les outils nécessaires à la navigation dans l’arborescence des dossiers et fichiers. Esri a développé son propre module nommé « ArcPy ». Ce module contient tous les outils de base existant dans ArcMap, et permet de les appeler autant de fois que nécessaire dans un simple script Python. La conception d’un outil personnalisé rédigé en Python permet de créer un outil qui est une recombinaison de plusieurs outils d’ArcPy, lui donnant un rôle unique et pouvant être beaucoup plus puissant qu’un outil de base. Dans le cadre de ce projet, ce sont trois outils spécifiques qui ont été développés, et un autre a été créé pour l’export d’un atlas cartographique au format PDF, mais peut être utilisé dans n’importe quel autre cadre. Le premier est un outil de découpe du cadastre selon les communes dans le cas où le cadastre est publié d’un bloc à l’échelle départementale. L’outil recherche dans l’identifiant des parcelles le bloc correspondant au code de la commune, interprète ce code comme un nom à partir d’une liste 1 Chiffres du Conseil Interprofessionnel des Vins d’Alsace (CIVA) de correspondances code-nom, et extrait les parcelles dans de nouveaux fichiers de formes, commune par commune. Le deuxième exploite la mise en forme des données initiales. Il s’agit d’un outil de listage. L’outil analyse les parcelles du cadastre communal, celles du fichier de formes produit lors de la mise en forme et établit deux listes qu’il va exporter dans deux fichiers texte différents à partir des identifiants des parcelles : une liste des parcelles en zone d’AOC, et une autre pour les parcelles hors zone d’AOC. Ces listes seront exploitées pour l’outil de mise à jour. Le troisième est l’outil de mise à jour. Lorsqu’un nouveau cadastre est publié, cet outil extrait les listes d’identifiants des parcelles et procède à une sélection des parcelles du nouveau cadastre en fonction de ces listes et de l’ancien fichier issu de la mise en forme, devenu obsolète. Il précise également quelle sont les nouvelles parcelles créées, issues d’un potentiel redécoupage cadastral. Au total, ce seul outil exploite à 30 reprises un outil de base d’ArcMap, ce qui rend compte de sa puissance. Le quatrième est un outil d’export d’atlas cartographique. Après la phase de conception cartographique faisant suite à l’exploitation des données produites, il permet de créer facilement un atlas au format PDF. Cet outil peut être utilisé pour n’importe quel autre atlas cartographique. Conclusion Ce projet permettra à l’AVA et à la Chambre d’Agriculture de Région d’Alsace d’exploiter les mises à jour d’un cadastre sitôt que celui-ci est publié par un Conseil Départemental. Plutôt que de procéder à une mise à jour manuellement en utilisant les outils basiques à plusieurs reprises pour chacune des 119 communes viticoles que compte l’Alsace, il suffit de lancer un seul outil pour chaque commune. La conception d’outils en Python est donc un avantage non négligeable qui nécessite un temps de développement plus ou moins long, mais qui permet un gain de temps à long terme non moins négligeable. Il permet de créer des outils qui répondent à des objectifs précis. Cela qui garantit à la fois une facilité et une grande efficacité d’emploi, mais également un avantage exclusif pour l’utilisateur, l’outil personnalisé répondant à des besoins très spécifiques. Il peut faire la différence sur la rapidité de l’exécution d’une commande ou de la réalisation d’un projet.