Skip to main content

Python index-calculator is an xclim wrapperto calculate climate indices from CMORized netCDF files.

Project description

Calculate climate indicators with standardized project-specific attributes: index_calculator

Versions

Python Package Index Build

Documentation and Support

Documentation Status Supported Python Versions

Open Source

License DOI

Coding Standards

Python Black pre-commit.ci status

Development Status

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Build Status Coveralls

Python index_calculator is an xclim wrapper to calculate climate indicators from CMORized netCDF files.

Documentation

The official documentation is at https://index_calculator.readthedocs.io/

Features

  • Calculate climate indices via xclim.

  • Write standardized netCDF attributes.

  • Write on disk with a project-specific output file name.

Available projects

You can calculate climate indicators using index_calculator with the projects listed in the table below.

CMIP

CMIP5, CMIP6

CORDEX

CORDEX

Observational data

E-OBS, HYRAS

Reanalysis data

ERA5

Installation

You can install the package directly with pip:

pip install index_calculator

If you want to contribute, I recommend cloning the repository and installing the package in development mode, e.g.

git clone https://github.com/ludwiglierhammer/index_calculator
cd index_calculator
pip install -e .

This will install the package but you can still edit it and you don’t need the package in your PYTHONPATH

Requirements

  • python3.6 or higher

  • xclim

  • numpy

  • pandas

  • xarray

  • cf_xarray

  • cftime

Contact

In cases of any problems, needs or wishes do not hesitate to contact:

ludwig.lierhammer@hereon.de

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.1.0 (2022-03-08)

  • First release on PyPI.

0.2.0 (2022-07-07)

  • documentation on readthedocs

  • tests

  • new cli arguments added

0.2.1 (2022-07-12)

  • install data and tables via pip

0.3.0 (2022-07-19)

  • new indices implemented

    • CD: number of cold and dry days

    • CHDYYx: Maximum number of consecutive heat days

    • CSDI: Cold spell duration index

    • CW: Number of cold and wet days

    • DTR: Mean of daily temperature range

    • GD: Number of growing degree days

    • GDYYx: Number of consecutive growing degree days

    • HD17: Number of heating degree days

    • PRCPTOT: Total precipitation amount

    • RDYYp: Number of wet days with precip over percentile

    • RYYpTOT: Precipitation fraction with precip over percentile

    • TG10p: Fraction of days with mean temperature under 10th percentile

    • TG90p: Fraction of days with mean temperature under 90th percentile

    • TX10p: Fraction of days with maximum temperature under 10th percentile

    • TX90p: Fraction of days with maximum temperature under 90th percentile

    • TN10p: Fraction of days with minimum temperature under 10th percentile

    • TN90p: Fraction of days with minimum temperature under 90th percentile

    • WD: Number of warm and dry days

    • WSDI: Warm spell duration index

    • WW: Number of warm and wet days

0.3.1 (2022-07-20)

  • adjustments fro automatically project-specific outfile name generation

0.3.2 (2022-07-21)

  • project-specific directory structure for cordex, cmip5 and cmip6

0.3.3 (2022-08-10)

  • more documentation

  • properties to classes

  • classes automatically call functions

0.4.0 (2022-11-25)

  • split output files into several files

  • restructuring time encoding

  • properties removed

0.5.0 (2023-01-04)

  • new indices: * CSf (Number of cold spells) * HSf (Number of hot spells) * HSx (Maximum length of hot spells) * SD (Number od snow days) * SCD (Snow cover duration) * Sint (Snowfall intensity) * Sfreq (Snowfall freqeuncy) * UTCI (Universal Thermal Climate Index)

  • add time bounds

  • index-calculator version in DRS

0.5.1 (2023-01-23)

  • add grid mapping if necessary

0.5.2 (2023-02-07)

  • add input format and component information to index_calculation.pjson

0.5.3 (2023-02-13)

  • new projects E-OBS and ERA5 included

0.5.4 (2023-02-15)

  • new project HYRAS

  • ignore time-dependent data variables other than input variable

0.5.5 (2023-02-16)

  • new index (WI): number of winter days (tas<-10°C)

  • use pyhomogenize>=0.2.9

  • write time and time_bnds to float

0.5.6 (2023-02-22)

  • time controlling to pyhomogenize

0.6.0 (2023-03-03)

  • new indices: * HW: maximum length of heat waves * GSS: start of growing season * GSE: end of growing season * FFS: start of frost-free season * FFE: end of frost-free season * RRm: mean daily precipitation * RRYYp: precipitation percentile value

  • rename RYYp to RYYpABS and RDYYP to RYYp according to ICCLIM

  • optional argument perc woth percentile indicators

0.6.1 (2023-03-09)

  • some metadata corrections

0.6.2 (2023-03-10)

  • component name adjusments with HYRAS

0.6.3 (2023-03-13)

  • take coordinate attributes from input dataset

0.6.4 (2023-03-13)

  • HYRAS file naming convention

  • convert precip units from mm to mm day-1

0.6.5 (2023-03-16)

  • rename variavle names to CF variable names

  • metadata with SQI, CHDYY and CHDYYx

0.6.6 (2023-03-21)

  • filter out small values before calculating precipitation percentiles

  • raw percentile indicators (RR95p) has to time axis but a dayofyear axis

0.6.7 (2023-03-22)

  • HYRAS file naming convention

  • delete blanks from output file name

  • calcualte indicators woth length of time axis is 1

0.7.0 (2023-03-22)

  • published in zenodo

0.7.1 (2023-03-29)

  • calculating percentile indices with non-standard calendar

0.7.2 (2023-05-10)

  • new indicators implemented: * FG (mean daily wind speed) * FGn (minimum od mean daily wind speed) * FGx (maximum of mean daily wind speed) * FX (mean of maximum daily wind speed) * FXn (minimum of daily maximum wind speed) * FXx (maximum of daily maximum wind speed)

0.7.3 (2023-06-06)

  • rework metadata and make it more flexible regarding threshold values

  • more parameter information in cliamte indices docstrings

  • adjust parameter names to xclim

  • set threshold for dry day incides from 0.1 mm/day to 1 mm/day

  • set threshold from snowfall rate to liquid water equivalent snowfall rate with SD, Sint and Sfreq -> those changes are not implemented in xclim yet, PR will be accepted with xclim>=0.45

0.7.4 (2023-06-08)

  • rename DSP to DSf according to other spell indicators

  • rename HW to HWx according to other spell indicators

  • new indicator: DSx, HWf

  • rename tables/indices.json to tables/metadata.json

  • expand some docstrings and rework metadata

  • those changes are not implemented in xclim yet

  • as soon as this is done index_calculator goes v0.8.0

0.7.5 (2023-06-19)

  • if dataset frequency is not equal input frequency, convert it

  • adding hourly test data

  • calcualte climate indicators for ERA5 data

  • input variable for WI is tasmin not tas

0.7.6 (2023-06-20)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

index_calculator-0.7.6.tar.gz (5.5 MB view hashes)

Uploaded Source

Built Distribution

index_calculator-0.7.6-py3-none-any.whl (30.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page