Pygmt

Dans cette documentation je vais explique tout les modules pygmt que j’ai utilisé pour la carte d’altitude et de bathymétrie.

Présentation

Pygmt permet de créer des cartes de tout type grace a une bibliotheque. Ici on se concentrera sur comment utiliser Pygmt créer une carte a partir d’un programme et de la syntaxe python.

Instalation

Le moyen le plus rapide d’installer PyGMT est avec le gestionnaire de packages conda qui s’occupe de la mise en place d’un environnement virtuel, ainsi que de l’installation de GMT et de toutes les dépendances dont dépend PyGMT :

conda create --name pygmt --channel conda-forge pygmt

Pour activé l’environnemment virtuel :

conda activate pygmt

vérifiez que tout fonctionne en exécutant ce qui suit dans un interpréteur Python

import pygmt
pygmt.show_versions()

Dépendances

PyGMT nécessite l’installation des bibliothèques suivantes :

  • numérique (>= 1.21)

  • pandas

  • xarray

  • netCDF4

  • emballage

Voici les dépendances facultatives :

  • IPython : Pour intégrer les chiffres dans les cahiers Jupyter (recommandé).

  • Contextily : Pour récupérer des cartes de tuiles sur Internet.

  • GeoPandas : Pour utiliser et tracer des objets GeoDataFrame.

  • RioXarray : Pour enregistrer des rasters multi-bandes dans des GeoTIFF.

Installation de GMT et d’autres dépendances

Avant d’installer PyGMT, nous devons installer GMT lui-même avec les autres dépendances. Le moyen le plus simple de procéder consiste à utiliser le gestionnaire de packages conda. Nous vous recommandons de travailler dans un environnement virtuel isolé pour éviter les problèmes de versions conflictuelles des dépendances.

Tout d’abord, nous devons configurer conda pour obtenir les packages du canal conda-forge :

conda config --prepend channels conda-forge

Nous pouvons maintenant créer un nouvel environnement virtuel avec Python et toutes nos dépendances installées (nous l’appellerons pygmtmais n’hésitez pas à le changer comme bon vous semble) :

conda create --name pygmt python=3.11 numpy pandas xarray netcdf4 packaging gmt

Activez l’environnement en exécutant ce qui suit ( n’oubliez pas cette étape ! ) :

conda activate pygmt

A partir de maintenant, toutes les commandes auront lieu à l’intérieur de l’environnement virtuel appelé pygmt et n’affecteront pas votre base.

Installation de PyGMT

Cela installe la dernière version stable de PyGMT :

conda install pygmt

Cela met à niveau la version installée de PyGMT pour qu’elle soit à la dernière version stable :

conda update pygmt

Utilisation de pip

Cela installe la dernière version stable de PyPI :

pip install pygmt

Tester votre installation

Afin de tester l’instaltion tester ce code qui affiche une carte globale avec des rivages.

import pygmt
pygmt.show_versions()
fig = pygmt.Figure()
fig.coast(region="g", frame=True, shorelines=1)
fig.show()

Fonction

Class figure

Tout le traçage est géré par la pygmt.Figureclasse et ses méthodes.

pygmt.Figure()

Une figure GMT pour gérer tout les tracés

Doc

Traçage

Tracer des éléments cartographiques

Figure.basemap(*[, région, projection, ...])

Une figure GMT pour gérer tout les tracés

Doc

Figure.coast(*[, région, projection, ...])

Tracez les continents, les rivages, les rivières et les frontières sur des cartes.

Doc

Figure.colorbar(*[, cadre, cmap, position, ...])

Tracez des barres de couleurs sur les figures (notament pour la legende).

Doc

Figure.inset(*[, position, case, projection, ...])

Créez une figure en médaillon à placer dans une figure plus grande.

Doc

Figure.legend([spécification, position, case, région, ...])

Tracez des légendes sur des cartes.

Doc

Figure.logo(*[, région, projection, ...])

Tracez le logo GMT.

Doc

Figure.solar([terminaison, ...])

Tracez les terminateurs de lumière du jour ou les crépuscules.

Doc

