Skip to content

Commit

Permalink
Add missing aliases to pygmt.xyz2grd (#1506)
Browse files Browse the repository at this point in the history
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 <meghanj@alum.mit.edu>
Co-authored-by: Wei Ji <23487320+weiji14@users.noreply.github.com>
  • Loading branch information
3 people authored Oct 28, 2021
1 parent 934f1d3 commit d12470f
Showing 1 changed file with 83 additions and 5 deletions.
88 changes: 83 additions & 5 deletions pygmt/src/xyz2grd.py
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand All @@ -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
-------
Expand Down

0 comments on commit d12470f

Please sign in to comment.