pygmt.grd2xyz

pygmt.grd2xyz(grid, output_type='pandas', outfile=None, \*, cstyle=None,
region=None, verbose=None, weight=None, convention=None, binary=None,
nodata=None, coltypes=None, header=None, outcols=None, skiprows=None, \**kwargs)

Convertir la grille en table de données.

Lit une grille et génère des triplets xyz sous forme de fichier numpy.ndarray, pandas.DataFrame ou ASCII.

Paramètre

  • grid ( str ou xarray.DataArray ) – Le nom de fichier de la grille d’entrée ou de la grille chargée en tant que xarray.DataArray. C’est le seul paramètre obligatoire.

  • output_type ( str ) – Déterminez le format dans lequel les données xyz seront renvoyées [la valeur par défaut est pandas] :
    • numpy - numpy.ndarray

    • pandas - pandas.DataFrame

    • file - Fichier ASCII (nécessite outfile)

  • outfile ( str ) – Le nom de fichier pour le fichier ASCII de sortie.

  • cstyle ( str ) – [ f | i ]. Remplacez les coordonnées x et y en sortie par les numéros de colonne et de ligne correspondants. Ceux-ci commencent à 0 (comptage de style C); ajouter f pour commencer à 1 (comptage de style Fortran). Vous pouvez également ajouter i pour écrire uniquement les deux colonnes index et z , où index est l’indexation 1-D utilisée par GMT lorsqu’il fait référence aux nœuds de la grille.

  • région ( str ou liste ) – xmin/xmax/ymin/ymax [ +r ][ +u unité ]. Spécifiez la région d’intérêt. L’ajout region sélectionnera une sous-section de la grille. Si cette sous-section dépasse les limites de la grille, seule la région commune sera sortie.

  • verbose ( bool ou str ) – Sélectionnez le niveau de verbosité [la valeur par défaut est w ], qui module les messages écrits sur stderr. Choisissez parmi 7 niveaux de verbosité :
    • q - Des messages d’erreur silencieux, même fatals, ne sont pas générés

    • e - Messages d’erreur uniquement

    • w - Avertissements [par défaut]

    • t - Timings (temps d’exécution des rapports pour les algorithmes chronophages)

    • i - Messages d’information (comme verbose=True)

    • c - Avertissements de compatibilité

    • d - Messages de débogage

  • weight (str) – [a[+uunit]|weight].Écrivez x,y,z,w , où w est le poids fourni (ou 1 s’il n’est pas fourni) [par défaut, écrit x,y,z uniquement]. Choisissez a pour calculer des poids égaux à la surface que chaque nœud représente. Pour les grilles cartésiennes, il s’agit simplement du produit des incréments x et y (sauf pour les grilles enregistrées sur la grille de tous les côtés [demi] et coins [quart]). Pour les grilles géographiques, nous utilisons par défaut une unité de longueur de k . Changez cela en ajoutant +u unité. Pour de telles grilles, la zone varie avec la latitude et voit également des cas particuliers pour les dispositions enregistrées sur les lignes de grille sur les côtés, les coins et les pôles.

  • convention ( str ) – [ drapeaux ]. Écrivez un tableau ASCII [ou binaire] à 1 colonne. La sortie sera organisée selon la convention d’ordre spécifiée contenue dans flags . Si les données doivent être écrites par lignes, faites commencer les drapeaux par T (op) si la première ligne est y = ymax ou B (ottom) si la première ligne est y = ymin. Ensuite, ajoutez L ou R pour indiquer que le premier élément doit commencer à l’extrémité gauche ou droite de la ligne. De même pour les formats de colonnecommencez par L ou R pour positionner la première colonne, puis ajoutez T ou B pour positionner le premier élément dans une rangée. Pour les grilles enregistrées sur le quadrillagesi la grille est périodique dans x mais que les données écrites ne doivent pas contenir la colonne (redondante) à x = xmax, ajoutez x . Pour la grille périodique en y, sautez l’écriture de la ligne redondante à y = ymax en ajoutant y . Si l’ordre des octets doit être permuté, ajoutez w . Sélectionnez l’un des nombreux types de données (tous binaires sauf a ):
    • a représentation ASCII d’un seul élément par enregistrement

    • c int8_t, caractère 1 octet signé

    • u uint8_t, caractère 1 octet non signé

    • h int16_t, entier court de 2 octets

    • H uint16_t, entier court non signé de 2 octets

    • i int32_t, entier de 4 octets

    • I uint32_t, entier non signé de 4 octets

    • l int64_t, entier long (8 octets)

    • L uint64_t, entier long non signé (8 octets)

    • f 4 octets à virgule flottante simple précision

    • d Double précision à virgule flottante de 8 octets

    Le format par défaut est l’orientation des lignes de balayage des nombres ASCII : TLa .

  • binary ( bool ou str ) – I | o [ ncols ][ type ][ w ][ +l | b ]. Sélectionnez l’entrée binaire native (en utilisant binary= »i ») ou la sortie (en utilisant binary= »o »), où ncols est le nombre de colonnes de données de type , qui doit être l’une des suivantes :
    • c - int8_t (caractère signé 1 octet)

    • u - uint8_t (caractère non signé de 1 octet)

    • h - int16_t (entier signé sur 2 octets)

    • H - uint16_t (entier non signé sur 2 octets)

    • i - int32_t (entier signé sur 4 octets)

    • I - uint32_t (entier non signé de 4 octets)

    • l - int64_t (entier signé sur 8 octets)

    • L - uint64_t (entier non signé de 8 octets)

    • f - Flottant simple précision de 4 octets

    • d - Flottant double précision de 8 octets

    • x - utilisé pour ignorer les ncols n’importe où dans l’enregistrement

    Pour les enregistrements avec des types mixtes, ajoutez des combinaisons supplémentaires séparées par des virgules de type ncols (sans espace). Les modificateurs suivants sont pris en charge :

    • w après n’importe quel élément pour forcer l’échange d’octets.

    • +l | b pour indiquer que l’ensemble du fichier de données doit être lu respectivement en petit ou gros boutien.

  • nodata ( str ) – I | o aucune donnée . Remplacez les valeurs spécifiques par NaN (pour les données tabulaires). Par exemple, nodata= »-9999 » remplacera toutes les valeurs égales à -9999 par NaN lors de l’entrée et toutes les valeurs NaN par -9999 lors de la sortie. Ajoutez i à la valeur nodata pour les colonnes d’entrée uniquement. Ajoutez o à la valeur nodata pour les colonnes de sortie uniquement.

  • coltypes ( str ) – [ I | o ] colinfo . Spécifiez les types de données des colonnes d’entrée et/ou de sortie (données temporelles ou géographiques).

  • header (str) – [i|o][n][+c][+d][+msegheader][+rremark][+ttitle]. Spécifiez que les fichiers d’entrée et/ou de sortie ont n enregistrements d’en-tête [la valeur par défaut est 0]. Préfixez i si seule l’entrée principale doit avoir des enregistrements d’en-tête. Préfixez o pour contrôler l’écriture des enregistrements d’en-tête, avec les modificateurs suivants pris en charge :
    • +d pour supprimer les enregistrements d’en-tête existants.

    • +c pour ajouter un commentaire d’en-tête avec des noms de colonne à la sortie [par défaut, aucun nom de colonne].

    • +m pour ajouter un en-tête de segment segheader à la sortie après le bloc d’en-tête [par défaut, pas d’en-tête de segment].

    • +r pour ajouter un commentaire de remarque à la sortie [par défaut, aucun commentaire]. La chaîne de remarque peut contenir n pour indiquer des sauts de ligne.

    • +t pour ajouter un commentaire de titre à la sortie [par défaut, pas de titre]. La chaîne de titre peut contenir n pour indiquer des sauts de ligne.

  • outcols ( str ou tableau 1-D ) – cols [,…][, t [ mot ]]. Spécifiez les colonnes de données pour la sortie principale dans un ordre arbitraire. Les colonnes peuvent être répétées et les colonnes non répertoriées seront ignorées [Par défaut, toutes les colonnes sont écrites dans l’ordre, en commençant par la première (c’est-à-dire la colonne 0)].
    • Pour un tableau 1-D : spécifiez les colonnes individuelles dans l’ordre de sortie (par exemple, outcols=[1,0] pour la 2ème colonne suivie de la 1ère colonne).

    • Pour str: spécifiez des colonnes individuelles ou des plages de colonnes au format start [: inc ]: stop , où inc est par défaut égal à 1 s’il n’est pas spécifié, avec des colonnes et/ou des plages de colonnes séparées par des virgules (par exemple, outcols= »0:2,4 » pour afficher les trois premières colonnes suivies du 5ème colonne). Pour écrire à partir d’une colonne donnée jusqu’à la fin de l’enregistrement, laissez off stop lors de la spécification de la plage de colonnes. Pour écrire du texte de fin, ajoutez la colonne t . Ajoutez le numéro de mot à t pour n’écrire qu’un seul mot à partir du texte de fin. Au lieu de spécifier des colonnes, utilisez outcols= »n » pour lire simplement l’entrée numérique et ignorer le texte de fin. Remarque : Si incols est également utilisé alors les colonnes indiquées pour outcols correspondre à la commande après que la incols sélection a eu lieu.

  • skiprows ( bool ou str ) – [ colonnes ][ +a ][ +r ]. Supprimer la sortie pour les enregistrements dont la valeur z est égale à NaN [la valeur par défaut génère tous les enregistrements]. Éventuellement, fournissez une liste séparée par des virgules de toutes les colonnes ou plages de colonnes à prendre en compte pour ce test NaN [la valeur par défaut ne prend en compte que la troisième colonne de données (c’est-à-dire, cols = 2 )]. Les plages de colonnes doivent être données au format start [: inc ]: stop , où inc est par défaut égal à 1 s’il n’est pas spécifié. Les modificateurs suivants sont pris en charge :
    • +r pour inverser la suppression, c’est-à-dire ne sortir que les enregistrements dont la valeur z est égale à NaN.

    • +a pour supprimer la sortie de l’enregistrement si une ou plusieurs des colonnes sont égales à NaN [la valeur par défaut ignore l’enregistrement uniquement si les valeurs de toutes les colonnes spécifiées sont égales à NaN].

Retour

  • ret ( pandas.DataFrame ou numpy.ndarray ou None ) – Le type de retour dépend de outfile et output_type:
    • Aucun si outfile est défini (la sortie sera stockée dans le fichier défini par outfile)

    • pandas.DataFrame ou numpy.ndarray si outfile n’est pas défini (selon output_type)

Exemple

import pygmt
# Load a grid of @earth_relief_30m data, with an x-range of 10 to 30,
# and a y-range of 15 to 25
grid = pygmt.datasets.load_earth_relief(
    resolution="30m", region=[10, 30, 15, 25]
)
# Create a pandas DataFrame with the xyz data from an input grid
xyz_dataframe = pygmt.grd2xyz(grid=grid, output_type="pandas")
xyz_dataframe.head(n=2)
    lon   lat  elevation
0  10.0  25.0      863.0
1  10.5  25.0      985.5