La création d`outils personnalisés pour ArcGIS en langage Python

publicité
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.
Téléchargement