Subset Xarray datasets in space while retaining the original grid for complex grid systems.
This package is available on pypi:
python -m pip install xarray-subset-grid
This package is available on conda-forge:
conda install -c conda-forge xarray-subset-grid
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:
import numpy as np # xarray_subset_gris should detect the grid type. # To check what it found: grid = ds.xsg # subsetting to include only certain variables: # Only 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 and the Sphinx documentation on Read the Docs.
First, create a new virtualenv and activate it:
python -m venv venv source venv/bin/activate # Linux and macOS # venv\Scripts\activate # Windows cmd # venv\Scripts\Activate.ps1 # Windows PowerShell
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
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:
defaultdevexamples
And three "tasks":
linttest: run most of the teststest_all: run the tests that access AWS -- i.e. download data directly.
To run the tests in an isolated environment:
pixi run -e dev testOr with a specific python version:
pixi run -e test312 testOptions are: test310 test311 test312 test313
To run a shell to do development work:
pixi shell -e dev
To run a shell in which you can run the examples (notebooks and all that):
pixi shell -e examples
To run a shell with everything (dev and example deps:
pixi shell -e all
Finally, when the pixi.toml file is updated,
be sure to update the pixi lockfile:
pixi update
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)