https://github.com/mapbox/supermercado
Supercharger for mercantile
https://github.com/mapbox/supermercado
imagery pxm satellite
Last synced: 5 months ago
JSON representation
Supercharger for mercantile
- Host: GitHub
- URL: https://github.com/mapbox/supermercado
- Owner: mapbox
- License: mit
- Created: 2015-11-19T00:58:41.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2025-10-16T18:54:03.000Z (5 months ago)
- Last Synced: 2025-10-21T20:56:10.707Z (5 months ago)
- Topics: imagery, pxm, satellite
- Language: Python
- Homepage:
- Size: 176 KB
- Stars: 129
- Watchers: 117
- Forks: 21
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://pypi.org/project/supermercado/) [](https://github.com/mapbox/supermercado/actions/workflows/tests.yml)
# supermercado
`supermercado` extends the functionality of [`mercantile`](https://github.com/mapbox/mercantile) with additional commands
## Quickstart
```sh
pip install supermercado
```
### Usage
```sh
Usage: supermercado [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
burn Burn a stream of GeoJSON into a output...
edges For a stream of [, , ] tiles, return...
union Returns the unioned shape of a stream of...
```
#### `supermercado burn`
```
<{geojson} stream> | supermercado burn | <[x, y, z] stream>
```
Takes an input stream of GeoJSON and returns a stream of intersecting `[x, y, z]`s for a given zoom.

```sh
cat data/ellada.geojson | supermercado burn 10 | mercantile shapes | fio collect
```

#### `supermercado edges`
```
<[x, y, z] stream> | supermercado edges | <[x, y, z] stream>
```
Outputs a stream of `[x, y, z]`s representing the edge tiles of an input stream of `[x, y, z]`s. Edge tile = any tile that is either directly adjacent to a tile that does not exist, or diagonal to an empty tile.
```
cat data/ellada.geojson | supermercado burn 10 | supermercado edges | mercantile shapes | fio collect | geojsonio
```

#### `supermercado union`
```
<[x, y, z] stream> | supermercado union | <{geojson} stream>
```
Outputs a stream of unioned GeoJSON from an input stream of `[x, y, z]`s. Like `mercantile shapes` but as an overall footprint instead of individual shapes for each tile.
```
cat data/ellada.geojson | supermercado burn 10 | supermercado union | fio collect | geojsonio
```

#### `getting crazy`
```
cat data/ellada.geojson | supermercado burn 12 | supermercado edges | supermercado union | fio collect | geojsonio
```

## Contributing
### Developing
```sh
git clone git@github.com:mapbox/supermercado.git
cd supermercado
uv venv
source .venv/bin/activate
uv sync --all-groups
```
### Releasing
1. Within your PR, update `pyproject.toml` with the new version number
2. Once the PR is merged, pull `main` and verify the tests
```sh
uv run pytest
uv run ruff check .
uv run ruff format --check .
```
3. Tag with the new version number and push
```sh
# ie
$ git checkout main
$ git pull
$ git tag 1.2.3
$ git push origin main 1.2.3
```
4. GitHub Actions builds the release, runs `uvx twine check`, and publishes to PyPI
using the `pypi` environment token