pygmt.clib.Session.virtualfile_from_data
- Session.virtualfile_from_data(check_kind=None, data=None, x=None, y=None, z=None, extra_arrays=None, required_z=False, required_data=True)
Store any data inside a virtual file.
This convenience function automatically detects the kind of data passed into it, and produces a virtualfile that can be passed into GMT later on.
- Parameters:
check_kind (str or None) – Used to validate the type of data that can be passed in. Choose from ‘raster’, ‘vector’, or None. Default is None (no validation).
data (str or pathlib.Path or xarray.DataArray or numpy.ndarray, pandas.DataFrame, xarray.Dataset, or geopandas.GeoDataFrame or None) – Any raster or vector data format. This could be a file name or path, a raster grid, a vector matrix/arrays, or other supported data input.
x/y/z (1-D arrays or None) – x, y, and z columns as numpy arrays.
extra_arrays (list of 1-D arrays) – Optional. A list of numpy arrays in addition to x, y, and z. All of these arrays must be of the same size as the x/y/z arrays.
required_z (bool) – State whether the ‘z’ column is required.
required_data (bool) – Set to True when ‘data’ is required, or False when dealing with optional virtual files. [Default is True].
- Returns:
file_context (contextlib._GeneratorContextManager) – The virtual file stored inside a context manager. Access the file name of this virtualfile using
with file_context as fname: ...
.
Examples
>>> from pygmt.helpers import GMTTempFile >>> import xarray as xr >>> data = xr.Dataset( ... coords=dict(index=[0, 1, 2]), ... data_vars=dict( ... x=("index", [9, 8, 7]), ... y=("index", [6, 5, 4]), ... z=("index", [3, 2, 1]), ... ), ... ) >>> with Session() as ses: ... with ses.virtualfile_in(check_kind="vector", data=data) as fin: ... # Send the output to a file so that we can read it ... with GMTTempFile() as fout: ... ses.call_module("info", fin + " ->" + fout.name) ... print(fout.read().strip()) <vector memory>: N = 3 <7/9> <4/6> <1/3>