Figure.text([fichiers texte, x, y, position, ...])

Tracez ou composez des chaînes de texte de taille, de type de police et d’orientation variables.

Doc

Figure.timestamp([texte, étiquette, ...])

Tracez le logo d’horodatage GMT.

Doc

Tracer des données tabulaires

Figure.contour([données, x, y, z, annotation, ...])

Trace le contour de la table de donnée direct par triangulation

Doc

Figure.histogram(données, *[, horizontal, ...])

Tracez des histogrammes cartésiens.

Doc

Figure.meca(spécification, échelle[, convention, ...])

Tracer les mécanismes focaux.

Doc

Figure.plot([données, x, y, taille, direction, ...])

Tracez des lignes, des polygones et des symboles en 2D.

Doc

Figure.plot3d([données, x, y, z, taille, ...])

Tracez des lignes, des polygones et des symboles en 3D.

Doc

Figure.rose([données, longueur, azimut, secteur, ...])

Tracez des diagrammes en rose des vents ou des histogrammes polaires.

Doc

Figure.ternary(données[, alabel, blabel, ...])

Tracer des diagrammes ternaires.

Doc

Figure.velo([données, vecteur, cadre, cmap, ...])

Tracez les vecteurs de vitesse, les croix, les barres d’anisotropie et les coins.

Doc

Figure.wiggle([données, x, y, z, remplissage positif, ...])

Tracez les anomalies z=f(x,y) le long des pistes.

Doc

Tracer des données raster

Figure.grdcontour(grille, *[, annotation, ...])

Convertissez des grilles ou des images en contours et tracez-les sur des cartes.

Doc

Figure.grdimage(grille, *[, img_out, cadre, ...])

Projetez et tracez des grilles ou des images.

Doc

Figure.grdview(grille, *[, région, ...])

Créez une image en perspective 3D ou un maillage de surface à partir d’une grille.

Doc

Figure.image(fichier image, *[, région, ...])

Placez des images ou des fichiers EPS sur des cartes.

Doc

Figure.tilemap(région[, zoom, source, ...])

Trace une carte de tuiles XYZ.

Doc

Configuration de la mise en page

Figure.set_panel([panneau, étiquette fixe, ...])

Définissez le panneau de sous-parcelle actuel sur lequel tracer.

Doc

Figure.shift_origin([xshift, yshift])

Décaler l’origine du tracé dans les directions x et/ou y.

Doc

Figure.subplot([nrows, ncols, figsize, ...])

Créez des figures de sous-parcelles multi-panneaux.

Doc

Enregistrement et affichage de la figure

Figure.savefig(fname[, transparent, crop, ...])

Enregistrez la figure dans un fichier.

Doc

Figure.show([dpi, largeur, méthode, attente])

Afficher un aperçu de la figure.

Doc

Figure.psconvert(*[, recadrage, gs_option, dpi, ...])

Convertir le(s) fichier(s) [E]PS vers d’autres formats.

Doc

Configuration des paramètres d’affichage

La fonction suivante est fournie directement via le pygmt de niveau supérieur.

set_display([méthode])

Définissez la méthode d’affichage lors de l’appel pygmt.Figure.show.

Doc

Génération de table de palette de couleurs

La fonction suivante est fournie directement via le pygmt de niveau supérieur.

grd2cpt(grille, *[, transparence, cmap, ...])

Créez des tables de palette de couleurs GMT à partir d’un fichier de grille.

Doc

makecpt(*[, transparence, cmap, fond, ...])

Créez des tables de palette de couleurs GMT.

Doc

Traitement de l’information

Opérations sur les données tabulaires

binstats(données, *[, statistique, vide, ...])

Regroupez les données spatiales et déterminez les statistiques par bin.

Doc

blockmean([données, x, y, z, fichier de sortie, espacement, ...])

Bloquer les tables de données moyennes (x, y, z) par estimation moyenne.

Doc

blockmedian([données, x, y, z, fichier de sortie, ...])

Tables de données moyennes de bloc (x, y, z) par estimation médiane.

Doc

blockmode([données, x, y, z, fichier de sortie, espacement, ...])

