<a id="ecosystem"></a>

# Xarray related projects

Below is a list of existing open source projects that build
functionality upon xarray. See also section [Xarray Internals](../internals/index.html.md#internals) for more
details on how to build xarray extensions. We also maintain the
[xarray-contrib](https://github.com/xarray-contrib) GitHub organization
as a place to curate projects that build upon xarray.

## Geosciences

- [aospy](https://aospy.readthedocs.io): Automated analysis and management of gridded climate data.
- [argopy](https://github.com/euroargodev/argopy): xarray-based Argo data access, manipulation and visualisation for standard users as well as Argo experts.
- [cf_xarray](https://cf-xarray.readthedocs.io/en/latest/): Provides an accessor (DataArray.cf or Dataset.cf) that allows you to interpret Climate and Forecast metadata convention attributes present on xarray objects.
- [climpred](https://climpred.readthedocs.io): Analysis of ensemble forecast models for climate prediction.
- [geocube](https://vylor.github.io/geocube): Tool to convert geopandas vector data into rasterized xarray data.
- [GeoUtils](https://geoutils.readthedocs.io): Raster and vector operations for geospatial analysis, built on rasterio and geopandas.
- [GeoWombat](https://github.com/jgrss/geowombat): Utilities for analysis of remotely sensed and gridded raster data at scale (easily tame Landsat, Sentinel, Quickbird, and PlanetScope).
- [grib2io](https://github.com/NOAA-MDL/grib2io): Utility to work with GRIB2 files including an xarray backend, DASK support for parallel reading in open_mfdataset, lazy loading of data, editing of GRIB2 attributes and GRIB2IO DataArray attrs, and spatial interpolation and reprojection of GRIB2 messages and GRIB2IO Datasets/DataArrays for both grid to grid and grid to stations.
- [gsw-xarray](https://github.com/DocOtak/gsw-xarray): a wrapper around [gsw](https://teos-10.github.io/GSW-Python) that adds CF compliant attributes when possible, units, name.
- [infinite-diff](https://github.com/spencerahill/infinite-diff): xarray-based finite-differencing, focused on gridded climate/meteorology data
- [marc_analysis](https://github.com/darothen/marc_analysis): Analysis package for CESM/MARC experiments and output.
- [MetPy](https://unidata.github.io/MetPy/dev/index.html): A collection of tools in Python for reading, visualizing, and performing calculations with weather data.
- [MPAS-Analysis](https://mpas-dev.github.io/MPAS-Analysis): Analysis for simulations produced with Model for Prediction Across Scales (MPAS) components and the Accelerated Climate Model for Energy (ACME).
- [OGGM](https://oggm.org/): Open Global Glacier Model
- [Oocgcm](https://oocgcm.readthedocs.io/): Analysis of large gridded geophysical datasets
- [Open Data Cube](https://www.opendatacube.org/): Analysis toolkit of continental scale Earth Observation data from satellites.
- [Pangaea](https://pangaea.readthedocs.io/en/latest/): xarray extension for gridded land surface & weather model output).
- [Pangeo](https://pangeo.io): A community effort for big data geoscience in the cloud.
- [PyGDX](https://pygdx.readthedocs.io/en/latest/): Python 3 package for
  accessing data stored in GAMS Data eXchange (GDX) files. Also uses a custom
  subclass.
- [pyinterp](https://pangeo-pyinterp.readthedocs.io/en/latest/): Python 3 package for interpolating geo-referenced data used in the field of geosciences.
- [pyXpcm](https://pyxpcm.readthedocs.io): xarray-based Profile Classification Modelling (PCM), mostly for ocean data.
- [Regionmask](https://regionmask.readthedocs.io/): plotting and creation of masks of spatial regions
- [rioxarray](https://vylor.github.io/rioxarray): geospatial xarray extension powered by rasterio
- [salem](https://salem.readthedocs.io): Adds geolocalised subsetting, masking, and plotting operations to xarray’s data structures via accessors.
- [SatPy](https://satpy.readthedocs.io/) : Library for reading and manipulating meteorological remote sensing data and writing it to various image and data file formats.
- [SARXarray](https://tudelftgeodesy.github.io/sarxarray/): xarray extension for reading and processing large Synthetic Aperture Radar (SAR) data stacks.
- [shxarray](https://shxarray.wobbly.earth/): Convert, filter,and map geodesy related spherical harmonic representations of gravity and terrestrial water storage through an xarray extension.
- [spharmgrid](https://spharmgrid.readthedocs.io/): Spherical harmonic tools for atmospheric science, including scalar and vector filtering, regridding, differential operators, and kinematics. Built on [DUCC](https://gitlab.mpcdf.mpg.de/mtr/ducc), implementing most of [NCL](https://www.ncl.ucar.edu/)’s high-level spherical harmonic operations.
- [Spyfit](https://spyfit.readthedocs.io/en/master/): FTIR spectroscopy of the atmosphere
- [TOAD](https://github.com/tipmip-methods/toad/): TOAD (Tipping and Other Abrupt events Detector) detects and clusters abrupt shifts in gridded Earth system data and operates directly on xarray datasets.
- [windspharm](https://ajdawson.github.io/windspharm/index.html): Spherical
  harmonic wind analysis in Python.
- [wradlib](https://wradlib.org/): An Open Source Library for Weather Radar Data Processing.
- [wrf-python](https://wrf-python.readthedocs.io/): A collection of diagnostic and interpolation routines for use with output of the Weather Research and Forecasting (WRF-ARW) Model.
- [xarray-eopf](https://github.com/EOPF-Sample-Service/xarray-eopf): An xarray backend implementation for opening ESA EOPF data products in Zarr format.
- [xarray-regrid](https://github.com/EXCITED-CO2/xarray-regrid): xarray extension for regridding rectilinear data.
- [xarray-simlab](https://xarray-simlab.readthedocs.io): xarray extension for computer model simulations.
- [xarray-spatial](https://xarray-spatial.org/): Numba-accelerated raster-based spatial processing tools (NDVI, curvature, zonal-statistics, proximity, hillshading, viewshed, etc.)
- [xarray-topo](https://xarray-topo.readthedocs.io/): xarray extension for topographic analysis and modelling.
- [xbpch](https://github.com/darothen/xbpch): xarray interface for bpch files.
- [xCDAT](https://xcdat.readthedocs.io/): An extension of xarray for climate data analysis on structured grids.
- [xclim](https://xclim.readthedocs.io/): A library for calculating climate science indices with unit handling built from xarray and dask.
- [xESMF](https://pangeo-xesmf.readthedocs.io/): Universal regridder for geospatial data.
- [xgcm](https://xgcm.readthedocs.io/): Extends the xarray data model to understand finite volume grid cells (common in General Circulation Models) and provides interpolation and difference operations for such grids.
- [xmitgcm](https://xmitgcm.readthedocs.io/): a python package for reading [MITgcm](https://mitgcm.org/) binary MDS files into xarray data structures.
- [xnemogcm](https://github.com/rcaneill/xnemogcm/): a package to read [NEMO](https://nemo-ocean.eu/) output files and add attributes to interface with xgcm.

## Machine Learning

- [ArviZ](https://arviz-devs.github.io/arviz/): Exploratory analysis of Bayesian models, built on top of xarray.
- [Darts](https://github.com/unit8co/darts/): User-friendly modern machine learning for time series in Python.
- [Elm](https://ensemble-learning-models.readthedocs.io): Parallel machine learning on xarray data structures
- [sklearn-xarray (1)](https://phausamann.github.io/sklearn-xarray): Combines scikit-learn and xarray (1).
- [sklearn-xarray (2)](https://sklearn-xarray.readthedocs.io/en/latest/): Combines scikit-learn and xarray (2).
- [xbatcher](https://xbatcher.readthedocs.io): Batch Generation from Xarray Datasets.

## Other domains

- [ptsa](https://pennmem.github.io/ptsa/html/index.html): EEG Time Series Analysis
- [pycalphad](https://pycalphad.org/docs/latest/): Computational Thermodynamics in Python
- [pyomeca](https://pyomeca.github.io/): Python framework for biomechanical analysis
- [movement](https://movement.neuroinformatics.dev/): A Python toolbox for analysing animal body movements

## Extend xarray capabilities

- [Collocate](https://github.com/cistools/collocate): Collocate xarray trajectories in arbitrary physical dimensions
- [eofs](https://ajdawson.github.io/eofs/): EOF analysis in Python.
- [hypothesis-gufunc](https://hypothesis-gufunc.readthedocs.io/en/latest/): Extension to hypothesis. Makes it easy to write unit tests with xarray objects as input.
- [ntv-pandas](https://github.com/loco-philippe/ntv-pandas) : A tabular analyzer and a semantic, compact and reversible converter for multidimensional and tabular data
- [nxarray](https://github.com/nxarray/nxarray): NeXus input/output capability for xarray.
- [xarray-compare](https://github.com/astropenguin/xarray-compare): xarray extension for data comparison.
- [xarray-dataclasses](https://github.com/astropenguin/xarray-dataclasses): xarray extension for typed DataArray and Dataset creation.
- [xarray_einstats](https://xarray-einstats.readthedocs.io): Statistics, linear algebra and einops for xarray
- [xarray_extras](https://github.com/crusaderky/xarray_extras): Advanced algorithms for xarray objects (e.g. integrations/interpolations).
- [xarray-mongodb](https://xarray-mongodb.readthedocs.io/en/latest/): Store xarray objects on MongoDB.
- [xeofs](https://github.com/nicrie/xeofs): PCA/EOF analysis and related techniques, integrated with xarray and Dask for efficient handling of large-scale data.
- [xpublish](https://xpublish.readthedocs.io/): Publish Xarray Datasets via a Zarr compatible REST API.
- [xrft](https://github.com/rabernat/xrft): Fourier transforms for xarray data.
- [xr-scipy](https://xr-scipy.readthedocs.io): A lightweight scipy wrapper for xarray.
- [X-regression](https://github.com/kuchaale/X-regression): Multiple linear regression from Statsmodels library coupled with Xarray library.
- [xskillscore](https://github.com/xarray-contrib/xskillscore): Metrics for verifying forecasts.
- [xyzpy](https://xyzpy.readthedocs.io): Easily generate high dimensional data, including parallelization.
- [xarray-lmfit](https://github.com/kmnhan/xarray-lmfit): xarray extension for curve fitting using [lmfit](https://lmfit.github.io/lmfit-py/).

## Visualization

- [datashader](https://datashader.org), [geoviews](https://geoviews.org), [holoviews](https://holoviews.org/), : visualization packages for large data.
- [hvplot](https://hvplot.pyviz.org/) : A high-level plotting API for the PyData ecosystem built on HoloViews.
- [psyplot](https://psyplot.readthedocs.io): Interactive data visualization with python.
- [xarray-leaflet](https://github.com/davidbrochart/xarray_leaflet): An xarray extension for tiled map plotting based on ipyleaflet.
- [xtrude](https://github.com/davidbrochart/xtrude): An xarray extension for 3D terrain visualization based on pydeck.
- [pyvista-xarray](https://github.com/pyvista/pyvista-xarray): xarray DataArray accessor for 3D visualization with [PyVista](https://github.com/pyvista/pyvista) and DataSet engines for reading VTK data formats.

## Non-Python projects

- [xframe](https://github.com/xtensor-stack/xframe): C++ data structures inspired by xarray.
- [AxisArrays](https://github.com/JuliaArrays/AxisArrays.jl), [NamedArrays](https://github.com/davidavdav/NamedArrays.jl) and [YAXArrays.jl](https://github.com/JuliaDataCubes/YAXArrays.jl): similar data structures for Julia.

More projects can be found at the [“xarray” Github topic](https://github.com/topics/xarray).
