stactools


Namestactools JSON
Version 0.5.3 PyPI version JSON
download
home_page
SummaryCommand line tool and Python library for working with STAC
upload_time2023-11-21 16:47:32
maintainer
docs_urlNone
author
requires_python>=3.8
licenseApache-2.0
keywords pystac imagery raster catalog stac
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # stactools

![Build Status](https://github.com/stac-utils/stactools/workflows/CI/badge.svg)
[![Documentation](https://readthedocs.org/projects/stactools/badge/?version=latest)](https://stactools.readthedocs.io/en/latest/)
[![PyPI version](https://img.shields.io/pypi/v/stactools)](https://pypi.org/project/stactools/)
[![Conda (channel only)](https://img.shields.io/conda/vn/conda-forge/stactools)](https://anaconda.org/conda-forge/stactools)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

`stactools` is a high-level command line tool and Python library for working with [STAC](https://stacspec.org).
It is based on [PySTAC](https://github.com/stac-utils/pystac).

This is the core `stactools` repository, which provides a basic command line interface (CLI) and API for working with STAC catalogs.
There are a suite of packages available in other repositories for working with a variety of datasets and for doing more complicated operations on STAC data.
See [packages](#packages) for more information.

## Table of Contents

- [Installation](#installation)
- [Running](#running)
- [Documentation](#documentation)
- [Packages](#packages)
- [Developing](#developing)

## Installation

To install the latest version via pip:

```sh
pip install stactools
```

To install the latest version with [conda](https://docs.conda.io/en/latest/):

```sh
conda install -c conda-forge stactools
```

To install the latest development version from the source repository:

```sh
git clone https://github.com/stac-utils/stactools.git
cd stactools
pip install .
```

**NOTE:** In order to read and write Cloud Optimized Geotiffs, GDAL version 3.1 or greater is required.
If your system GDAL is older than version 3.1, consider using [Docker](#using-docker) or [Conda](#using-conda) to get a modern GDAL.

### Optional dependencies

`stactools` includes two optional dependency:

- `s3`: Enables s3 hrefs via `fsspec` and `s3fs`
- `validate`: Enables `stac validate` and `stac lint`

To install optional dependencies:

```sh
pip install 'stactools[s3]'
pip install 'stactools[validate]'
```

### Docker

To download the Docker image from the registry:

```sh
docker pull ghcr.io/stac-utils/stactools:latest
```

## Running

```sh
stac --help
```

### Running from docker

```sh
docker run --rm ghcr.io/stac-utils/stactools:latest --help
```

## Documentation

See the [documentation page](https://stactools.readthedocs.io/) for the latest docs.

## Packages

`stactools` is comprised of many other sub-packages that provide library and CLI functionality.
Officially supported packages are hosted in the Github [`stactools-packages` organization](https://github.com/stactools-packages/stactools-packages.github.io), and other subpackages may be available from other sources.

There are over 25 packages that translate specific types of data into STAC,
including imagery sources like
[aster](https://github.com/stactools-packages/aster),
[landsat](https://github.com/stactools-packages/landsat),
[modis](https://github.com/stactools-packages/modis),
[naip](https://github.com/stactools-packages/naip),
[planet](https://github.com/stactools-packages/planet),
[sentinel1](https://github.com/stactools-packages/sentinel1),
[sentinel1-grd](https://github.com/stactools-packages/sentinel1-grd),
[sentinel2](https://github.com/stactools-packages/sentinel2),
[sentinel3](https://github.com/stactools-packages/sentinel3), landuse/landcover
data ([corine](https://github.com/stactools-packages/corine),
[cgls_lc100](https://github.com/stactools-packages/cgls_lc100),
[aafc-landuse](https://github.com/stactools-packages/aafc-landuse)), Digital
Elevation Models (DEMs)
([cop-dem](https://github.com/stactools-packages/cop-dem),
[alos-dem](https://github.com/stactools-packages/alos-dem)), population data
([gpw](https://github.com/stactools-packages/gpw),
[worldpop](https://github.com/stactools-packages/worldpop)),
[pointclouds](https://github.com/stactools-packages/pointcloud) and many more.

There are also cool tools like [stactools-browse](https://github.com/stactools-packages/stactools-browse) which makes it super easy to deploy a
[STAC Browser](https://github.com/radiantearth/stac-browser) from the command line to browse any local data.

For the list of officially supported packages see the [list of STAC packages](https://github.com/stactools-packages/stactools-packages.github.io#list-of-stac-packages)
on the [stactools-packages GitHub organization](https://github.com/stactools-packages).
Each package can be installed via `pip install stactools-{package}`, e.g. `pip install stactools-landsat`.
Third-party packages can be installed in the same way, or, if they are not on PyPI, directly from the source repository, e.g. `pip install /path/to/my/code/stactools-greatdata`.

## Developing

Clone the repository and install it in editable mode with the `dev` optional dependencies:

```sh
git clone https://github.com/stac-utils/stactools.git
cd stactools
pip install -e '.[dev]'
```

Linting and formatting are handled with [pre-commit](https://pre-commit.com/).
You will need to install pre-commit before committing any changes:

```sh
pre-commit install
```

Tests are handled with [pytest](https://docs.pytest.org/en/7.1.x/):

```sh
pytest
```

Run a Juypter notebook:

```sh
scripts/notebook
```

### Using docker

You can also develop in a Docker container.
Build the container with:

```sh
docker/build
```

Once the container is built, you can run the `scripts/` scripts inside a docker console by running:

```sh
docker/console
```

A complete build and test can be run with:

```sh
docker/cibuild
```

In scenarios where you want to run scripts in `docker/` but don't want to run the build, images can be downloaded via the `pull` script:

```sh
docker/pull
```

Run a [Juypter](https://jupyter.org/) notebook:

```sh
docker/notebook
```

You can run the CLI through docker by running:

```sh
docker/stac --help
```

### Using conda

[conda](https://docs.conda.io/en/latest/) is a useful tool for managing dependencies, both binary and Python-based.
If you have conda installed, you can create a new environment for `stactools` development by running the following command from the top-level directory in this repo:

```sh
conda env create -f environment.yml
```

Then activate the `stactools` environment:

```sh
conda activate stactools
```

Finally, install `stactools` in editable mode and all development requirements:

```sh
pip install -e '.[dev]'
```

### Developing the docs

To build and serve the docs, the development requirements must be installed with `pip install -e '.[docs]'`.
To build the docs, you can use `make html` from inside of the docs directory, and to build the docs and start a server that watches for changes, use `make livehtml`:

```sh
cd docs
make html
make livehtml
```

If using `make livehtml`, once the server starts, navigate to [http://localhost:8000](http://localhost:8000/) to see the docs.
Use 'make' without arguments to see a list of available commands.

You can also run the previous commands in the docker container using:

```sh
docker/console
```

### Code owners and repository maintainer(s)

This repository uses a [code owners file](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) to automatically request reviews for new pull requests.
The current primary maintainer(s) of this repository are listed under the `*` rule in the [CODEOWNERS](./CODEOWNERS) file.

### Adding a new package

To create a new `stactools` package, use the [`stactools` package template](https://github.com/stactools-packages/template).
`stactools` utilizes Python's [namespace packages](https://packaging.python.org/guides/packaging-namespace-packages/) to provide a suite of tools all under the `stactools` namespace.
If you would like your package to be considered for inclusion as a core `stactools` package, please open an issue on this repository with a link to your package repository.

### Releasing

See [RELEASING.md](./RELEASING.md) for the steps to create a new release.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "stactools",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Pete Gadomski <pete.gadomski@gmail.com>",
    "keywords": "pystac,imagery,raster,catalog,STAC",
    "author": "",
    "author_email": "Rob Emanuele <rdemanuele@gmail.com>, Pete Gadomski <pete.gadomski@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/e6/e6/316e794974cce6458caaeea63a145dcd62effa232a908ac3e63f19069273/stactools-0.5.3.tar.gz",
    "platform": null,
    "description": "# stactools\n\n![Build Status](https://github.com/stac-utils/stactools/workflows/CI/badge.svg)\n[![Documentation](https://readthedocs.org/projects/stactools/badge/?version=latest)](https://stactools.readthedocs.io/en/latest/)\n[![PyPI version](https://img.shields.io/pypi/v/stactools)](https://pypi.org/project/stactools/)\n[![Conda (channel only)](https://img.shields.io/conda/vn/conda-forge/stactools)](https://anaconda.org/conda-forge/stactools)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n`stactools` is a high-level command line tool and Python library for working with [STAC](https://stacspec.org).\nIt is based on [PySTAC](https://github.com/stac-utils/pystac).\n\nThis is the core `stactools` repository, which provides a basic command line interface (CLI) and API for working with STAC catalogs.\nThere are a suite of packages available in other repositories for working with a variety of datasets and for doing more complicated operations on STAC data.\nSee [packages](#packages) for more information.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Running](#running)\n- [Documentation](#documentation)\n- [Packages](#packages)\n- [Developing](#developing)\n\n## Installation\n\nTo install the latest version via pip:\n\n```sh\npip install stactools\n```\n\nTo install the latest version with [conda](https://docs.conda.io/en/latest/):\n\n```sh\nconda install -c conda-forge stactools\n```\n\nTo install the latest development version from the source repository:\n\n```sh\ngit clone https://github.com/stac-utils/stactools.git\ncd stactools\npip install .\n```\n\n**NOTE:** In order to read and write Cloud Optimized Geotiffs, GDAL version 3.1 or greater is required.\nIf your system GDAL is older than version 3.1, consider using [Docker](#using-docker) or [Conda](#using-conda) to get a modern GDAL.\n\n### Optional dependencies\n\n`stactools` includes two optional dependency:\n\n- `s3`: Enables s3 hrefs via `fsspec` and `s3fs`\n- `validate`: Enables `stac validate` and `stac lint`\n\nTo install optional dependencies:\n\n```sh\npip install 'stactools[s3]'\npip install 'stactools[validate]'\n```\n\n### Docker\n\nTo download the Docker image from the registry:\n\n```sh\ndocker pull ghcr.io/stac-utils/stactools:latest\n```\n\n## Running\n\n```sh\nstac --help\n```\n\n### Running from docker\n\n```sh\ndocker run --rm ghcr.io/stac-utils/stactools:latest --help\n```\n\n## Documentation\n\nSee the [documentation page](https://stactools.readthedocs.io/) for the latest docs.\n\n## Packages\n\n`stactools` is comprised of many other sub-packages that provide library and CLI functionality.\nOfficially supported packages are hosted in the Github [`stactools-packages` organization](https://github.com/stactools-packages/stactools-packages.github.io), and other subpackages may be available from other sources.\n\nThere are over 25 packages that translate specific types of data into STAC,\nincluding imagery sources like\n[aster](https://github.com/stactools-packages/aster),\n[landsat](https://github.com/stactools-packages/landsat),\n[modis](https://github.com/stactools-packages/modis),\n[naip](https://github.com/stactools-packages/naip),\n[planet](https://github.com/stactools-packages/planet),\n[sentinel1](https://github.com/stactools-packages/sentinel1),\n[sentinel1-grd](https://github.com/stactools-packages/sentinel1-grd),\n[sentinel2](https://github.com/stactools-packages/sentinel2),\n[sentinel3](https://github.com/stactools-packages/sentinel3), landuse/landcover\ndata ([corine](https://github.com/stactools-packages/corine),\n[cgls_lc100](https://github.com/stactools-packages/cgls_lc100),\n[aafc-landuse](https://github.com/stactools-packages/aafc-landuse)), Digital\nElevation Models (DEMs)\n([cop-dem](https://github.com/stactools-packages/cop-dem),\n[alos-dem](https://github.com/stactools-packages/alos-dem)), population data\n([gpw](https://github.com/stactools-packages/gpw),\n[worldpop](https://github.com/stactools-packages/worldpop)),\n[pointclouds](https://github.com/stactools-packages/pointcloud) and many more.\n\nThere are also cool tools like [stactools-browse](https://github.com/stactools-packages/stactools-browse) which makes it super easy to deploy a\n[STAC Browser](https://github.com/radiantearth/stac-browser) from the command line to browse any local data.\n\nFor the list of officially supported packages see the [list of STAC packages](https://github.com/stactools-packages/stactools-packages.github.io#list-of-stac-packages)\non the [stactools-packages GitHub organization](https://github.com/stactools-packages).\nEach package can be installed via `pip install stactools-{package}`, e.g. `pip install stactools-landsat`.\nThird-party packages can be installed in the same way, or, if they are not on PyPI, directly from the source repository, e.g. `pip install /path/to/my/code/stactools-greatdata`.\n\n## Developing\n\nClone the repository and install it in editable mode with the `dev` optional dependencies:\n\n```sh\ngit clone https://github.com/stac-utils/stactools.git\ncd stactools\npip install -e '.[dev]'\n```\n\nLinting and formatting are handled with [pre-commit](https://pre-commit.com/).\nYou will need to install pre-commit before committing any changes:\n\n```sh\npre-commit install\n```\n\nTests are handled with [pytest](https://docs.pytest.org/en/7.1.x/):\n\n```sh\npytest\n```\n\nRun a Juypter notebook:\n\n```sh\nscripts/notebook\n```\n\n### Using docker\n\nYou can also develop in a Docker container.\nBuild the container with:\n\n```sh\ndocker/build\n```\n\nOnce the container is built, you can run the `scripts/` scripts inside a docker console by running:\n\n```sh\ndocker/console\n```\n\nA complete build and test can be run with:\n\n```sh\ndocker/cibuild\n```\n\nIn scenarios where you want to run scripts in `docker/` but don't want to run the build, images can be downloaded via the `pull` script:\n\n```sh\ndocker/pull\n```\n\nRun a [Juypter](https://jupyter.org/) notebook:\n\n```sh\ndocker/notebook\n```\n\nYou can run the CLI through docker by running:\n\n```sh\ndocker/stac --help\n```\n\n### Using conda\n\n[conda](https://docs.conda.io/en/latest/) is a useful tool for managing dependencies, both binary and Python-based.\nIf you have conda installed, you can create a new environment for `stactools` development by running the following command from the top-level directory in this repo:\n\n```sh\nconda env create -f environment.yml\n```\n\nThen activate the `stactools` environment:\n\n```sh\nconda activate stactools\n```\n\nFinally, install `stactools` in editable mode and all development requirements:\n\n```sh\npip install -e '.[dev]'\n```\n\n### Developing the docs\n\nTo build and serve the docs, the development requirements must be installed with `pip install -e '.[docs]'`.\nTo build the docs, you can use `make html` from inside of the docs directory, and to build the docs and start a server that watches for changes, use `make livehtml`:\n\n```sh\ncd docs\nmake html\nmake livehtml\n```\n\nIf using `make livehtml`, once the server starts, navigate to [http://localhost:8000](http://localhost:8000/) to see the docs.\nUse 'make' without arguments to see a list of available commands.\n\nYou can also run the previous commands in the docker container using:\n\n```sh\ndocker/console\n```\n\n### Code owners and repository maintainer(s)\n\nThis repository uses a [code owners file](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) to automatically request reviews for new pull requests.\nThe current primary maintainer(s) of this repository are listed under the `*` rule in the [CODEOWNERS](./CODEOWNERS) file.\n\n### Adding a new package\n\nTo create a new `stactools` package, use the [`stactools` package template](https://github.com/stactools-packages/template).\n`stactools` utilizes Python's [namespace packages](https://packaging.python.org/guides/packaging-namespace-packages/) to provide a suite of tools all under the `stactools` namespace.\nIf you would like your package to be considered for inclusion as a core `stactools` package, please open an issue on this repository with a link to your package repository.\n\n### Releasing\n\nSee [RELEASING.md](./RELEASING.md) for the steps to create a new release.\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Command line tool and Python library for working with STAC",
    "version": "0.5.3",
    "project_urls": {
        "changelog": "https://github.com/stac-utils/stactools/blob/main/CHANGELOG.md",
        "discussions": "https://github.com/radiantearth/stac-spec/discussions/categories/stac-software",
        "documentation": "https://stactools.readthedocs.io/",
        "homepage": "https://github.com/stac-utils/stactools",
        "repository": "https://github.com/stac-utils/stactools.git"
    },
    "split_keywords": [
        "pystac",
        "imagery",
        "raster",
        "catalog",
        "stac"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "43896c8b32e5d82fce88478db31d517c7f52fc79c6a6a53c7a006b01838d7b01",
                "md5": "fadb672a32d82f20690521d348ad49cf",
                "sha256": "4ceffac7d2c1315fe811b3f6ae3d320772e44b5375ea6c3fa3cc0da8b849dabb"
            },
            "downloads": -1,
            "filename": "stactools-0.5.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fadb672a32d82f20690521d348ad49cf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 57281,
            "upload_time": "2023-11-21T16:47:27",
            "upload_time_iso_8601": "2023-11-21T16:47:27.859320Z",
            "url": "https://files.pythonhosted.org/packages/43/89/6c8b32e5d82fce88478db31d517c7f52fc79c6a6a53c7a006b01838d7b01/stactools-0.5.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e6e6316e794974cce6458caaeea63a145dcd62effa232a908ac3e63f19069273",
                "md5": "6a197bb45e9ec62df7ffbc61a0a06380",
                "sha256": "ccf321a33604a9edd571eb80ddaef427b928db36d528ac72d918f90a3212a883"
            },
            "downloads": -1,
            "filename": "stactools-0.5.3.tar.gz",
            "has_sig": false,
            "md5_digest": "6a197bb45e9ec62df7ffbc61a0a06380",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 46556,
            "upload_time": "2023-11-21T16:47:32",
            "upload_time_iso_8601": "2023-11-21T16:47:32.003469Z",
            "url": "https://files.pythonhosted.org/packages/e6/e6/316e794974cce6458caaeea63a145dcd62effa232a908ac3e63f19069273/stactools-0.5.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-11-21 16:47:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "stac-utils",
    "github_project": "stactools",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "stactools"
}
        
Elapsed time: 2.78615s