Why use xclim?

Purpose

xclim aims to position itself as a climate services tool for any researchers interested in using Climate and Forecast Conventions (CF-Conventions) compliant datasets to perform climate analyses. This tool is optimized for working with Big Data in the climate science domain and can function as an independent library for one-off analyses in Jupyter Notebooks or as a backend engine for performing climate data analyses via Web Processing Services (WPS; e.g. Finch). It was primarily developed targeting Earth and Environmental Science audiences and researchers, originally for calculating climate indicators for the Canadian government web service ClimateData.ca.

The primary domains that xclim is built for are in calculating climate indicators, performing statistical correction / bias adjustment of climate model output variables or simulations, and in performing climate model simulation ensemble statistics.

Other Python projects similar to xclim

xclim has been developed within an ecosystem of several existing projects that deal with climate and statistical correction/downscaling and has both influenced and been influenced by their approaches:

  • icclim (icclim Source Code; icclim Documentation)
    • xclim aimed to reimplement icclim using xarray-natives for the computation of climate indices. Starting from version 5.0 of icclim, xclim has become a core dependency for this project.

    • The icclim developers have prepared a documentation page comparing xclim and icclim (xclim_and_icclim).

  • climate_indices (climate_indices Source Code; climate_indices Documentation)
    • Provides several moisture- and drought-related indicators not implemented at-present in xclim (SPI, SPEI, PDSI, etc.). It also offers a robust command-line interface and uses xarray in its backend.

    • There is currently an ongoing discussion about the merging of climate_indices and xclim: GH/1273.

  • MetPy (MetPy Source Code; MetPy Documentation)
    • MetPy is built for reading, visualizing, and performing calculations specifically on standards-compliant, operational weather data. Like xclim, it makes use of xarray.

    • xclim adopted its standards and unit-handling approaches from MetPy and associated project cf-xarray.

  • climpred (climpred Source Code; climpred Documentation)
    • climpred is designed to analyze and validate weather and climate forecast data against observations, reconstructions, and simulations. Similar to xclim, it leverages xarray, dask, and cf_xarray for object handling, distributed computation, and metadata validation, respectively.

  • pyet (pyet Source Code; pyet Documentation)
    • pyet is a tool for calculating/estimating evapotranspiration using many different accepted methodologies and employs a similar design approach as xclim, based on xarray-natives.

  • xcdat (xcdat Source Code; xcdat Documentation)

  • GeoCAT (GeoCAT Documentation)
    • GeoCAT is an ensemble of tools developed specifically for scalable data analysis and visualization of structures and unstructured gridded earth science datasets. GeoCAT tools rely on many of the same tools that xclim uses in its stack (notably, xarray, dask, and jupyter notebooks).

  • scikit-downscale (scikit-downscale Source Code, scikit-downscale Documentation)
    • scikit-downscale offers algorithms for statistical downscaling. xclim drew inspiration from its fit/predict architecture API approach. The suite of downscaling algorithms offered between both projects differs.

R-language specific projects