A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Cate

A software for ingesting, operating on and visualizing all ESA Climate Change Initiative data.
https://github.com/CCI-Tools/cate

Category: Climate Change
Sub Category: Climate Data Access and Visualization

Keywords

cci climate conda esa python

Keywords from Contributors

desktop-gui raster-data data-processing earth-observation eo earth-science optical radar sar desktop-application

Last synced: about 7 hours ago
JSON representation

Repository metadata

ESA CCI Toolbox (Cate)

README.md

Build status
GH actions Build status
codecov.io
Documentation Status

cate

ESA CCI Toolbox (Cate) Python package, API and CLI.

Installation

Cate can be installed into a new or existing Python 3.7 Miniconda
or Anaconda environment as follows:

$ conda install -c ccitools cate-cli

Installation from Sources

Cate's sources (this repository) are organised as follows:

  • setup.py - main build script to be run with Python 3.6+
  • cate/ - main package and production code
  • test/ - test package and test code
  • doc/ - documentation in Sphinx/RST format

We recommend installing Cate into an isolated Python 3 environment, because this
approach avoids clashes with existing versions of Cate's 3rd-party Python package requirements.
Using Miniconda
or Anaconda will usually avoid platform-specific
issues caused by module native binaries.

The first step is to clone latest Cate code and step into the check out directory:

$ git clone https://github.com/CCI-Tools/cate.git
$ cd cate

Using Conda

Conda is the package manager used by the Miniconda or
Anaconda Python distributions.

Creating a new Python environment for Cate will require around 2.2 GB disk space on Linux/Darwin and and 1.2
GB on Windows. To create a new Conda environment cate-env in your Anaconda/Miniconda installation directory, type:

$ conda env create

If you want the environment to be installed in another location, e.g. due to disk space limitations, type:

$ conda env create --prefix some/other/location/for/cate

Next step is to activate the new environment.

$ conda activate cate-env

You can now safely install Cate sources into the new cate-env environment.

(cate-env) $ python setup.py install

Using Docker

You can also use pre-build Docker images that contain a Python environment with the
cate package already installed. The images are quay.io/bcdev/cate:<version>. E.g.

$ docker run -d -v ${my_local_dir}:/home/cate quay.io/bcdev/cate:2.1.1 bash
(cate-env) $ cate -h  

where ${my_local_dir} refers to any directory on your computer that you may want to access from
within the running Docker container.

Getting started

To test the installation, first run the Cate command-line interface. Type

$ cate -h

IPython notebooks for various Cate use cases are on the way, they will appear in the project's
notebooks folder.

To use them interactively, you'll need to install Jupyter and run its Notebook app:

$ conda install jupyter
$ jupyter notebook

Open the notebooks folder and select a use case.

Running Cate App in Stand-Alone mode

To run the the graphical user interface Cate App in
stand-alone mode you'll need to start a Cate Web API service. To do so, first install the cate
Python package as described above. Then Cate Web API service is started from the command-line.
To run the service on port 9090 on your local computer, type:

$ cate-webapi-start --port 9090 

Then open Cate App in a browser and enter the URL http://localhost:9090. Press the
"Cate Stand-Alone Mode" button above. This will launch the Cate App in stand-alone mode.
If you wish to run a service with limited file system access (sandboxed),
you can specify the root option that defines a new file system root:

$ cate-webapi-start --port 9090 --root /home/fritz

Use CTRL+C or the command

$ cate-webapi-stop --port 9090

to stop the service.

To run the service from the docker image, type:

$ docker run -it -v ${my_local_dir}:/home/cate -p 9090:4000 quay.io/bcdev/cate:2.1.1 bash
(cate-env) $ cate-webapi-start --port 4000 --root ${my_local_dir}    

Conda Deployment

There is a dedicated repository cate-conda
which provides scripts and configuration files to build Cate's Conda packages and a stand-alone installer.

Development

Contributors

Contributors are asked to read and adhere to our Developer Guide.

Unit-testing

For unit testing we use pytest and its coverage plugin pytest-cov.

To run the unit-tests with coverage, type

$ export NUMBA_DISABLE_JIT=1
$ py.test --cov=cate test

We need to set environment variable NUMBA_DISABLE_JIT to disable JIT compilation by numba, so that
coverage reaches the actual Python code. We use Numba's JIT compilation to speed up numeric Python
number crunching code.

Other recognized environment variables to customize the unit-level tests are

CATE_DISABLE_WEB_TESTS=1
CATE_DISABLE_PLOT_TESTS=1
CATE_DISABLE_GEOPANDAS_TESTS=1
CATE_DISABLE_CLI_UPDATE_TESTS=1

Generating the Documentation

We use the wonderful Sphinx tool to generate
Cate's documentation on ReadTheDocs.
If there is a need to build the docs locally, first create a Conda environment:

$ cd cate
$ conda env create -f environment-rtd.yml