Tableaux de données de moyenne de bloc (x, y, z) par estimation de mode.

Doc

filter1d(data[, output_type, outfile, end, ...])

Filtrage dans le domaine temporel des tables de données 1-D.

Doc

nearneighbor([données, x, y, z, vide, ...])

Données de table de grille utilisant un algorithme de « voisin le plus proche ».

Doc

project([données, x, y, z, fichier de sortie, azimut, ...])

Projetez des données sur des lignes ou des grands cercles, ou générez des pistes.

Doc

select([données, fichier de sortie, zone_seuil, ...])

Sélectionnez des sous-ensembles de tables de données en fonction de plusieurs critères spatiaux.

Doc

sph2grd(données, *[, outgrid, espacement, région, ...])

Créez des fichiers de grille sphériques en tension de données.

Doc

sphdistance([données, x, y, single_form, ...])

Créez une distance de Voronoi, un nœud ou une grille naturelle du plus proche voisin sur une sphère.

Doc

sphinterpolate(données, *[, grille, espacement, ...])

Créez des fichiers de grille sphériques en tension de données.

Doc

surface([données, x, y, z, convergence, ...])

Données de table de grille utilisant des splines à courbure continue à tension réglable.

Doc

triangulate()

Triangulation de Delaunay ou partitionnement et maillage de Voronoi de données cartésiennes.

Doc

triangulate.regular_grid([données, x, y, z, ...])

Maillage basé sur le triangle de Delaunay de données cartésiennes.

Doc

triangulate.delaunay_triples([données, x, y, ...])

Maillage basé sur le triangle de Delaunay de données cartésiennes.

Doc

xyz2grd([data, x, y, z, duplicate, outgrid, ...])

Créez un fichier de grille à partir des données de la table.

Doc

Opérations sur les données raster

dimfilter(grille, *[, distance, filtre, ...])

Filtrez une grille en divisant le cercle de filtre.

Doc

grd2xyz(grille[, type_sortie, fichier de sortie, ...])

Convertir la grille en table de données.

Doc

grdclip(grille, *[, grille extérieure, région, au-dessus, ...])

Définissez les valeurs d’une grille qui répondent à certains critères sur une nouvelle valeur.

Doc

grdcut(grille, *[, grille extérieure, région, ...])

Extraire une sous-région d’une grille.

Doc

grdfill(grille, *[, mode, grille extérieure, région, ...])

Remplissez les zones vides à partir d’un fichier de grille.

Doc

grdfilter(grille, *[, distance, filtre, ...])

Filtrer une grille dans le domaine spatial (ou temporel).

Doc

grdgradient(grille, *[, azimut, direction, ...])

Calculez la dérivée directionnelle du gradient vectoriel des données.

Doc

grdhisteq()

Effectuer une égalisation d’histogramme pour une grille.

Doc

grdhisteq.equalize_grid(grille, *[, grille, ...])

Effectuer une égalisation d’histogramme pour une grille.

Doc

grdhisteq.compute_bins(grille, *[, ...])

Effectuer une égalisation d’histogramme pour une grille.

Doc

grdlandmask(*[, zone_seuil, résolution, ...])

Créez un fichier de grille avec des valeurs définies pour la terre et l’eau.

Doc

grdproject(grille, *[, centre, espacement, dpi, ...])

Modifiez la projection des données maillées entre géographique et rectangulaire.

Doc

grdsample(grille, *[, grille, espacement, ...])

Modifier l’enregistrement, l’espacement ou les nœuds dans un fichier de grille.

Doc

grdtrack(grille[, points, newcolname, ...])

Exemples de grilles à des emplacements (x,y) spécifiés.

Doc

grdvolume(grille[, type_sortie, fichier de sortie, ...])

Déterminer le volume entre la surface d’une grille et un plan.

Doc

Analyse croisée avec x2sys

x2sys_init(tag, *[, fmtfile, suffixe, force, ...])

Initialisez une nouvelle base de données de pistes x2sys.

Doc

x2sys_cross([pistes, outfile, combinable, ...])

Calculez les croisements entre les fichiers de données de piste.

