Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add missing aliases to pygmt.xyz2grd #1506

Merged
merged 23 commits into from
Oct 28, 2021
Merged
Changes from 22 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
830552a
add parameters
willschlitzer Sep 13, 2021
1651d23
add docstrings to xyz2grd
willschlitzer Sep 14, 2021
3eefbbf
add parameters tag to docstring
willschlitzer Sep 19, 2021
c64736c
Apply suggestions from code review
willschlitzer Sep 24, 2021
fda29eb
move xyz2grd to tabular data section in index
willschlitzer Sep 24, 2021
25185da
Apply suggestions from code review
willschlitzer Sep 26, 2021
d890a75
remove dname parameters
willschlitzer Sep 26, 2021
080d3aa
change "duplicate" to "multiple_nodes"
willschlitzer Sep 26, 2021
160157f
replace "onecolumn" to "flags"
willschlitzer Sep 26, 2021
cb0de06
Merge branch 'main' into add-params-xyz2grd
willschlitzer Sep 27, 2021
58bc787
changing "flags" to "z_convention"
willschlitzer Oct 11, 2021
df7090b
Merge branch 'main' into add-params-xyz2grd
willschlitzer Oct 11, 2021
1eab216
change z_convention to convention
willschlitzer Oct 23, 2021
9dea9cb
Apply suggestions from code review
willschlitzer Oct 28, 2021
fce671f
add incols to xyz2grd
willschlitzer Oct 28, 2021
41507e2
change "mulitple_nodes" to "duplicate"
willschlitzer Oct 28, 2021
80c6a6f
Apply suggestions from code review
willschlitzer Oct 28, 2021
9ff90b3
Merge branch 'main' into add-params-xyz2grd
willschlitzer Oct 28, 2021
3057c22
Fix line length issue
willschlitzer Oct 28, 2021
b67cffa
Update pygmt/src/xyz2grd.py
willschlitzer Oct 28, 2021
c020b19
remove trailing whitespaces
willschlitzer Oct 28, 2021
2a9d4ec
Merge branch 'main' into add-params-xyz2grd
willschlitzer Oct 28, 2021
fc45f66
Apply suggestions from code review
willschlitzer Oct 28, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 81 additions & 5 deletions pygmt/src/xyz2grd.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,36 @@

@fmt_docstring
@use_alias(
A="duplicate",
maxrjones marked this conversation as resolved.
Show resolved Hide resolved
G="outgrid",
I="spacing",
R="region",
willschlitzer marked this conversation as resolved.
Show resolved Hide resolved
V="verbose",
Z="convention",
b="binary",
d="nodata",
e="find",
f="coltypes",
h="header",
i="incols",
r="registration",
willschlitzer marked this conversation as resolved.
Show resolved Hide resolved
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 +54,72 @@ 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**]
willschlitzer marked this conversation as resolved.
Show resolved Hide resolved
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}
{R}
willschlitzer marked this conversation as resolved.
Show resolved Hide resolved
{V}
convention : str
[*flags*]
willschlitzer marked this conversation as resolved.
Show resolved Hide resolved
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}
willschlitzer marked this conversation as resolved.
Show resolved Hide resolved
{w}

Returns
-------
Expand Down