pygmt.dimfilter

pygmt.dimfilter(grid, \*, distance=None, filter=None, outgrid=None,
spacing=None, sectors=None, region=None, verbose=None, \**kwargs)

Filtrez une grille en divisant le cercle de filtre.

Filtrer une grille dans le domaine spatial (ou temporel) en divisant le cercle de filtre donné en un nombre donné de secteurs, en appliquant l’un des filtres primaires de convolution ou de non-convolution sélectionnés à chaque secteur, et en choisissant le résultat final en fonction du secondaire sélectionné. filtre. Il calcule les distances en utilisant des géométries cartésiennes ou sphériques. La grille de sortie peut éventuellement être générée en tant que sous-région de l’entrée et/ou avec un nouvel incrément à l’aide de spacing, ce qui peut ajouter un « espace supplémentaire » dans les données d’entrée pour éviter les effets de bord pour la grille de sortie. Si le filtre est passe-bas, la sortie peut être échantillonnée moins fréquemment que l’entrée. pygmt.dimfilter ne produira pas une sortie lisse comme le font d’autres filtres spatiaux car il renvoie une médiane minimale sur N médianes de N secteurs. La sortie peut être approximative à moins que les données d’entrée ne soient sans bruit. Ainsi, un filtrage supplémentaire (par exemple, gaussien via pygmt.grdfilter) des données filtrées par DiM est généralement recommandé.

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.

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

  • filter ( str ) – x largeur [ +l | u ]. Définissez le type de filtre principal. Choisissez parmi les filtres à convolution et sans convolution. Utilisez le code de filtre x suivi de la largeur totale du diamètre . Les filtres de convolution disponibles sont :
    • ( b ) Wagon couvert : tous les poids sont égaux.

    • (( c ) Cosinus Arch : Les poids suivent une courbe en arc de cosinus.

    • (( g ) Gaussien : les poids sont donnés par la fonction gaussienne.

    Les filtres sans convolution sont : - (( m ) Médiane : renvoie la valeur médiane. - (( p ) Probabilité de vraisemblance maximale (un estimateur de mode) : Valeur modale de retour. Si plus d’un mode est trouvé, nous renvoyons leur valeur moyenne. Ajoutez +l ou +h à la largeur du filtre si vous souhaitez renvoyer la plus petite ou la plus grande des valeurs modales de chaque secteur.

  • sectors ( str ) – x secteurs [ +l | u ] Définissez le type de filtre secondaire x et le nombre de secteurs en nœud papillon. secteurs doivent être entiers et supérieurs à 0. Lorsque secteurs est défini sur 1, le filtre secondaire n’est pas efficace. Les filtres secondaires disponibles x sont :
    • ( l ) Inférieur : Renvoie le minimum de toutes les valeurs filtrées.

    • ( u ) Supérieur : Renvoie le maximum de toutes les valeurs filtrées.

    • ( a ) Moyenne : renvoie la moyenne de toutes les valeurs filtrées.

    • ( m ) Médiane : renvoie la médiane de toutes les valeurs filtrées.

    • ( p ) Mode : renvoie le mode de toutes les valeurs filtrées : si plusieurs modes sont trouvés, nous renvoyons leur valeur moyenne. Ajoutez +l ou +h aux secteurs si vous souhaitez plutôt renvoyer la plus petite ou la plus grande des valeurs modales.

  • spacing ( str ou list ) – x_inc [et éventuellement y_inc ] est l’incrément de sortie. Ajoutez m pour indiquer les minutes ou c pour indiquer les secondes. Si les nouveaux x_inc , y_inc ne sont PAS des multiples entiers des anciens (dans les données d’entrée), le filtrage sera considérablement plus lent. [La valeur par défaut est identique à l’entré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].

  • 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

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 pygmt
# Load a grid of Earth relief data
grid = pygmt.datasets.load_earth_relief()
# Create a filtered grid from an input grid.
filtered_grid = pygmt.dimfilter(
    grid=grid,
    # Set filter type to "median" and the diameter width to 600 km
    filter="m600",
    # Set grid in degrees, width in km
    distance=4,
    # Create 6 sectors and return the lowest values in the sector
    sectors="l6",
    # Set the region longitude range from 55W to 51W, and the
    # latitude range from 24S to 19S
    region=[-55, -51, -24, -19],
)