xCDAT: Xarray Climate Data Analysis Tools#
The goal of xCDAT is to provide generalizable features and utilities for simple and robust analysis of climate data. xCDAT’s design philosophy is focused on reducing the overhead required to accomplish certain tasks in xarray. xCDAT aims to be compatible with structured grids that are CF-compliant (e.g., CMIP6). Some key xCDAT features are inspired by or ported from the core CDAT library, while others leverage powerful libraries in the xarray ecosystem (e.g., xESMF, xgcm, cf_xarray) to deliver robust APIs.
The xCDAT core team’s mission is to provide a maintainable and extensible package that serves the needs of the climate community in the long-term. We are excited to be working on this project and hope to have you onboard!
The best resource for getting started is the xCDAT documentation website. Our documentation provides general guidance for setting up xCDAT in an Anaconda environment on your local computer or on an HPC/Jupyter environment. We also include an API Overview and Gallery to highlight xCDAT functionality.
xCDAT is a community-driven open source project. We encourage discussion on topics such as version releases, feature suggestions, and architecture design on the GitHub Discussions page.
Subscribe to our mailing list for news and announcements related to xCDAT, such as software version releases or future roadmap plans.
Please note that xCDAT has a Code of Conduct. By participating in the xCDAT community, you agree to abide by its rules.
We welcome and appreciate contributions to xCDAT. Users and contributors can view and open issues on our GitHub Issue Tracker.
For more instructions on how to contribute, please checkout our Contributing Guide.
Extension of xarray’s
open_mfdataset()with post-processing options
Generate bounds for axes supported by
xcdatif they don’t exist in the Dataset
Optional selection of single data variable to keep in the Dataset (bounds are also kept if they exist)
Optional decoding of time coordinates
In addition to CF time units, also decodes common non-CF time units (“months since …”, “years since …”)
Optional centering of time coordinates using time bounds
Optional conversion of longitudinal axis orientation between [0, 360) and [-180, 180)
Time series averages (single snapshot and grouped), climatologies, and departures
Weighted or unweighted
Optional seasonal configuration (e.g., DJF vs. JFD, custom seasons)
Geospatial weighted averaging
Supports rectilinear grid
Optional specification of regional domain
Horizontal structured regridding
Vertical structured regridding
Support rectilinear and curvilinear grids
Extends the xgcm vertical regridding API
Things We Are Striving For#
xCDAT supports CF compliant datasets, but will also strive to support datasets with common non-CF compliant metadata (e.g., time units in “months since …” or “years since …”)
Robust handling of dimensions and their coordinates and coordinate bounds
Coordinate variables are retrieved with
cf_xarrayusing CF axis names or coordinate names found in xarray object attributes. Refer to Metadata Interpretation for more information.
Bounds are retrieved with
Ability to operate on both longitudinal axis orientations, [0, 360) and [-180, 180)
Support for parallelism using dask where it is both possible and makes sense
xCDAT (released as
xcdat) follows a feedback-driven release cycle using continuous
integration/continuous deployment. Software releases are performed based on the bandwidth
of the development team, the needs of the community, and the priority of bug fixes or
Subscribe to our mailing list to stay notified of new releases.
We highly encourage you to checkout the awesome resources below to learn more about Xarray and Xarray usage in climate science!
Huge thank you to all of the xCDAT contributors!
xCDAT is jointly developed by scientists and developers from the Energy Exascale Earth System Model (E3SM) Project and Program for Climate Model Diagnosis and Intercomparison (PCMDI). The work is performed for the E3SM project, which is sponsored by Earth System Model Development (ESMD) program, and the Simplifying ESM Analysis Through Standards (SEATS) project, which is sponsored by the Regional and Global Model Analysis (RGMA) program. ESMD and RGMA are programs for the Earth and Environmental Systems Sciences Division (EESSD) in the Office of Biological and Environmental Research (BER) within the Department of Energy’s Office of Science.
xCDAT is licensed under the terms of the Apache License (Version 2.0 with LLVM exception).
All new contributions must be made under the Apache-2.0 with LLVM exception license.