Load GHOST output files with xarray.
Project description
GHOST-xarray
GHOST-xarray provides helper functions to load output files from GHOST (the Geophysical High-Order Suite for Turbulence) into xarray labelled multidimensional arrays.
Installation
pip install ghost-xarray
Usage
GHOST-xarray provides 2 functions:
open_dataarray
, which opens a single variable,open_dataset
, which opens multiple variables.
open_dataarray
needs:
a directory, a variable name,
and its timestep dt
, shape and datatype:
import ghost_xarray
vx = ghost_xarray.open_dataarray(
"path/to/directory",
"vx",
dt=0.5,
shape=(128, 128, 128),
dtype=np.float32,
)
vx.isel(t=0, y=64).plot() # isel selects by index position
By default,
it generates the corresponding coordinates
from the shape
parameter
as np.linspace(0, 2 * np.pi, shape[i], endpoint=False)
.
But shape
can also be a dictionary of np.ndarray
with explicit coordinates:
vx = ghost_xarray.open_dataarray(
"path/to/directory",
"vx",
dt=0.5,
shape=dict(x=np.linspace(0, 10, 64), y=np.linspace(0, 100, 11)),
dtype=np.float32,
)
v_average = vx.isel(t=0).sel(y=50).mean(dim="x") # sel selects by coordinate
v_average.compute()
All operations are lazy,
until .compute()
or .plot()
are called.
Hence,
the above example only loads a single file to memory,
instead of actually loading data for all times.
For a vector-valued variable,
it adds an additional i
dimension,
corresponding to x, y[, z]
:
v = ghost_xarray.open_dataarray(
"path/to/directory",
name="v",
dt=0.5,
coords=(128, 128, 128),
dtype=np.float32,
)
v.isel(y=64).sel(t=1.5).plot(col="i") # makes three 2D imshows, one for each component.
Finally,
open_dataset
opens several variables
into a xarray.Dataset
,
which provides a dict-like interface.
data = ghost_xarray.open_dataset(
"path/to/directory/",
names=["v", "w"],
dt=0.5,
coords=(128, 128, 128),
dtype=np.float32,
)
h = (data.v * data.w).sum(dim="i") # computes the sum along components (dimension "i").
h.isel(t=slice(0, 4), x=64).plot(col="t") # plots the first 4 timepoints
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ghost_xarray-0.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2eecd20df5b4ed4fa8868bb0c901b41d6af17f62bdd61117809b6392b7471ce3 |
|
MD5 | 5e45da77628330c25e75290740ec0274 |
|
BLAKE2b-256 | a8b1702dfc3e2b4a71190df4d3e1750a6b19b8b3c8aebabb2831ffef6bf68e30 |