xCDAT / xcdat

An extension of xarray for climate data analysis on structured grids.
https://xcdat.readthedocs.io/en/latest/
Apache License 2.0
113 stars 12 forks source link
cdat cf-conventions climate-analysis climate-data climate-data-analysis climate-research climate-science climate-sciences cmip cmip6 e3sm pcmdi python xarray xcdat

.. raw:: html

xCDAT logo

.. container::

.. raw:: html

  <h3 align="center">

Xarray Climate Data Analysis Tools

+--------------------+------------------------------------------------------+ | | Badges | +====================+======================================================+ | Distribution | |conda-forge| |platforms| |conda-downloads| | +--------------------+------------------------------------------------------+ | Citation | |zenodo-doi| |joss| | +--------------------+------------------------------------------------------+ | DevOps | |CI/CD Build Workflow| |codecov| |docs| | +--------------------+------------------------------------------------------+ | Quality Assurance | |pre-commit| |black| |flake8| |mypy| | +--------------------+------------------------------------------------------+

.. raw:: html

  </h3>

.. |conda-forge| image:: https://img.shields.io/conda/vn/conda-forge/xcdat.svg :target: https://anaconda.org/conda-forge/xcdat .. |platforms| image:: https://img.shields.io/conda/pn/conda-forge/xcdat.svg :target: https://anaconda.org/conda-forge/xcdat .. |conda-downloads| image:: https://anaconda.org/conda-forge/xcdat/badges/downloads.svg :target: https://anaconda.org/conda-forge/xcdat .. |zenodo-doi| image:: https://zenodo.org/badge/354103918.svg :target: https://zenodo.org/badge/latestdoi/354103918 .. |joss| image:: https://joss.theoj.org/papers/10.21105/joss.06426/status.svg :target: https://doi.org/10.21105/joss.06426 .. |CI/CD Build Workflow| image:: https://github.com/xCDAT/xcdat/actions/workflows/build_workflow.yml/badge.svg :target: https://github.com/xCDAT/xcdat/actions/workflows/build_workflow.yml .. |docs| image:: https://readthedocs.org/projects/xcdat/badge/?version=latest :target: https://xcdat.readthedocs.io/en/latest/?badge=latest .. |codecov| image:: https://codecov.io/gh/xCDAT/xcdat/branch/main/graph/badge.svg?token=UYF6BAURTH :target: https://codecov.io/gh/xCDAT/xcdat .. |pre-commit| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white :target: https://github.com/pre-commit/pre-commit .. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black .. |flake8| image:: https://img.shields.io/badge/flake8-enabled-green :target: https://github.com/PyCQA/flake8 .. |mypy| image:: http://www.mypy-lang.org/static/mypy_badge.svg :target: http://mypy-lang.org/

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.

Useful links: Documentation <https://xcdat.readthedocs.io> | Code Repository <https://github.com/xCDAT/xcdat> | Issues <https://github.com/xCDAT/xcdat/issues> | Discussions <https://github.com/xCDAT/xcdat/discussions> | Releases <https://github.com/xCDAT/xcdat/releases> | Mailing List <https://groups.google.com/g/xcdat>

Project Motivation

The goal of xCDAT is to provide generalizable features and utilities for simple and robust analysis of climate data. xCDAT’s scope focuses on routine climate research analysis operations such as loading, averaging, and regridding data on structured grids (e.g., rectilinear, curvilinear). 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) to deliver robust APIs. xCDAT has the ability to operate generally across model and observational datasets that follow the CF Metadata Convention_ by interpreting CF Metadata through the cf_xarray_ package.

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!

.. _xarray: https://github.com/pydata/xarray .. _CDAT: https://github.com/CDAT/cdat

Getting Started

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 documentation website: https://xcdat.readthedocs.io/en/stable/ .. _computer: https://xcdat.readthedocs.io/en/stable/getting-started.html .. _HPC/Jupyter: https://xcdat.readthedocs.io/en/stable/getting-started-hpc-jupyter.html .. _API Overview: https://xcdat.readthedocs.io/en/stable/api.html .. _Gallery: https://xcdat.readthedocs.io/en/stable/gallery.html

Community

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.

.. _GitHub Discussions: https://github.com/xCDAT/xcdat/discussions .. _Code of Conduct: CODE-OF-CONDUCT.rst .. _mailing list: https://groups.google.com/g/xcdat

Contributing

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_.

.. _GitHub Issue Tracker: https://github.com/xCDAT/xcdat/issues .. _Contributing Guide: https://xcdat.readthedocs.io/en/stable/contributing.html

Features

Things We Are Striving For

.. _Metadata Interpretation: https://xcdat.readthedocs.io/en/stable/faqs.html#metadata-interpretation .. _xESMF: https://xesmf.readthedocs.io/en/latest/ .. _regrid2: https://cdms.readthedocs.io/en/latest/regrid2.html .. _xgcm: https://xgcm.readthedocs.io/en/latest/index.html .. _dask: https://dask.org/ .. _cf_xarray: https://cf-xarray.readthedocs.io/en/latest/index.html .. _CF Metadata Convention: http://cfconventions.org/

Releases

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 feature updates.

After releases are performed on GitHub Releases, the corresponding xcdat package version will be available to download through Anaconda conda-forge usually within a day.

Subscribe to our mailing list_ to stay notified of new releases.

.. _conda-forge: https://anaconda.org/conda-forge/xcdat .. _GitHub Releases: https://anaconda.org/conda-forge/xcdat

Useful Resources

We highly encourage you to checkout the awesome resources below to learn more about Xarray and Xarray usage in climate science!

Projects Using xCDAT

xCDAT is actively being integrated as a core component of the Program for Climate Model Diagnosis and Intercomparison (PCMDI) Metrics Package and the Energy Exascale Earth System Model Diagnostics (E3SM) Package. xCDAT is also included in the E3SM Unified Anaconda Environment_ that is deployed on various U.S. Department of Energy supercomputers to run E3SM software tools.

.. _Program for Climate Model Diagnosis and Intercomparison (PCMDI) Metrics Package: https://pcmdi.github.io/pcmdi_metrics/ .. _Energy Exascale Earth System Model Diagnostics (E3SM) Package: https://e3sm-project.github.io/e3sm_diags/_build/html/main/index.html .. _E3SM Unified Anaconda Environment: https://e3sm.org/resources/tools/other-tools/e3sm-unified-environment/

Acknowledgement

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_.

.. _E3SM: https://e3sm.org/ .. _PCMDI: https://pcmdi.llnl.gov/ .. _SEATS: https://www.seatstandards.org/ .. _ESMD: https://climatemodeling.science.energy.gov/program/earth-system-model-development .. _RGMA: https://climatemodeling.science.energy.gov/program/regional-global-model-analysis .. _EESSD: https://science.osti.gov/ber/Research/eessd .. _BER: https://science.osti.gov/ber .. _Department of Energy: https://www.energy.gov/ .. _Office of Science: https://science.osti.gov/

.. raw:: html

E3SM logo PCMDI logo SEATS logo

Contributors

Thank you to all of our contributors!

.. image:: https://contrib.rocks/image?repo=xCDAT/xcdat :alt: xCDAT contributors :target: https://github.com/xCDAT/xcdat/graphs/contributors

License

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.

See LICENSE and NOTICE for details.

.. _LICENSE: https://github.com/xCDAT/xcdat/blob/main/LICENSE .. _NOTICE: https://github.com/xCDAT/xcdat/blob/main/NOTICE

SPDX-License-Identifier: Apache-2.0

LLNL-CODE-846944