Skip to content

ioos/xarray-subset-grid

xarray-subset-grid

Subset Xarray datasets in space while retaining the original grid for complex grid systems.

Installation

pip compatible

This package is available on pypi:

python -m pip install xarray-subset-grid

And also on conda-forge:

conda install -c conda-forge xarray-subset-grid

Usage

This package is designed to be used in conjunction with xarray. Given a CF Compliant xarray dataset named ds, this package can be accessed using the xsg accessor:

# Get the interprested grid class
grid = ds.xsg

# subset to only include temperature
ds_temp = ds.xsg.subset_vars(["temp"])

# subset by bounding box
ds_subset_bbox = ds.xsg.subset_bbox([-72, 32, -70, 35])

# or by polygon
poly = np.array(
    [
        [-72, 32],
        [-72, 33],
        [-73, 33],
        [-73, 31],
        [-72, 32],
    ]
)
ds_subset_poly = ds.xsg.subset_polygon(poly)

For full usage, see the example notebooks

Development

pip compatible

First, create a new virtualenv and activate it:

python -m venv venv
source venv/bin.activate

Then install the project in local edit mode:

pip install -e .

Once installed, the tests can be run:

python -m pytest

Or alternatively run the notebooks in the same virtualenv

pixi

Learn about pixi here: https://prefix.dev/

See the pixi docs for details, but for this setup:

There are three "environments" set up for pixi:

  • default
  • dev
  • examples

And three "tasks":

  • lint
  • test : run most of the tests
  • test_all : run the tests that access AWS -- i.e. download data directly.

To run the tests in an isolated environment:

pixi run -e dev test

Or with a specific python version:

pixi run -e test312 test

Options are: test310 test311 test312 test313

To run a shell to do dev work:

pixi shell -e dev

To run a shell in which you can run the examples (notebooks and al that):

pixi shell -e examples

To run a shell with everything (dev and example deps:

pixi shell -e all

Finally, to when the pyproject.toml is updated, be sure to update the pixi lockfile:

pixi install

conda

If you are using (or want to use) conda, you can install the dependencies with:

conda install --file conda_requirements.txt

That will get you the full set, including what you need to run the examples, etc.

If you need the development tools, you can also install:

conda install --file conda_requirements_dev.txt

(requirements should all be on the conda-forge channel)

Contributors 7

Languages