pygmt.info

pygmt.info(data, \*, per_column=None, spacing=None,
nearest_multiple=None, verbose=None, aspatial=None,
coltypes=None, incols=None, registration=None, \**kwargs)

Obtenir des informations sur les tables de données.

Lit les fichiers et trouve les valeurs extrêmes dans chacune des colonnes signalées sous forme de paires min/max. Il reconnaît les NaN et affichera des avertissements si le nombre de colonnes varie d’un enregistrement à l’autre. En option, il trouvera l’étendue des deux premières colonnes arrondie au multiple supérieur et inférieur le plus proche des incréments fournis donnés par spacing. Cette sortie sera sous une forme numpy.ndarray [ w , e , s , n ], qui peut être utilisée directement comme le paramètre region pour d’autres modules (par conséquent, seuls dx et dy sont nécessaires). Si le per_column paramètre est combiné avec spacing, alors la sortie numpy.ndarray sera arrondie vers le haut/vers le bas pour autant de colonnes qu’il y a d’incréments fournis dans spacing. Un paramètre similaire nearest_multiple fournira un numpy.ndarray sous la forme de [ zmin , zmax , dz ] pour makecpt.

Paramètre

  • data ( str ou numpy.ndarray ou pandas.DataFrame ou xarray.Dataset ou geopandas.GeoDataFrame ) – Transmettez soit un nom de fichier à une table de données ASCII, un 1-D/2-D numpy.ndarray, un pandas.DataFrame, un xarray.Dataset composé de 1- D xarray.DataArray variables de données, ou a geopandas.GeoDataFrame contenant les données tabulaires.

  • per_column ( bool ) – Rapporte les valeurs min/max par colonne dans des colonnes séparées.

  • spacing ( str ) – [ b | p | f | s ] dx [/ dy [/ dz …]]. Calculez les valeurs min/max des n premières colonnes au multiple le plus proche des incréments fournis [la valeur par défaut est 2 colonnes]. Par défaut, les résultats de sortie sont sous la forme , sauf si est défini, auquel cas nous publions chaque valeur min et max dans des colonnes de sortie séparées. [w, e, s, n] per_column

  • nearest_multiple ( str ) – dz [ +c col ]. Indiquez le min/max de la première (0’ème) colonne au multiple de dz le plus proche et affichez-le sous la forme .[zmin, zmax, dz]

  • 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

  • aspatial ( bool ou str ) – [ col =] nom [,…]. Contrôlez la manière dont les données aspatiales sont gérées lors de l’entrée et de la sortie.

  • incols ( str ou tableau 1-D ) – Spécifiez les colonnes de données pour l’entrée 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 lues 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 d’entrée (par exemple, incols=[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 prend par défaut la valeur 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, incols= »0:2,4+l » pour saisir les trois premières colonnes suivies du 5e colonne transformée en log). Pour lire à 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 lire le texte de fin, ajoutez la colonne t . Ajoutez le numéro de mot à t pour ingérer un seul mot du texte de fin. Au lieu de spécifier des colonnes, utilisez incols= »n » pour lire simplement l’entrée numérique et ignorer le texte de fin. Ajoutez éventuellement l’un des modificateurs suivants à n’importe quelle colonne ou plage de colonnes pour transformer les colonnes d’entrée :
      • +l pour prendre le log10 des valeurs d’entrée.

      • +d pour diviser les valeurs d’entrée par le facteur diviseur [la valeur par défaut est 1].

      • +s pour multiplier les valeurs d’entrée par l” échelle des facteurs [la valeur par défaut est 1].

      • +o pour ajouter le décalage donné aux valeurs d’entrée [la valeur par défaut est 0].

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

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

Retour

output ( np.ndarray ou str ) – Le type de retour dépend si l’un des paramètres per_column , spacing ou nearest_multiple est défini.

  • numpy.ndarray si l’un des paramètres ci-dessus est utilisé.

  • str si aucun des paramètres ci-dessus n’est utilisé.

Exemple

import pandas as pd
import pygmt

# Load sample penguins data
df = pd.read_csv("https://github.com/mwaskom/seaborn-data/raw/master/penguins.csv")
# Convert 'species' column to categorical dtype
# By default, pandas sorts the individual categories in an alphabetical order.
# For a non-alphabetical order, you have to manually adjust the list of
# categories. For handling and manipulating categorical data in pandas,
# have a look at:
# https://pandas.pydata.org/docs/user_guide/categorical.html
df.species = df.species.astype(dtype="category")
# Make a list of the individual categories of the 'species' column
# ['Adelie', 'Chinstrap', 'Gentoo']
# They are (corresponding to the categorical number code) by default in
# alphabetical order and later used for the colorbar annotations
cb_annots = list(df.species.cat.categories)

# Use pygmt.info to get region bounds (xmin, xmax, ymin, ymax)
# The below example will return a numpy array like [30.0, 60.0, 12.0, 22.0]
region = pygmt.info(
    data=df[["bill_length_mm", "bill_depth_mm"]],  # x and y columns
    per_column=True,  # report the min/max values per column as a numpy array
    # round the min/max values of the first two columns to the nearest multiple
    # of 3 and 2, respectively
    spacing=(3, 2),
)

# Make a 2-D categorical scatter plot, coloring each of the 3 species
# differently
fig = pygmt.Figure()

# Generate a basemap of 10 cm x 10 cm size
fig.basemap(
    region=region,
    projection="X10c/10c",
    frame=[
        "xafg+lBill length (mm)",
        "yafg+lBill depth (mm)",
        "WSen+tPenguin size at Palmer Station",
    ],
)

# Define a colormap to be used for three categories, define the range of the
# new discrete CPT using series=(lowest_value, highest_value, interval),
# use color_model="+cAdelie,Chinstrap,Gentoo" to write the discrete color
# palette "inferno" in categorical format and add the species names as
# annotations for the colorbar
pygmt.makecpt(
    cmap="inferno",
    # Use the minimum and maximum of the categorical number code
    # to set the lowest_value and the highest_value of the CPT
    series=(df.species.cat.codes.min(), df.species.cat.codes.max(), 1),
    # convert ['Adelie', 'Chinstrap', 'Gentoo'] to 'Adelie,Chinstrap,Gentoo'
    color_model="+c" + ",".join(cb_annots),
)

fig.plot(
    # Use bill length and bill depth as x and y data input, respectively
    x=df.bill_length_mm,
    y=df.bill_depth_mm,
    # Vary each symbol size according to another feature (body mass,
    # scaled by 7.5*10e-5)
    size=df.body_mass_g * 7.5e-5,
    # Points colored by categorical number code
    fill=df.species.cat.codes.astype(int),
    # Use colormap created by makecpt
    cmap=True,
    # Do not clip symbols that fall close to the map bounds
    no_clip=True,
    # Use circles as symbols (the first "c") with diameter in
    # centimeters (the second "c")
    style="cc",
    # Set transparency level for all symbols to deal with overplotting
    transparency=40,
)

# Add colorbar legend
fig.colorbar()

fig.show()