To regenerate the HTML docs, type

$ cd doc
$ make html

License

The CCI Toolbox is distributed under terms and conditions of the MIT license.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 5 days ago

Total Commits: 3,687
Total Committers: 20
Avg Commits per committer: 184.35
Development Distribution Score (DDS): 0.565

Commits in past year: 7
Committers in past year: 1
Avg Commits per committer in past year: 7.0
Development Distribution Score (DDS) in past year: 0.0

Name Email Commits
Norman Fomferra n****a@b****e 1603
Janis Gailis g****s@s****o 525
Marco Zuehlke M****e@b****e 357
Tonio Fincke t****e@b****e 300
Krzysztof (Chris) Bernat c****t@t****m 213
dzelge h****n@b****e 211
Luzia Keupp l****p@d****e 183
AliceBalfanz a****z@b****e 63
papesci p****3@y****m 54
hans-permana h****a@g****m 42
suvarchal s****r@g****m 41
helge l****u 31
Jānis Gailis J****s 19
TomBlock t****k@b****e 18
HerzogStephan s****g@d****e 12
Krzysztof (Chris) Bernat k****t 8
Pontus Lurcock p****k@b****e 3
forman B****1 2
Philipp Wambach p****h 1
Stratos Gerakakis s****r@g****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 720
Total pull requests: 333
Average time to close issues: 2 months
Average time to close pull requests: 7 days
Total issue authors: 47
Total pull request authors: 16
Average comments per issue: 2.38
Average comments per pull request: 1.49
Merged pull request: 308
Bot issues: 0
Bot pull requests: 0

Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/CCI-Tools/cate

Top Issue Authors

  • forman (295)
  • JanisGailis (97)
  • HelenClifton (75)
  • Evadzi (39)
  • TonioF (31)
  • HerzogStephan (20)
  • esacci (19)
  • AliceBalfanz (16)
  • lkeupp (14)
  • thomas-eldridge (13)
  • kbernat (12)
  • hans-permana (10)
  • kjpearson (10)
  • dzelge (8)
  • VPriemer (6)

Top Pull Request Authors

  • JanisGailis (76)
  • forman (75)
  • kbernat (59)
  • TonioF (35)
  • dzelge (23)
  • papesci (19)
  • AliceBalfanz (14)
  • TomBlock (10)
  • suvarchal (8)
  • hans-permana (4)
  • mzuehlke (4)
  • pont-us (2)
  • pwambach (1)
  • gunbra32 (1)
  • strawpants (1)

Top Issue Labels

  • gui (211)
  • bug (209)
  • ds (152)
  • enhancement (147)
  • ops (136)
  • cli (96)
  • feature (87)
  • blocker (76)
  • api (60)
  • ux (58)
  • support_request (52)
  • distr (44)
  • feature_request (34)
  • in_progress (32)
  • webapi (31)
  • uc09 (29)
  • vector_data (28)
  • cannot_reproduce (27)
  • wontfix (27)
  • uc06 (26)
  • doc (20)
  • discussion (20)
  • ws (16)
  • external (16)
  • conf (14)
  • cu_review (12)
  • regression (12)
  • uc02 (10)
  • help_wanted (9)
  • pilot (7)

Top Pull Request Labels

  • ops (26)
  • bug (6)
  • ds (6)
  • enhancement (5)
  • uc02 (4)
  • doc (3)
  • uc09 (3)
  • cli (2)
  • gui (2)
  • api (2)
  • uc06 (2)
  • ws (1)
  • wontfix (1)
  • conf (1)
  • feature (1)

Package metadata

proxy.golang.org: github.com/cci-tools/cate

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/cci-tools/cate#section-documentation
  • Licenses:
  • Latest release: v3.1.6+incompatible (published about 2 years ago)
  • Last Synced: 2025-04-26T13:40:52.735Z (1 day ago)
  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 6.999%
    • Average: 8.173%
    • Dependent repos count: 9.346%
proxy.golang.org: github.com/CCI-Tools/cate

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/CCI-Tools/cate#section-documentation
  • Licenses:
  • Latest release: v3.1.6+incompatible (published about 2 years ago)
  • Last Synced: 2025-04-26T13:40:52.809Z (1 day ago)
  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 6.999%
    • Average: 8.173%
    • Dependent repos count: 9.346%

Dependencies

docs/source/requirements.txt pypi
  • docutils <0.17
  • mock *
  • pandas *
  • recommonmark >=0.6.0
  • sphinx >2.0
  • sphinx-argparse *
  • sphinx-autodoc-annotation *
  • sphinx_rtd_theme >=1.0
  • strict-rfc3339 *
.github/workflows/cate-workflow.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
  • mr-smithers-excellent/docker-build-push v5 composite
Dockerfile docker
  • quay.io/bcdev/xcube latest build
environment.yml pypi
setup.py pypi

Score: -Infinity