{"id":13948895,"url":"https://github.com/CCI-Tools/cate","last_synced_at":"2025-07-20T11:30:24.568Z","repository":{"id":43175647,"uuid":"54632786","full_name":"CCI-Tools/cate","owner":"CCI-Tools","description":"ESA CCI Toolbox (Cate)","archived":true,"fork":false,"pushed_at":"2023-08-29T10:28:59.000Z","size":131192,"stargazers_count":51,"open_issues_count":162,"forks_count":15,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-07-07T00:42:08.505Z","etag":null,"topics":["cci","climate","conda","esa","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CCI-Tools.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-03-24T10:11:06.000Z","updated_at":"2024-11-05T08:11:13.000Z","dependencies_parsed_at":"2023-09-21T19:27:51.908Z","dependency_job_id":null,"html_url":"https://github.com/CCI-Tools/cate","commit_stats":{"total_commits":3687,"total_committers":20,"mean_commits":184.35,"dds":0.5652291836181177,"last_synced_commit":"c7b914f93544c9c771f6796a605f95a55c542c13"},"previous_names":[],"tags_count":90,"template":false,"template_full_name":null,"purl":"pkg:github/CCI-Tools/cate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CCI-Tools%2Fcate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CCI-Tools%2Fcate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CCI-Tools%2Fcate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CCI-Tools%2Fcate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CCI-Tools","download_url":"https://codeload.github.com/CCI-Tools/cate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CCI-Tools%2Fcate/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264375972,"owners_count":23598455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cci","climate","conda","esa","python"],"created_at":"2024-08-08T05:01:33.740Z","updated_at":"2025-07-20T11:30:24.535Z","avatar_url":"https://github.com/CCI-Tools.png","language":"Python","funding_links":[],"categories":["Climate Change"],"sub_categories":["Climate Data Access and Visualization"],"readme":"\u003cimg alt=\"Cate: ESA CCI Toolbox\" align=\"right\" src=\"https://raw.githubusercontent.com/CCI-Tools/cate/master/doc/source/_static/logo/cci-toolbox-logo-latex.jpg\" /\u003e\n\n[![Build status](https://ci.appveyor.com/api/projects/status/leugvo8fq7nx6kym/branch/master?svg=true)](https://ci.appveyor.com/project/ccitools/cate-core)\n[![GH actions Build status](https://github.com/CCI-Tools/cate/actions/workflows/test.yml/badge.svg)](https://github.com/CCI-Tools/cate/actions/workflows/test.yml/badge.svg)\n[![codecov.io](https://codecov.io/github/CCI-Tools/cate/coverage.svg?branch=master)](https://codecov.io/github/CCI-Tools/cate?branch=master)\n[![Documentation Status](https://readthedocs.org/projects/cate/badge/?version=latest)](http://cate.readthedocs.io/en/latest/?badge=latest)\n                \n# cate\n\nESA CCI Toolbox (Cate) Python package, API and CLI.\n\n## Installation\n\nCate can be installed into a new or existing Python 3.7 [Miniconda](http://conda.pydata.org/miniconda.html) \nor [Anaconda](https://www.continuum.io/downloads) environment as follows:\n\n    $ conda install -c ccitools cate-cli\n\n## Installation from Sources\n\nCate's sources (this repository) are organised as follows:\n\n* `setup.py` - main build script to be run with Python 3.6+\n* `cate/` - main package and production code\n* `test/` - test package and test code\n* `doc/` - documentation in Sphinx/RST format\n\nWe recommend installing Cate into an isolated Python 3 environment, because this\napproach avoids clashes with existing versions of Cate's 3rd-party Python package requirements. \nUsing [Miniconda](http://conda.pydata.org/miniconda.html) \nor [Anaconda](https://www.continuum.io/downloads) will usually avoid platform-specific \nissues caused by module native binaries.\n\nThe first step is to clone latest Cate code and step into the check out directory: \n\n    $ git clone https://github.com/CCI-Tools/cate.git\n    $ cd cate\n\n\n### Using Conda\n\n[Conda](https://conda.io/docs/intro.html) is the package manager used by the Miniconda or \nAnaconda Python distributions.\n\nCreating a new Python environment for Cate will require around 2.2 GB disk space on Linux/Darwin and and 1.2 \nGB on Windows. To create a new Conda environment `cate-env` in your Anaconda/Miniconda installation directory, type:\n\n    $ conda env create\n\nIf you want the environment to be installed in another location, e.g. due to disk space limitations, type:\n\n    $ conda env create --prefix some/other/location/for/cate\n\nNext step is to activate the new environment. \n\n    $ conda activate cate-env\n\nYou can now safely install Cate sources into the new `cate-env` environment.\n    \n    (cate-env) $ python setup.py install\n    \n## Using Docker\n\nYou can also use pre-build Docker images that contain a Python environment with the \n`cate` package already installed. The images are `quay.io/bcdev/cate:\u003cversion\u003e`. E.g. \n\n    $ docker run -d -v ${my_local_dir}:/home/cate quay.io/bcdev/cate:2.1.1 bash\n    (cate-env) $ cate -h  \n\nwhere `${my_local_dir}` refers to any directory on your computer that you may want to access from \nwithin the running Docker container. \n\n## Getting started\n\nTo test the installation, first run the Cate command-line interface. Type\n    \n    $ cate -h\n\nIPython notebooks for various Cate use cases are on the way, they will appear in the project's\n[notebooks](https://github.com/CCI-Tools/cate/tree/master/notebooks) folder.\n\nTo use them interactively, you'll need to install Jupyter and run its Notebook app:\n\n    $ conda install jupyter\n    $ jupyter notebook\n\nOpen the `notebooks` folder and select a use case.\n\n## Running Cate App in Stand-Alone mode\n\nTo run the the graphical user interface [Cate App](https://github.com/CCI-Tools/cate-webui) in \nstand-alone mode you'll need to start a _Cate Web API service_. To do so, first install the `cate` \nPython package as described above. Then Cate Web API service is started from the command-line. \nTo run the service on port 9090 on your local computer, type:\n\n    $ cate-webapi-start --port 9090 \n\nThen open Cate App in a browser and enter the URL `http://localhost:9090`. Press the\n\"Cate Stand-Alone Mode\" button above. This will launch the Cate App in stand-alone mode.\nIf you wish to run a service with limited file system access (sandboxed), \nyou can specify the `root` option that defines a new file system root:\n\n    $ cate-webapi-start --port 9090 --root /home/fritz\n    \nUse CTRL+C or the command\n\n    $ cate-webapi-stop --port 9090\n\nto stop the service.\n\nTo run the service from the docker image, type:\n\n    $ docker run -it -v ${my_local_dir}:/home/cate -p 9090:4000 quay.io/bcdev/cate:2.1.1 bash\n    (cate-env) $ cate-webapi-start --port 4000 --root ${my_local_dir}    \n    \n## Conda Deployment\n\nThere is a dedicated repository [cate-conda](https://github.com/CCI-Tools/cate-conda)\nwhich provides scripts and configuration files to build Cate's Conda packages and a stand-alone installer.\n\n## Development\n\n### Contributors\n\nContributors are asked to read and adhere to our [Developer Guide](https://github.com/CCI-Tools/cate/wiki/Developer-Guide).\n\n### Unit-testing\n\nFor unit testing we use `pytest` and its coverage plugin `pytest-cov`.\n\nTo run the unit-tests with coverage, type\n\n    $ export NUMBA_DISABLE_JIT=1\n    $ py.test --cov=cate test\n    \nWe need to set environment variable `NUMBA_DISABLE_JIT` to disable JIT compilation by `numba`, so that \ncoverage reaches the actual Python code. We use Numba's JIT compilation to speed up numeric Python \nnumber crunching code.\n\nOther recognized environment variables to customize the unit-level tests are\n\n    CATE_DISABLE_WEB_TESTS=1\n    CATE_DISABLE_PLOT_TESTS=1\n    CATE_DISABLE_GEOPANDAS_TESTS=1\n    CATE_DISABLE_CLI_UPDATE_TESTS=1\n\n### Generating the Documentation\n\nWe use the wonderful [Sphinx](http://www.sphinx-doc.org/en/stable/rest.html) tool to generate \nCate's documentation on [ReadTheDocs](https://cate.readthedocs.io/en/latest/index.html). \nIf there is a need to build the docs locally, first create a Conda environment:\n\n    $ cd cate\n    $ conda env create -f environment-rtd.yml\n\nTo regenerate the HTML docs, type    \n    \n    $ cd doc\n    $ make html\n\n## License\n\nThe CCI Toolbox is distributed under terms and conditions of the [MIT license](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCCI-Tools%2Fcate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCCI-Tools%2Fcate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCCI-Tools%2Fcate/lists"}