Skip to main content

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

A plot of the x-component of the velocity at t=0.

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.

A plot for each component of the velocity.

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

Plot of the helicity for multiple 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

ghost-xarray-0.3.1.tar.gz (193.3 kB view details)

Uploaded Source

Built Distribution

ghost_xarray-0.3.1-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file ghost-xarray-0.3.1.tar.gz.

File metadata

  • Download URL: ghost-xarray-0.3.1.tar.gz
  • Upload date:
  • Size: 193.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for ghost-xarray-0.3.1.tar.gz
Algorithm Hash digest
SHA256 06b843dff86d58ede9e9a2d63299b86c2caea7785691f4334624d1f1d4639856
MD5 8834a5d8f0884056905b6e678219c1c3
BLAKE2b-256 ea552c3b3c7be9f1f2d1810810229acbc69ed7fb7c36b4fff54e8f70e99e5628

See more details on using hashes here.

File details

Details for the file ghost_xarray-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ghost_xarray-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2eecd20df5b4ed4fa8868bb0c901b41d6af17f62bdd61117809b6392b7471ce3
MD5 5e45da77628330c25e75290740ec0274
BLAKE2b-256 a8b1702dfc3e2b4a71190df4d3e1750a6b19b8b3c8aebabb2831ffef6bf68e30

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page