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 4 functions:
- load_scalar
- load_scalar_timeseries
- load_vector_timeseries
- load_dataset
To load a scalar at a particular timepoint,
load_scalar
needs
its filename,
the coordinates
and the datatype:
import ghost_xarray
import numpy as np
vx = ghost_xarray.load_scalar(
"path/to/file/vx.0001.out",
coords=dict(
x=np.linspace(0, 2 * np.pi, 128, endpoint=False),
y=np.linspace(0, 2 * np.pi, 128, endpoint=False),
),
dtype=np.float32,
)
vx.plot() # makes a 2D imshow
Coordinates can also be a tuple of int
s,
in which case it generates the corresponding coordinates
as np.linspace(0, 2 * np.pi, N, endpoint=False)
:
vx = ghost_xarray.load_scalar(
"path/to/file/vx.0001.out",
coords=(128, 128, 128), # 3D dataset
dtype=np.float32,
)
vx.isel(y=64).plot() # select a slice at the index 64 of y and plot (a 2D imshow).
To load a scalar timeseries,
load_scalar_timeseries
needs
a directory and the variable name,
the timestep dt
,
and the coordinate and datatype as before:
vx = ghost_xarray.load_scalar_timeseries(
"path/to/directory",
name="vx",
dt=0.5,
coords=(128, 128),
dtype=np.float32,
)
vx.sel(t=1.5).plot() # makes a 2D imshow of the x-z plane at t=1.5.
where time dimension is named "t"
.
For a vector timeseries, it is analogous:
v = ghost_xarray.load_vector_timeseries(
"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.
adding an additional dimension named "i"
for each vector component.
Finally,
load_dataset
loads several variables
into a xarray.Dataset
,
which provides a dict-like interface.
data = ghost_xarray.load_dataset(
"path/to/directory/",
names=["v", "w"],
dt=0.5,
coords=(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)).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.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b536fdc191902daf51c8b24d5d4ae6d21d8d920fa0a40966074943e95117cd13 |
|
MD5 | 40b75b6b103772d5b8bcd1695b78bfd9 |
|
BLAKE2b-256 | cbc385e1b9a955753d4038142b99f624cd882c0b7d02c32114a5b6cbd0028910 |