xCDAT: Xarray Climate Data Analysis Tools
Contents
xCDAT: Xarray Climate Data Analysis Tools#
xCDAT is an extension of xarray for climate data analysis on structured grids. It serves as a modern successor to the Community Data Analysis Tools (CDAT) library.
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. 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 and 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!
Getting Started#
This documentation page provides general guidance for setting up your 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 invites discussion on version releases, architecture, new feature suggestions, and other topics on the GitHub Discussions page. Users and contributors can also view and open issues on our GitHub Issue Tracker.
We welcome and appreciate contributions to xCDAT. If you’d like to help improve xCDAT, please checkout our Contributing Guide.
Stay up to Date with Releases#
xCDAT (released as xcdat
) follows a rapid release cycle with continuous
integration/continuous deployment. As a result, releases are performed relatively
frequently based on the priority of commits. The xCDAT core team reviews commits every
two weeks to determine if they warrant a release.
After releases are performed on GitHub Releases, the corresponding xcdat
package
version will be available to download through conda-forge within 30 minutes to 1
hour.
To be notified of releases through GitHub:
Go to the
xcdat
repository homepage on GitHub (https://github.com/xCDAT/xcdat)Click the “Watch” button on the upper right-hand corner of the page.
Click “Custom” and checkmark “Releases”, then click “Apply”.
Available Features#
Extension of xarray’s
open_dataset()
andopen_mfdataset()
with post-processing optionsGenerate bounds for axes supported by
xcdat
if they don’t exist in the DatasetOptional 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)
Temporal averaging
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
Planned Features#
Vertical structured regridding
Support rectilinear and curvilinear grids
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 …”)
xCDAT leverages cf_xarray to interpret CF attributes on
xarray
objectsRefer to CF Convention for more information on CF attributes
Robust handling of dimensions and their coordinates and coordinate bounds
Coordinate variables are retrieved with
cf_xarray
using CF axis names or coordinate names found in xarray object attributes. Refer to Metadata Interpretation for more information.Bounds are retrieved with
cf_xarray
using the"bounds"
attrAbility 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
Acknowledgement#
This software 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.
License#
SPDX-License-Identifier: (Apache-2.0)
See LICENSE for details
LLNL-CODE-819717