pygmt icon indicating copy to clipboard operation
pygmt copied to clipboard

Add a tutorial explaining the generally accepted input types

Open seisman opened this issue 3 years ago • 3 comments

Inspired by PR #1186.

For GMT CLI, there are mainly two types of input: a table or a grid. PyGMT is more powerful and can accept more input types.

For a table input, PyGMT functions generally accept the following input types:

  • a file name to a ASCII table, e.g., data="input.dat"
  • a 2d numpy array, pandas.DataFrame, e.g., data=data
  • a single value of int or float or str type to x,y, e.g., x=5.0, y=5.0
  • a list to x and y, e.g., x=[1.0, 2.0], y=[3.0, 4.0]
  • a 1d numpy array to x and y, e.g., x=np.array([1.0, 2.0]), y=np.array([3.0, 4.0])
  • a geopandas.GeoDataFrame (see #608 & #1000)
  • an xarray.Dataset
  • io.StringIO (once #576 is done)
  • more?

For a grid input, PyGMT functions generally accept the following input types:

  • a file name to a grid file, e.g., grid="input_grid.nc"
  • xarray.DataArray, e.g., grid=grid
  • more?

Although these various input data types are already used in different tutorials and examples, I think it would be better to have a standalone tutorial, explaining these input types.

seisman avatar May 10 '21 20:05 seisman

Also should mention that plotting shapefiles directly using plot and plot3d (maybe others too?) is supported. Xref #1616 and https://docs.generic-mapping-tools.org/6.3/cookbook/file-formats.html?highlight=shapefile#shapefiles

weiji14 avatar Feb 27 '22 16:02 weiji14

pathlib.Path support was added in https://github.com/GenericMappingTools/pygmt/pull/1382.

seisman avatar Mar 19 '22 02:03 seisman

Working on supporting 3-band xarray.DataArray inputs at #2590, this would be in addition to regular 1-band xarray.DataArray inputs (e.g. DEMs).

weiji14 avatar Jul 05 '23 06:07 weiji14