Skip to main content

Time-lapse Cole-Cole decomposition routines

Project description


Join the chat at Build Status DOI Try ccd_tools on binder

Cole-Cole decomposition routines


This package contains an implementation of the Cole-Cole decomposition (CCD) scheme, which is used in near-surface geophysical applications to describe electrical polarization signatures measured for frequencies in the mHz range up to multiple kHz.

In the CCD, spectral induced polarization (SIP) signatures are described by a superposition of elementary polarization terms, which are suitably distributed to cover at least the frequency range spanned by the measurement data.

For more information, please refer to the homepage of the project:

example output

Parts of this code were described in two open-access publications:

1. Weigand and Kemna, 2016, Computers and Geosciences

2. Weigand and Kemna, 2016, Geophysical Journal International


Please refer to the



The following functionality is planned to be implemented in the near future (2020+). After that, new feature will probably only be implemented when required. For additional todo-items, please refer to the issues of this project and to the file TODO.


  • improve testing framework for ccd_time
  • implement Cole-Cole decomposition (c less than 1) also for conductivity formulation
  • improve Jupyter integration and provide examples


  • proof-of-concept web interface
  • implement the addition of a high-frequency EM-Cole-Cole term, decoupled from the other polarization terms


Detailed installation guide for Windows and Linux.

Stable versions are released to pipy and can be installed using:

pip install ccd_tools

Install the source package using setuptools:

python build
python install

The package can also be installed to a user-defined directory:

export PYTHONUSERBASE=$HOME/inst/pip_installs
export PYTHONPATH=$HOME/inst/pip_installs/lib/python3.4/\
python install --user
export PATH=$HOME/inst/pip_installs/bin:$PATH

For developers:

python develop --user

To build the documentation:

cd docs/doc
make html

setuptools developer guide:

Using Jupyter Notebooks

We recommend installing and using Anaconda. Anaconda conveniently installs Python, the Jupyter Notebook, and all needed packages for ccd-tools.

Use the following installation steps:

  • Download Anaconda with Python 3 version (currently Python 3.6).

  • Install the version of Anaconda which you downloaded, following the instr uctions on the download page.

  • To install ccd-tools, open the Anaconda prompt and use the following command:

    pip install ccd_tools

  • To run the Notebook within the Anaconda prompt, navigate to the notebook directory and use:

    jupyter notebook

This will print some information about the notebook server in your terminal, including the URL of the web application (by default, http://localhost:8888). It will then open your default web browser to this URL. When the notebook opens in your browser, you will see the Notebook Dashboard, including a list of the notebooks, files, and subdirectories of the directory where the notebook server was started.

If Jupyter Notebooks are used with Virtualenvm, the Jupyter Widget JavaScript library needs to be installed and enabled, using the following commands:

pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension --sys-prefix


Dependencies for the ccd tools are listed in the file requirements.txt. When pip is used, all requirements can be installed using:

pip install -r requirements.txt

Additional requirements to build the documentation can be found in the file requirements_doc.txt, and can be installed using:

pip install -r requirements_doc.txt

On Debian Linux systems, the following Python packages are required to run the Cole-Cole decomposition routines:


In order to build the documentation, the additional packages are required: ::


Under Debian-related Linux systems, these packages can be installed using the commands:

sudo apt-get install texlive-latex-base texlive-latex-extra\
    texlive-fonts-recommended texlive-fonts-extra dvipng
sudo apt-get install python2.7-numpy python-matplotlib python2.7-scipy\
    python-setuptools python-nose python-tornado

In order to build the documentation, the following sphinx-related packages must be installed:

sudo apt-get install python-sphinx
sudo apt-get install python-sphinx python-sphinxcontrib.blockdiag
pip install sphinxcontrib-programoutput

geccoinv and sip_models have to be installed according to their own documentation.

Under Windows, the program was tested using the 'pythonxy' distribution (


This program is licenced under the GPL3 or later licence. See LICENCE.txt and headers of individual files for more information.

Some third-party packages used for the homepage (gh-pages branch) have individual licences.

Project details

Download files

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

Files for ccd-tools, version 0.8.17
Filename, size File type Python version Upload date Hashes
Filename, size ccd_tools-0.8.17-py3-none-any.whl (94.4 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size ccd_tools-0.8.17.tar.gz (61.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page