Programmation de scripts Python dans Global Mapper Pro
23 août 2022Qu'est-ce que Global Mapper Pro ?
Global Mapper Pro , la toute dernière version de Blue Marble Geographics, est un logiciel géospatial complet offrant des fonctionnalités allant de la création de données à l'édition et à l'analyse avancées de nuages de points. Conçue comme une extension du logiciel standard Global Mapper, l'édition Pro met à la disposition des utilisateurs, novices comme experts, une suite d'outils d'analyse géospatiale de pointe. Global Mapper Pro permet notamment d'utiliser le langage de programmation Python pour automatiser les flux de travail et combiner sa puissance avec celle d'outils issus de bibliothèques tierces.
Pour découvrir comment Global Mapper Pro peut vous aider, consultez le blog Blue Marble et les webinaires précédents publiés sur notre chaîne YouTube . Pour tester Global Mapper Pro, téléchargez dès aujourd'hui une version d'essai gratuite de 14 jours !
Qu'est-ce que Python?
Python, l'un des langages de programmation les plus populaires, est un langage interprété facile à apprendre, à lire et à écrire. Grâce à sa popularité en tant que langage open source, il a servi de base à l'automatisation de nombreux flux de travail dans les SIG et d'autres secteurs.
Grâce à l'installation de base de Python, qui inclut une bibliothèque standard complète, les utilisateurs peuvent immédiatement se familiariser avec le langage et commencer à programmer en utilisant les mots-clés, les instructions conditionnelles, les boucles et les opérateurs intégrés. En plus de cette installation de base, il est possible d'installer et d'utiliser des packages et des bibliothèques (ensembles de packages) dans les scripts. La multitude de bibliothèques disponibles permet de les combiner au sein d'un même script Python pour accomplir des tâches ou des flux de travail plus complexes.
Importation de la bibliothèque Global Mapper
Global Mapper Pro contient une bibliothèque de fonctions Python exécutables via le langage de programmation Python. Pour utiliser ces fonctions, Global Mapper Pro doit être installé et sous licence, et Python 3.9 doit être installé. Vous pouvez ajouter une installation de base de Python 3.9 à votre ordinateur via l'option « Téléchargements supplémentaires » du programme d'installation de Global Mapper, ou utiliser une installation existante. Dans ce cas, ajoutez le chemin d'accès à Global Mapper Pro à la variable d'environnement PythonPath.
Comme pour tout package ou bibliothèque Python, Global Mapper doit être importé avant de pouvoir utiliser ses fonctionnalités spécifiques. Utilisez la ligne `import globalmapper` pour importer la bibliothèque de fonctions Python Global Mapper Pro. Souvent, les utilisateurs raccourcissent ce nom en `gm` ( `import globalmapper as gm` ) pour plus de concision lors de l'appel de fonctions dans le script.
Création d'un script Python
Le langage de programmation Python peut être utilisé dans n'importe quel éditeur de texte, environnement de développement intégré (IDE) ou dans l'éditeur de scripts de l'interface utilisateur de Global Mapper Pro. Quel que soit l'outil choisi, vos scripts Python peuvent être enregistrés avec l'extension *.py, ce qui les rend exécutables, et ouverts ultérieurement dans n'importe quel éditeur pour être modifiés.
Lors de la création d'un script dans de nombreux éditeurs de texte, environnements de développement intégrés (IDE) et dans l'éditeur de scripts de Global Mapper Pro, la coloration syntaxique facilite la distinction des différentes parties du script, ce qui le rend plus lisible et compréhensible. Même dans un langage facile à lire, l'ajout de commentaires à un script permet de clarifier le flux de travail ainsi que les différentes sections et lignes. Les commentaires sont particulièrement importants lors du partage d'un script avec d'autres utilisateurs.
La bibliothèque Python Global Mapper est orientée objet : des objets définis contenant des paramètres spécifiques sont transmis à la fonction pour accomplir une tâche. Cela permet de réutiliser des sections de script tout au long d'un flux de travail plus long. Les flux de travail SIG étant principalement axés sur les données, les scripts utilisant la bibliothèque Python Global Mapper manipulent souvent des fichiers de données importés pour traiter, modifier ou extraire de nouvelles données. En accédant aux fonctionnalités de Global Mapper Pro via Python, les utilisateurs peuvent intégrer des outils de bibliothèques Python tierces afin d'exécuter plus efficacement un processus qui serait fastidieux, chronophage, voire quasiment impossible à réaliser via les interfaces de programmes installées.
Exécution d'un script Python
Un script Python créé peut être exécuté depuis un EDI, la ligne de commande ou via l'éditeur de scripts de Global Mapper Pro. Chacune de ces méthodes utilise la bibliothèque de commandes Global Mapper importée, à condition que Global Mapper Pro soit installé et sous licence sur la machine.
L'exécution d'un script Python, généralement via la ligne de commande ou un IDE, ne nécessite pas l'ouverture de Global Mapper. L'exécution du script, que ce soit en sélectionnant l'option correspondante dans un menu ou en indiquant simplement le nom d'un fichier *.py dans la ligne de commande, utilise les fonctionnalités de Global Mapper et les outils des bibliothèques Python tierces en arrière-plan. Les erreurs et messages d'erreur sont consignés dans le fichier ou la fenêtre désignés pendant l'exécution du script.
Un script Python exécuté via l'éditeur de scripts de Global Mapper Pro peut utiliser les couches de données actuellement ouvertes dans l'espace de travail et, inversement, charger les données importées et créées pendant son exécution. Bien que facultative, la case à cocher « Exécuter le script dans le contexte de la vue principale » de la fenêtre de l'éditeur de scripts permet d'afficher les données dans l'interface du programme pendant l'exécution et la finalisation du script. Si cette option n'est pas cochée, l'éditeur de scripts sert d'environnement d'exécution et affiche les erreurs ou messages de journalisation dans la fenêtre « Résultats du script » .
Exemple de script
À titre d'exemple, ce script vérifie la présence de couches de nuages de points ouvertes dans l'interface active de Global Mapper, invite l'utilisateur à charger des données si aucune n'est trouvée, puis traite les données lidar brutes pour créer un modèle numérique de terrain maillé.

