pygmt.grdfilter

pygmt.grdfilter(grid, \*, distance=None, filter=None, outgrid=None,
spacing=None, nans=None, region=None, toggle=None, verbose=None,
coltypes=None, registration=None, \**kwargs)

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

Filtrez un fichier de grille dans le domaine temporel à l’aide de l’un des filtres isotropes ou rectangulaires à convolution ou sans convolution sélectionnés et calculez les distances à l’aide de géométries cartésiennes ou sphériques. Le fichier de grille de sortie peut éventuellement être généré en tant que sous-région de l’entrée (via region) et/ou avec un nouvel incrément (via spacing) ou un nouvel enregistrement (via toggle). De cette façon, on peut avoir un « espace supplémentaire » dans les données d’entrée afin que les bords ne soient pas utilisés et que la sortie puisse être à moins d’une demi-largeur des bords d’entrée. Si le filtre est passe-bas, la sortie peut être échantillonnée moins fréquemment que l’entrée. 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 DataArray.

  • outgrid ( str ou None ) – Le nom du fichier netCDF de sortie avec l’extension .nc dans lequel stocker la grille.

  • filter ( str ) – b | c | g | o | m | p | h xwidth [/ width2 ][ modificateurs ]. Nom du type de filtre que vous souhaitez appliquer, suivi de la largeur :
    • b : wagon couvert

    • c : arc de cosinus

    • g : Gaussien

    • o : Opérateur

    • m : médiane

    • p : Probabilité du maximum de vraisemblance

    • h : histogramme

  • distance ( int ou str ) – L’indicateur de distance indique comment la grille (x,y) se rapporte à la largeur du filtre, comme suit :
    • 0 : grille (x,y) dans les mêmes unités que largeur , distances cartésiennes.

    • 1 : grille (x,y) en degrés, largeur en kilomètres, distances cartésiennes.

    • 2 : grille (x,y) en degrés, largeur en km, dx mis à l’échelle par cos(y moyen), distances cartésiennes.

    Les options ci-dessus sont les plus rapides car elles permettent de calculer une seule fois la matrice de pondération. Les deux options suivantes sont plus lentes car elles recalculent les poids pour chaque latitude. - 3 : grille (x,y) en degrés, largeur en km, dx mis à l’échelle par cosinus(y), calcul de distance cartésienne. - 4 : grille (x,y) en degrés, largeur en km, calcul de distance sphérique. - 5 : grille (x,y) en unités Mercator img, largeur en km, calcul de distance sphérique.

  • spacing ( str ) – x_inc [ +e | n ][/ y_inc [ +e | n ]]. x_inc [et éventuellement y_inc ] est l’espacement de la grille.
    • Coordonnées géographiques (degrés) : ajoutez éventuellement une unité d’incrémentation. Choisissez parmi m pour indiquer les arc-minutes ou s pour indiquer les arc-secondes. Si l’une des unités e , f , k , M , n ou u est ajoutée à la place, l’incrément est supposé être donné en mètre, pied, km, mile, mile nautique ou US survey foot, respectivement, et sera converti en les degrés de longitude équivalents à la latitude moyenne de la région (la conversion dépend de PROJ_ELLIPSOID ). Si y_inc est donné mais défini sur 0, il sera réinitialisé égal à x_inc; sinon, il sera converti en degrés de latitude.

    • Toutes les coordonnées : si +e est ajouté, le max correspondant x ( est ) ou y ( nord ) peut être légèrement ajusté pour s’adapter exactement à l’incrément donné [par défaut, l’incrément peut être légèrement ajusté pour s’adapter au domaine donné]. Enfin, au lieu de donner un incrément, vous pouvez spécifier le nombre de nœuds souhaités en ajoutant +n à l’argument entier fourni ; l’incrément est alors recalculé à partir du nombre de nœuds, du registration et du domaine. La valeur d’incrément résultante varie selon que vous avez sélectionné une grille enregistrée sur la grille ou enregistrée sur les pixels ; voir Formats de fichier GMT pour plus de détails.

    Remarque : Si region=grdfile est utilisé alors l’espacement de la grille et l’enregistrement ont déjà été initialisés ; utilisez spacing et registration pour remplacer ces valeurs.

  • nans ( str ou float ) – i | p | r . Déterminez comment les valeurs NaN dans la grille d’entrée affectent la sortie filtrée.

  • région ( chaîne ou liste ) – [ xmin , xmax , ymin , ymax ]. Définissez la région des points de sortie [la valeur par défaut est la même que celle de l’entrée].

  • toggle ( bool ) - Bascule l’enregistrement du nœud pour la grille de sortie afin de devenir l’opposé de la grille d’entrée. [La valeur par défaut donne le même enregistrement que la grille d’entrée].

  • 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

  • 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).

  • registration ( str ) – g | p . Forcer l’enregistrement du nœud quadrillage ( g ) ou pixel ( p ) [la valeur par défaut est g (ridline)].

Retour

  • ret ret ( xarray.DataArray ou None ) – Le type de retour dépend si le outgridparamètre est défini :

xarray.DataArraysi outgrid n’est pas défini

Aucun si outgrid est défini (la sortie de la grille sera stockée dans le fichier défini par outgrid)

Exemple

import os
import pygmt
# Apply a filter of 600km (full width) to the @earth_relief_30m file
# and return a filtered field (saved as netcdf)
pygmt.grdfilter(
    grid="@earth_relief_30m_g",
    filter="m600",
    distance="4",
    region=[150, 250, 10, 40],
    spacing=0.5,
    outgrid="filtered_pacific.nc",
)
os.remove("filtered_pacific.nc")  # cleanup file
# Apply a gaussian smoothing filter of 600 km in the input data array,
# and returns a filtered data array with the smoothed field.
grid = pygmt.datasets.load_earth_relief()
smooth_field = pygmt.grdfilter(grid=grid, filter="g600", distance="4")