Skip to content

Commit 593ca1a

Browse files
weiji14seisman
andauthored
Complete documentation of grdimage (#620)
* Document common aliases for grdimage Add automatic docstrings for frame (B), cmap (C) projection (J), region (R), timestamp (U), verbose (V), and interpolation (n). Also removed alias pen (W) that actually doesn't work. * Alias dpi (E) for grdimage * Copy grdimage long description from GMT manpage Copied from https://docs.generic-mapping-tools.org/6.1/grdimage.html, swapping out short command-line arguments for long aliases. * Alias monochrome (M), no_clip (N) and nan_transparent (Q) for grdimage * Alias img_out (A) and img_in (D) for grdimage * Alias bit_color (G) for grdimage * Remove mention of RGB grid inputs, following GMT 6.2.0 grdimage docs * Document shading (I) for grdimage Co-authored-by: Dongdong Tian <[email protected]>
1 parent 56ba083 commit 593ca1a

File tree

1 file changed

+117
-8
lines changed

1 file changed

+117
-8
lines changed

pygmt/base_plotting.py

+117-8
Original file line numberDiff line numberDiff line change
@@ -318,24 +318,59 @@ def grdcontour(self, grid, **kwargs):
318318

319319
@fmt_docstring
320320
@use_alias(
321-
R="region",
322-
J="projection",
323-
W="pen",
321+
A="img_out",
324322
B="frame",
325-
I="shading",
326323
C="cmap",
324+
D="img_in",
325+
E="dpi",
326+
G="bit_color",
327+
I="shading",
328+
J="projection",
329+
M="monochrome",
330+
N="no_clip",
331+
Q="nan_transparent",
332+
R="region",
333+
U="timestamp",
334+
V="verbose",
327335
X="xshift",
328336
Y="yshift",
337+
n="interpolation",
329338
p="perspective",
330339
t="transparency",
331340
x="cores",
332341
)
333342
@kwargs_to_strings(R="sequence", p="sequence")
334343
def grdimage(self, grid, **kwargs):
335344
"""
336-
Project grids or images and plot them on maps.
337-
338-
Takes a grid file name or an xarray.DataArray object as input.
345+
Project and plot grids or images.
346+
347+
Reads a 2-D grid file and produces a gray-shaded (or colored) map by
348+
building a rectangular image and assigning pixels a gray-shade (or
349+
color) based on the z-value and the CPT file. Optionally, illumination
350+
may be added by providing a file with intensities in the (-1,+1) range
351+
or instructions to derive intensities from the input data grid. Values
352+
outside this range will be clipped. Such intensity files can be created
353+
from the grid using `grdgradient` and, optionally, modified by
354+
`grdmath` or `grdhisteq`. If GMT is built with GDAL support, *grid* can
355+
be an image file (geo-referenced or not). In this case the image can
356+
optionally be illuminated with the file provided via the *shading*
357+
option. Here, if image has no coordinates then those of the intensity
358+
file will be used.
359+
360+
When using map projections, the grid is first resampled on a new
361+
rectangular grid with the same dimensions. Higher resolution images can
362+
be obtained by using the *dpi* option. To obtain the resampled value
363+
(and hence shade or color) of each map pixel, its location is inversely
364+
projected back onto the input grid after which a value is interpolated
365+
between the surrounding input grid values. By default bi-cubic
366+
interpolation is used. Aliasing is avoided by also forward projecting
367+
the input grid nodes. If two or more nodes are projected onto the same
368+
pixel, their average will dominate in the calculation of the pixel
369+
value. Interpolation and aliasing is controlled with the
370+
*interpolation* option.
371+
372+
The *region* option can be used to select a map region larger or
373+
smaller than that implied by the extent of the grid.
339374
340375
Full option list at :gmt-docs:`grdimage.html`
341376
@@ -344,8 +379,82 @@ def grdimage(self, grid, **kwargs):
344379
Parameters
345380
----------
346381
grid : str or xarray.DataArray
347-
The file name of the input grid or the grid loaded as a DataArray.
382+
The file name or a DataArray containing the input 2-D gridded data
383+
set or image to be plotted (See GRID FILE FORMATS at
384+
:gmt-docs:`grdimage.html#grid-file-formats`).
385+
img_out : str
386+
``out_img[=driver]``.
387+
Save an image in a raster format instead of PostScript. Use
388+
extension .ppm for a Portable Pixel Map format which is the only
389+
raster format GMT can natively write. For GMT installations
390+
configured with GDAL support there are more choices: Append
391+
*out_img* to select the image file name and extension. If the
392+
extension is one of .bmp, .gif, .jpg, .png, or .tif then no driver
393+
information is required. For other output formats you must append
394+
the required GDAL driver. The *driver* is the driver code name used
395+
by GDAL; see your GDAL installation's documentation for available
396+
drivers. Append a **+c**\\ *options* string where options is a list
397+
of one or more concatenated number of GDAL **-co** options. For
398+
example, to write a GeoPDF with the TerraGo format use
399+
``=PDF+cGEO_ENCODING=OGC_BP``. Notes: (1) If a tiff file (.tif) is
400+
selected then we will write a GeoTiff image if the GMT projection
401+
syntax translates into a PROJ syntax, otherwise a plain tiff file
402+
is produced. (2) Any vector elements will be lost.
403+
{B}
404+
{CPT}
405+
img_in : str
406+
``[r]``
407+
GMT will automatically detect standard image files (Geotiff, TIFF,
408+
JPG, PNG, GIF, etc.) and will read those via GDAL. For very obscure
409+
image formats you may need to explicitly set *img_in*, which
410+
specifies that the grid is in fact an image file to be read via
411+
GDAL. Append **r** to assign the region specified by *region*
412+
to the image. For example, if you have used ``region='d'`` then the
413+
image will be assigned a global domain. This mode allows you to
414+
project a raw image (an image without referencing coordinates).
415+
dpi : int
416+
``[i|dpi]``.
417+
Sets the resolution of the projected grid that will be created if a
418+
map projection other than Linear or Mercator was selected [100]. By
419+
default, the projected grid will be of the same size (rows and
420+
columns) as the input file. Specify **i** to use the PostScript
421+
image operator to interpolate the image at the device resolution.
422+
bit_color : str
423+
``color[+b|f]``.
424+
This option only applies when a resulting 1-bit image otherwise
425+
would consist of only two colors: black (0) and white (255). If so,
426+
this option will instead use the image as a transparent mask and
427+
paint the mask with the given color. Append **+b** to paint the
428+
background pixels (1) or **+f** for the foreground pixels
429+
[Default].
430+
shading : str
431+
``[intensfile|intensity|modifiers]``.
432+
Give the name of a grid file with intensities in the (-1,+1) range,
433+
or a constant intensity to apply everywhere (affects the ambient
434+
light). Alternatively, derive an intensity grid from the input data
435+
grid via a call to `grdgradient`; append **+a**\\ *azimuth*,
436+
**+n**\\ *args*, and **+m**\\ *ambient* to specify azimuth,
437+
intensity, and ambient arguments for that module, or just give
438+
**+d** to select the default arguments (``+a-45+nt1+m0``). If you
439+
want a more specific intensity scenario then run `grdgradient`
440+
separately first. If we should derive intensities from another file
441+
than grid, specify the file with suitable modifiers [Default is no
442+
illumination].
443+
{J}
444+
monochrome : bool
445+
Force conversion to monochrome image using the (television) YIQ
446+
transformation. Cannot be used with *nan_transparent*.
447+
no_clip : bool
448+
Do not clip the image at the map boundary (only relevant for
449+
non-rectangular maps).
450+
nan_transparent : bool
451+
Make grid nodes with z = NaN transparent, using the color-masking
452+
feature in PostScript Level 3 (the PS device must support PS Level
453+
3).
454+
{R}
455+
{V}
348456
{XY}
457+
{n}
349458
{p}
350459
{t}
351460
{x}

0 commit comments

Comments
 (0)