Pour utiliser les outils Global Mapper via ce script Python, la bibliothèque Global Mapper est importée sous le nom abrégé gm . Un autre module, tkinter, est également importé dans le script et servira à créer des boîtes de dialogue interactives Windows permettant à l'utilisateur de sélectionner un emplacement pour enregistrer les données générées.
La première action de ce script vérifie l'espace de travail Global Mapper actif afin de déterminer si des couches sont déjà chargées et, le cas échéant, s'il s'agit de couches de nuages de points lidar. À l'aide d'instructions conditionnelles, l'un des deux flux de contrôle est exécuté selon la présence de données. Si aucune couche lidar n'est trouvée, l'utilisateur est invité à sélectionner un fichier lidar à charger.

Une fois les données lidar à utiliser identifiées par le script, le processus commence par la sélection des points et l'appel de la méthode LidarClassifyNoise. Cette méthode élimine le bruit présent dans le fichier de données brutes, comme les bruits d'oiseaux, les reflets ou les anomalies du capteur. La suppression du bruit du nuage de points permet une meilleure classification au fur et à mesure du traitement.

Une fois les points parasites éliminés, le sol est identifié dans le nuage de points grâce à la méthode `LidarClassifyGround` de la bibliothèque Python Global Mapper Pro. Dans cet exemple, les paramètres de traitement par défaut sont utilisés et les points de sol pré-classés sont effacés à l'aide de la classe `GM_ClassifyGroundSetup_t()` , transmise à la méthode `ClassifyGround`.
Les données classifiées et nettoyées sont ensuite filtrées à l'aide de la méthode GetLidarClassFilter . Ce filtre permet d'identifier et de séparer les données du nuage de points en fonction de leur classification. La méthode LidarClassifyGround ayant déjà été appelée, le processus peut être initialisé avec le type GM_LidarClass_Ground , puis appliqué aux données via l' appel SetLidarClassFilter.
L'étape suivante du script identifie les limites géographiques qui serviront à la création et à l'exportation d'un modèle numérique d'élévation. Ces valeurs sont renvoyées dans le système de coordonnées de la couche lidar grâce à un appel à la méthode GetLayerInfo . Dans ce cas précis, la méthode GetLayerInfo est utilisée pour examiner explicitement le paramètre mGlobalRect.

La grille d'altitude est ensuite générée à partir des données lidar filtrées grâce à l' appel à la méthode GenerateElevationGrid . Cette méthode est initialisée à l'aide d'une classe GM_GridGenSetup_t , définie avec la résolution requise, l'algorithme de génération de grille et les paramètres de remplissage des lacunes. Un appel réussi à la méthode GenerateElevationGrid renvoie une nouvelle variable appelée grid_layer représentant la couche de données nouvellement générée.

À partir des limites précédemment identifiées, CalcDistance convertit les unités du système de coordonnées en mètres et utilise ces valeurs pour calculer l'échelle de la résolution d'exportation. Dans cet exemple, les données sont exportées à une résolution d'un mètre, mais cette résolution peut être modifiée à l'aide de la variable pixel_resolution en haut du fichier.
Enfin, l'utilisateur est invité à indiquer le chemin du fichier de sortie via les boîtes de dialogue standard de l'interface tk de Python. La variable `grid_layer` générée précédemment sert ensuite de base à l'exportation d'un fichier MNT. Les détails sont transmis à la méthode `ExportElevation` , qui crée un fichier et l'enregistre sur le disque.
Ressources supplémentaires
Vous trouverez plus d'informations sur la programmation Python avec Global Mapper Pro dans les blogs suivants :
- Python dans Global Mapper Pro
- Exploration d'un script Python dans Global Mapper Pro
- Éditeur de scripts de Global Mapper Pro avec coloration syntaxique
Ces courtes vidéos permettent de démontrer l'utilisation de Python dans Global Mapper Pro :
- Demandez aux experts : Assistance pour les scripts Python
- Programmation de scripts Python dans Global Mapper Pro
- Exploration d'un script Python dans Global Mapper Pro
La bibliothèque de commandes Python Global Mapper est disponible ici : www.bluemarblegeo.com/knowledgebase/global-mapper-python/index.html
Des exemples supplémentaires de scripts Python sont disponibles ici : www.bluemarblegeo.com/knowledgebase/global-mapper-python/sampleCode/DemoMisc.html
Pour utiliser les fonctionnalités de Global Mapper Pro dans vos scripts Python, téléchargez dès aujourd'hui une version d'essai de 14 jours ou achetez une version complète du programme.


