From d12470fcc487222fa8c4a46fc72c1702e6bf780f Mon Sep 17 00:00:00 2001 From: Will Schlitzer Date: Thu, 28 Oct 2021 23:57:42 +0100 Subject: [PATCH] Add missing aliases to pygmt.xyz2grd (#1506) Add missing aliases duplicate (A), projection (J), convention (Z), binary (b), nodata (d), find (e), coltypes (f), header (h), incols (i), registration (r), and wrap (w) to pygmt.xyz2grd. Co-authored-by: Meghan Jones Co-authored-by: Wei Ji <23487320+weiji14@users.noreply.github.com> --- pygmt/src/xyz2grd.py | 88 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 83 insertions(+), 5 deletions(-) diff --git a/pygmt/src/xyz2grd.py b/pygmt/src/xyz2grd.py index 94aa1239b4f..fd38c73ffe9 100644 --- a/pygmt/src/xyz2grd.py +++ b/pygmt/src/xyz2grd.py @@ -14,23 +14,37 @@ @fmt_docstring @use_alias( + A="duplicate", G="outgrid", I="spacing", + J="projection", R="region", V="verbose", + Z="convention", + b="binary", + d="nodata", + e="find", + f="coltypes", + h="header", + i="incols", + r="registration", + w="wrap", ) @kwargs_to_strings(R="sequence") def xyz2grd(data=None, x=None, y=None, z=None, **kwargs): - """ + r""" Create a grid file from table data. - xyz2grd reads one or more z or xyz tables and creates a binary grid file. - xyz2grd will report if some of the nodes are not filled in with data. Such - unconstrained nodes are set to a value specified by the user [Default is - NaN]. Nodes with more than one value will be set to the mean value. + Reads one or more tables with *x, y, z* columns and creates a binary grid + file. xyz2grd will report if some of the nodes are not filled in with + data. Such unconstrained nodes are set to a value specified by the user + [Default is NaN]. Nodes with more than one value will be set to the mean + value. Full option list at :gmt-docs:`xyz2grd.html` + {aliases} + Parameters ---------- data : str or {table-like} @@ -41,9 +55,73 @@ def xyz2grd(data=None, x=None, y=None, z=None, **kwargs): outgrid : str or None Optional. The name of the output netCDF file with extension .nc to store the grid in. + duplicate : str + [**d**\|\ **f**\|\ **l**\|\ **m**\|\ **n**\|\ + **r**\|\ **S**\|\ **s**\|\ **u**\|\ **z**]. + By default we will calculate mean values if multiple entries fall on + the same node. Use **-A** to change this behavior, except it is + ignored if **-Z** is given. Append **f** or **s** to simply keep the + first or last data point that was assigned to each node. Append + **l** or **u** or **d** to find the lowest (minimum) or upper (maximum) + value or the difference between the maximum and miminum value + at each node, respectively. Append **m** or **r** or **S** to compute + mean or RMS value or standard deviation at each node, respectively. + Append **n** to simply count the number of data points that were + assigned to each node (this only requires two input columns *x* and + *y* as *z* is not consulted). Append **z** to sum multiple values that + belong to the same node. {I} + {J} {R} {V} + convention : str + [*flags*]. + Read a 1-column ASCII [or binary] table. This assumes that all the + nodes are present and sorted according to specified ordering + convention contained in *flags*. If incoming data represents rows, + make *flags* start with **T**\ (op) if first row is y + = ymax or **B**\ (ottom) if first row is y = ymin. + Then, append **L** or **R** to indicate that first element is at + left or right end of row. Likewise for column formats: start with + **L** or **R** to position first column, and then append **T** or + **B** to position first element in a row. **Note**: These two + row/column indicators are only required for grids; for other tables + they do not apply. For gridline registered grids: If data are periodic + in x but the incoming data do not contain the (redundant) column at + x = xmax, append **x**. For data periodic in y without redundant row at + y = ymax, append **y**. Append **s**\ *n* to skip the first *n* number + of bytes (probably a header). If the byte-order or the words needs + to be swapped, append **w**. Select one of several data types (all + binary except **a**): + + - **A** ASCII representation of one or more floating point values per + record + - **a** ASCII representation of a single item per record + - **c** int8_t, signed 1-byte character + - **u** uint8_t, unsigned 1-byte character + - **h** int16_t, signed 2-byte integer + - **H** uint16_t, unsigned 2-byte integer + - **i** int32_t, signed 4-byte integer + - **I** uint32_t, unsigned 4-byte integer + - **l** int64_t, long (8-byte) integer + - **L** uint64_t, unsigned long (8-byte) integer + - **f** 4-byte floating point single precision + - **d** 8-byte floating point double precision + + Default format is scanline orientation of ASCII numbers: **-ZTLa**. + The difference between **A** and **a** is that the latter can decode + both *date*\ **T**\ *clock* and *ddd:mm:ss[.xx]* formats but expects + each input record to have a single value, while the former can handle + multiple values per record but can only parse regular floating point + values. Translate incoming *z*-values via the ``incols`` parameter. + {b} + {d} + {e} + {f} + {h} + {i} + {r} + {w} Returns -------