Home

Awesome

<p align="center"><img src="img/catch22_logo_square.png" alt="catch22 logo" height="220"/></p> <h1 align="center"><em>pycatch22</em>: CAnonical Time-series CHaracteristics in python</h1> <p align="center"> <a href="https://www.gnu.org/licenses/gpl-3.0"><img src="https://img.shields.io/badge/License-GPLv3-blue.svg" height="20"/></a> <a href="https://twitter.com/compTimeSeries"><img src="https://img.shields.io/twitter/url/https/twitter.com/compTimeSeries.svg?style=social&label=Follow%20%40compTimeSeries" height="20"/></a> </p>

About

catch22 is a collection of 22 time-series features coded in C that can be run from Python, as well as R, Matlab, and Julia.

This package provides a python implementation as the module pycatch22, licensed under the GNU GPL v3 license (or later).

What do the features do?

This GitBooks website is dedicated to describing the features. For their implementation in code, see the main catch22 repository. There is also information in the associated paper 📗 Lubba et al. (2019)..

Acknowledgement :+1:

If you use this software, please read and cite this open-access article:

Installation

Using pip for pycatch22:

pip install pycatch22

If this doesn't work, make sure you are using the latest setuptools: pip install setuptools --upgrade.

If you come across errors with version resolution, you should try something like: pip install pycatch22==0.4.2 --use-deprecated=legacy-resolver.

It is also a package on anaconda thanks to @rpanai, which you can install via conda:

conda install -c conda-forge pycatch22

or mamba:

mamba install -c conda-forge pycatch22

[A manual install (bottom of this page) is a last resort.]

Usage

Each feature function can be accessed individually and takes arrays as tuple or lists (not numpy arrays). For example, for loaded data tsData in Python:

import pycatch22
tsData = [1,2,4,3] # (or more interesting data!)
pycatch22.CO_f1ecac(tsData)

All features are bundled in the method catch22_all, which also accepts numpy arrays and gives back a dictionary containing the entries catch22_all['names'] for feature names and catch22_all['values'] for feature outputs.

Usage (computing 22 features: catch22):

pycatch22.catch22_all(tsData)

Usage (computing 24 features: catch24 = catch22 + mean + standard deviation):

pycatch22.catch22_all(tsData,catch24=True)

We also include a 'short name' for each feature for easier reference (as outlined in the GitBook Feature overview table). These short names can be included in the output from catch22_all() by setting short_names=True as follows:

pycatch22.catch22_all(tsData,catch24=True,short_names=True)

Template analysis script

Thanks to @jmoo2880 for putting together a demonstration notebook for using pycatch22 to extract features from a time-series dataset.

Usage notes

Manual install

If you find issues with the pip install, you can also install using setuptools:

python3 setup.py build
python3 setup.py install