Doc

Entrée / Sortie

load_dataarray(filename_or_obj, **kwargs)

Ouvrez, chargez en mémoire et fermez un DataArray à partir d’un fichier ou d’un objet semblable à un fichier contenant une seule variable de données.

Doc

GMT par défaut

Opérations sur les valeurs par défaut GMT :

config(*[, COLOR_BACKGROUND, ...])

Définissez les valeurs GMT par défaut globalement ou localement.

Doc

Métadonnées

Obtenir des métadonnées à partir de données tabulaires ou de grille :

GMTDataArrayAccessor(xarray_obj)

Accesseur GMT pour xarray.DataArray.

Doc

info(données, *[, par_colonne, espacement, ...])

Obtenir des informations sur les tables de données.

Doc

grdinfo(grille, *[, per_column, tuiles, ...])

Obtenir des informations sur une grille.

Doc

Divers

which(fname, *[, télécharger, verbeux])

Recherchez le chemin d’accès complet aux fichiers spécifiés.

Doc

test([doctest, verbeux, couverture, chiffres])

Exécutez la suite de tests.

Doc

print_clib_info([déposer])

Imprimer les informations sur la bibliothèque partagée GMT que nous pouvons trouver.

Doc

show_versions([déposer])

Imprimez diverses versions de dépendance qui sont utiles lors de la soumission de rapports de bogue.

Doc

Jeux de données

PyGMT permet d’accéder aux ensembles de données de GMT via le pygmt.datasets module. Ces fonctions téléchargeront automatiquement les ensembles de données lors de leur première utilisation et les stockeront dans le répertoire de données utilisateur de GMT.

datasets.list_sample_data()

Ensembles de données de rapports disponibles pour les tests et exemples de documentation.

Doc

datasets.load_earth_age([résolution, ...])

Chargez les âges de la croûte terrestre sous-marine dans différentes résolutions.

Doc

datasets.load_earth_free_air_anomaly([...])

Chargez une grille Earth Free-Air Anomaly dans différentes résolutions.

Doc

datasets.load_earth_geoid([résolution, ...])

Chargez le géoïde terrestre mondial EGM2008 dans différentes résolutions.

Doc

datasets.load_earth_magnetic_anomaly([...])

Chargez une grille d’anomalies magnétiques terrestres dans différentes résolutions.

Doc

datasets.load_earth_mask([résolution, ...])

Chargez le masque GSHHG Global Earth dans différentes résolutions.

Doc

datasets.load_earth_relief([résolution, ...])

Charger les grilles de relief terrestre (topographie et bathymétrie) dans différentes résolutions.

Doc

datasets.load_earth_vertical_gravity_gradient([...])

Chargez le Gradient Gravité Vertical Terre Global IGPP dans différentes résolutions.

Doc

datasets.load_sample_data(nom)

Chargez un exemple d’ensemble de données à partir du serveur GMT.

Doc

De plus, il existe également une fonction spéciale pour charger les cartes de tuiles XYZ via le contexte à utiliser comme cartes de base.

datasets.load_tile_map(région[, zoom, ...])

Chargez une carte de tuiles raster géoréférencées à partir de fournisseurs de tuiles XYZ.

Doc

Des exceptions

Toutes les exceptions personnalisées sont dérivées de pygmt.exceptions.GMTError.

exceptions.GMTError

Classe de base pour toutes les erreurs liées à GMT.

Doc

exceptions.GMTInvalidInput

Levé lorsque l’entrée d’une fonction/méthode est invalide.

Doc

exceptions.GMTVersionError

Déclenché lorsqu’une version incompatible de GMT est utilisée.

Doc

exceptions.GMTOSError

Système d’exploitation non pris en charge.

Doc

exceptions.GMTCLibError

Erreur rencontrée lors de l’exécution d’une fonction à partir de la bibliothèque partagée GMT.

Doc

exceptions.GMTCLibNoSessionError

Tentative d’accès à l’API GMT sans session GMT actuellement ouverte.

Doc

exceptions.GMTCLibNotFoundError

Impossible de trouver la bibliothèque partagée GMT.

Doc