manuel:programmation
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
manuel:programmation [//04/03/2023 12:04//] – saraiva | manuel:programmation [//25/09/2023 23:40//] (Version actuelle) – [Programmation et SIG : Synopsis] joliveau | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===== Programmation et SIG : Synopsis | + | ===== Programmation et SIG : un aperçu |
- | **Synthèse - Programmation et SIG** | + | ==== Synthèse - Programmation et SIG ==== |
L' | L' | ||
Ligne 14: | Ligne 14: | ||
Voici quelques exemples de comment utiliser la programmation et l’automatisation dans le monde de SIG. | Voici quelques exemples de comment utiliser la programmation et l’automatisation dans le monde de SIG. | ||
- | **Model Builder** | + | ==== Model Builder |
Pour accéder au ModelBuilder il faut cliquer sur l’onglet « Analysis » et chercher dans l’espace « Geoprocessing » son icon. Une fois cliqué sur l’icon, un nouvel onglet apparaitra. | Pour accéder au ModelBuilder il faut cliquer sur l’onglet « Analysis » et chercher dans l’espace « Geoprocessing » son icon. Une fois cliqué sur l’icon, un nouvel onglet apparaitra. | ||
Ligne 43: | Ligne 43: | ||
- Iterate Workspaces est Itérer les espaces de travail. | - Iterate Workspaces est Itérer les espaces de travail. | ||
- | Comme Itérateurs on a beaucoup d’options et c’est possible d’utiliser des itérations plus connues comme For et While mais aussi des itérations liées aux entités du monde SIG. Il est possible de réaliser une itération par rapport à table attributaire, | + | Comme Itérateurs on a beaucoup d’options et il est possible d’utiliser des itérations plus connues comme For et While mais aussi des itérations liées aux entités du monde SIG. Il est possible de réaliser une itération par rapport à table attributaire, |
{{ : | {{ : | ||
Ligne 49: | Ligne 49: | ||
On peut aussi réaliser des itérations par rapport aux champs d’une couche présents dans l’espace Contenu avec l’itérateur « Iterate Fields », ça permet de les filtrer par type (Texte, Réel, Court, Long, étc) et aussi de les sélectionner par nom. À travers l’itérateur « Iterate Fields Values », on peut aller plus loin et réaliser des itérations à propos des valeurs de chaque champ. | On peut aussi réaliser des itérations par rapport aux champs d’une couche présents dans l’espace Contenu avec l’itérateur « Iterate Fields », ça permet de les filtrer par type (Texte, Réel, Court, Long, étc) et aussi de les sélectionner par nom. À travers l’itérateur « Iterate Fields Values », on peut aller plus loin et réaliser des itérations à propos des valeurs de chaque champ. | ||
- | L’itérateur « Iterate Multivalue » est capable d’itérer des plusieurs classes d’entités dedans différents fichiers geodatabase. Cet itérateur va parcourir chaque classe d’entité et réaliser une action sur elle. Dans l’image suivante on peut voir que chaque classe d’entité (InputFC1, InputFC2, InputFC3) sera projeter | + | L’itérateur « Iterate Multivalue » est capable d’itérer des plusieurs classes d’entités dedans différents fichiers geodatabase. Cet itérateur va parcourir chaque classe d’entité et réaliser une action sur elle. Dans l’image suivante on peut voir que chaque classe d’entité (InputFC1, InputFC2, InputFC3) sera projetée |
{{ : | {{ : | ||
Ligne 62: | Ligne 62: | ||
- « *Grand » - on filtre tous les entités qui finissent par « Grand », sans considérer l’extension du fichier. | - « *Grand » - on filtre tous les entités qui finissent par « Grand », sans considérer l’extension du fichier. | ||
- | Dans l’image suivante on peut trouver un exemple | + | Dans l’image suivante on peut trouver un exemple |
{{ : | {{ : | ||
Source : ([[https:// | Source : ([[https:// | ||
- | L’itérateur « Iterate Files » permet de travailler avec des fichiers | + | L’itérateur « Iterate Files » permet de travailler avec des fichiers |
{{ : | {{ : | ||
Ligne 81: | Ligne 81: | ||
- Pour consulter tous les outils possibles sur ModelBuilder : https:// | - Pour consulter tous les outils possibles sur ModelBuilder : https:// | ||
- | **GeoPandas** | + | ==== GeoPandas |
La première chose à faire avant d’utiliser les commandes de la librairie GeoPandas est l’installation et pour la faire il faut savoir quelle plateforme IDE vous utilisez (Jupyter Notebook, Google Colab, Anaconda, etc). Dans tout le cas la page de documentation de GeoPandas fourni des consignes comment faire son installation : https:// | La première chose à faire avant d’utiliser les commandes de la librairie GeoPandas est l’installation et pour la faire il faut savoir quelle plateforme IDE vous utilisez (Jupyter Notebook, Google Colab, Anaconda, etc). Dans tout le cas la page de documentation de GeoPandas fourni des consignes comment faire son installation : https:// | ||
Ligne 91: | Ligne 91: | ||
{{ : | {{ : | ||
- | Une fois installé, il faut importer cette librairie en écrivant « import geopandas ». Ensuite on peut finalement commencer à utiliser les commandes du GeoPandas. Cette librairie permet de travailler avec les fichiers du type GeoPackage, GeoJSON et Shapefile et tous les autres types contenant une table attributaire et une geometrie. Dans l’image on voit qu’autres librairies ont étés installés, c’est normal parce qu’on aura besoin pour la séquence du tutoriel. | + | Une fois installé, il faut importer cette librairie en écrivant « import geopandas ». Ensuite on peut finalement commencer à utiliser les commandes du GeoPandas. Cette librairie permet de travailler avec les fichiers du type GeoPackage, GeoJSON et Shapefile et tous les autres types contenant une table attributaire et une geometrie. Dans l’image on voit que d’autres librairies ont étés installés, c’est normal parce qu’on aura besoin pour la séquence du tutoriel. |
{{ : | {{ : | ||
- | Pour lire des fichiers il faut utiliser la commande « geopandas.read_file() » et ajouter | + | Pour lire des fichiers il faut utiliser la commande « geopandas.read_file() » et y ajouter |
{{ : | {{ : | ||
Ligne 107: | Ligne 107: | ||
{{ : | {{ : | ||
- | La commande to_file() sert à deux possibilités, | + | La commande to_file() sert à deux possibilités, |
{{ : | {{ : | ||
Ligne 121: | Ligne 121: | ||
{{ : | {{ : | ||
- | Comme GeoPandas est une sous-classe de Pandas on peut utiliser | + | Comme GeoPandas est une sous-classe de Pandas on peut utiliser |
{{ : | {{ : | ||
Ligne 129: | Ligne 129: | ||
{{ : | {{ : | ||
- | D’autres fonctions et commandes sont possible avec la librairie GeoPandas et on peut les trouver sur son page de Documentation (Lien : https:// | + | D’autres fonctions et commandes sont possible avec la librairie GeoPandas et on peut les trouver sur son page de Documentation (Lien : https:// |
- | **GDAL/OGR** | + | ==== GDAL/ |
- | A travers la librairie GDAL/OGR on peut travailler avec des fichiers vectoriels. Il faut utiliser OGR. Avant de commencer il faut dire que la librairie OGR n’est pas si « user friendly » que GeoPandas et elle travaille | + | A travers la librairie GDAL/OGR on peut travailler avec des fichiers vectoriels. Il faut utiliser OGR. Avant de commencer il faut dire que la librairie OGR n’est pas si « user friendly » que GeoPandas et elle travaille |
L’importation est assez simple. | L’importation est assez simple. | ||
Ligne 159: | Ligne 159: | ||
{{ : | {{ : | ||
- | La surface est déterminé | + | La surface est déterminée |
{{ : | {{ : | ||
Ligne 202: | Ligne 202: | ||
Une fois crées les fichiers des analyses comme slope, hillshade ou aspect, on peut les ouvrir sur QGIS ou ArcGIS PRO. Cependant il faut fermer tous les fenêtres Jupyter Notebook, puisque les fichiers ne sont plus connectés à la plateforme python. | Une fois crées les fichiers des analyses comme slope, hillshade ou aspect, on peut les ouvrir sur QGIS ou ArcGIS PRO. Cependant il faut fermer tous les fenêtres Jupyter Notebook, puisque les fichiers ne sont plus connectés à la plateforme python. | ||
- | La librairie GDAL/OGR contient plusieurs fonctions qui peuvent être utilisé avec fichier vectoriels et rasters, et pour les découvrir il faut consulter la page de documentation sur le lien suivant https:// | ||
- | **Rasterio** | + | La librairie GDAL/OGR contient plusieurs fonctions qui peuvent être utilisé avec fichier vectoriels et rasters, et pour les découvrir il faut consulter la page de documentation sur le lien suivant https:// |
- | Comme pour la librairie GeoPandas, il faut installer la librairie Rasterio. Pour en faire on doit écrire seulement « !pip install rasterio -q ». Pour quelques problèmes d’installation qui peuvent apparaître, | + | ==== Rasterio ==== |
+ | |||
+ | Comme pour la librairie GeoPandas, il faut installer la librairie Rasterio. Pour en faire on doit écrire seulement « !pip install rasterio -q ». Pour quelques problèmes d’installation qui peuvent apparaître, | ||
+ | |||
+ | {{ : | ||
Ensuite, on installe la librairie à travers la commande import, comme dans l’image suivante. On importe aussi la fonction plot de Rasterio pour nous aider dans la visualisation des rasters. | Ensuite, on installe la librairie à travers la commande import, comme dans l’image suivante. On importe aussi la fonction plot de Rasterio pour nous aider dans la visualisation des rasters. | ||
+ | |||
+ | {{ : | ||
- | Après l’installation et l’importation, | + | Après l’installation et l’importation, |
+ | |||
+ | {{ : | ||
Pour savoir les propriétés du raster, la fonction « .meta » est la solution. A travers d’elle on a accès aux informations metadata du fichier comme : driver (format du raster), dtype (type de espace du raster), nodata (présence de nodata), width (largeur du raster), height (hauteur du raster), count (nombre de bands), crs (info par rapport au système des coordonnées), | Pour savoir les propriétés du raster, la fonction « .meta » est la solution. A travers d’elle on a accès aux informations metadata du fichier comme : driver (format du raster), dtype (type de espace du raster), nodata (présence de nodata), width (largeur du raster), height (hauteur du raster), count (nombre de bands), crs (info par rapport au système des coordonnées), | ||
+ | |||
+ | {{ : | ||
La visualisation de l’image fonctionne en utilisant la fonction « plot.show(variable qui stock l’ouverture) ». On peut visualiser l’image dans une graphe qui utilise les coordonnées longitude et latitude comme axis x et y, respectivement. | La visualisation de l’image fonctionne en utilisant la fonction « plot.show(variable qui stock l’ouverture) ». On peut visualiser l’image dans une graphe qui utilise les coordonnées longitude et latitude comme axis x et y, respectivement. | ||
+ | |||
+ | {{ : | ||
- | Comme exemple d’application on va voir comment réaliser une extraction par masque. Pour ce but il faut réaliser trois étapes avant. La premiere | + | Comme exemple d’application on va voir comment réaliser une extraction par masque. Pour ce but il faut réaliser trois étapes avant. La première |
+ | |||
+ | {{ : | ||
- | On utilise geopandas.read_file() pour ajouter la couche de la ville de Lyon. Cette couche est en format *.shp. On va convertir le format en exportant sous le format *.geojson et ensuite on va stocker la couche résultante dans la variable « couper » parce c’est elle qui servira comme masque. Ensuite il faut qu’on extraie les coordonnées du fichier geojson, on utilise la fonction json.loads() et on défine que les coordonnées sont dedans « features » et « geometry » dans la structure du fichier geojson. Les coordonnées seront stockées dans la variable coords. | + | On utilise geopandas.read_file() pour ajouter la couche de la ville de Lyon. Cette couche est en format *.shp. On va convertir le format en exportant sous le format *.geojson et ensuite on va stocker la couche résultante dans la variable « couper » parce c’est elle qui servira comme masque. Ensuite il faut qu’on extraie les coordonnées du fichier geojson, on utilise la fonction json.loads() et on défine que les coordonnées sont dedans « features » et « geometry » dans la structure du fichier geojson. Les coordonnées seront stockées dans la variable |
+ | |||
+ | {{ : | ||
+ | |||
+ | {{ : | ||
Comme on peut voir dans l’image suivante les coordonnées ont été bien stockées dans la variable « coords ». Cependant, il faut remarquer qu’elles sont encore dans une structure du format json. | Comme on peut voir dans l’image suivante les coordonnées ont été bien stockées dans la variable « coords ». Cependant, il faut remarquer qu’elles sont encore dans une structure du format json. | ||
+ | |||
+ | {{ : | ||
Avec toutes les préparations finies, on peut finalement appliquer la fonction « mask » de rasterio. Il faut qu’on donne comme arguments la variable qui stocke le raster (image), la variable contenant les coordonnées (coords) et qu’on écrire « crops = True » (cet arguments permet de couper l’image). On va stocker le resultat dans deux variables : masque_img qui va stocker l’image coupé et masque_transform qui va strocker les information par rapport à transform (une information de metadata). | Avec toutes les préparations finies, on peut finalement appliquer la fonction « mask » de rasterio. Il faut qu’on donne comme arguments la variable qui stocke le raster (image), la variable contenant les coordonnées (coords) et qu’on écrire « crops = True » (cet arguments permet de couper l’image). On va stocker le resultat dans deux variables : masque_img qui va stocker l’image coupé et masque_transform qui va strocker les information par rapport à transform (une information de metadata). | ||
Ensuite, on va mettre à jour les informations de metadata qu’on a copié dans la variable « masque_meta ». Pour finir, on enregistre le fichier resultant, comme on a donné seulement le nom du fichier, il sera enregistré dans le même chemin du fichier Jupyter Notebook. Le « w » sert à définir qu’il s’agit d’une création de fichier et il vient de la mot anglais « write ». | Ensuite, on va mettre à jour les informations de metadata qu’on a copié dans la variable « masque_meta ». Pour finir, on enregistre le fichier resultant, comme on a donné seulement le nom du fichier, il sera enregistré dans le même chemin du fichier Jupyter Notebook. Le « w » sert à définir qu’il s’agit d’une création de fichier et il vient de la mot anglais « write ». | ||
+ | |||
+ | {{ : | ||
On ouvre le fichier avec la fonction « rasterio.open() » et ensuite on utilise « plot » pour visualiser le résultat final. | On ouvre le fichier avec la fonction « rasterio.open() » et ensuite on utilise « plot » pour visualiser le résultat final. | ||
+ | |||
+ | {{ : | ||
On vérifie aussi les informations metadata à travers la commande « .meta ». On peut voir que les informations ont été bien mis à jour. | On vérifie aussi les informations metadata à travers la commande « .meta ». On peut voir que les informations ont été bien mis à jour. | ||
+ | |||
+ | {{ : | ||
- | La librairie Rasterio permet de réaliser diverses fonctions et ainsi comme la librairie GeoPandas, elle a une page de documentation contenant tous ses fonctions et aussi l’explication des arguments nécessaires. Le lien de la page est le suivant https:// | + | La librairie Rasterio permet de réaliser diverses fonctions et ainsi comme la librairie GeoPandas, elle a une page de documentation contenant tous ses fonctions et aussi l’explication des arguments nécessaires. Le lien de la page est le suivant https:// |
Matheus Gimenez Saraiva - 2022/2023 | Matheus Gimenez Saraiva - 2022/2023 | ||
manuel/programmation.1677927841.txt.gz · Dernière modification : //04/03/2023 12:04// de saraiva