Supermorecado
Extend the functionality of morecantile with additional commands.
Documentation: https://developmentseed.org/supermorecado/
Source Code: https://github.com/developmentseed/supermorecado
supermorecado is like supermercado, but with support for other TileMatrixSet grids.
Install
$ python -m pip install -U pip
$ python -m pip install supermorecado
$ python -m pip install -U pip
$ python -m pip install git+https://github.com/developmentseed/supermorecado.git
Usage
supermorecado --help
Usage: supermorecado [OPTIONS] COMMAND [ARGS]...
Command line interface for the Supermorecado Python package.
Options:
--help Show this message and exit.
Commands:
burn Burn a stream of GeoJSONs into a output stream of the tiles they intersect for a given zoom.
edges For a stream of [<x>, <y>, <z>] tiles, return only those tiles that are on the edge.
heatmap Creates a vector `heatmap` of tile densities.
union Returns the unioned shape of a stream of [<x>, <y>, <z>] tiles in GeoJSON.
supermorecado burn
<{geojson} stream> | supermorecado burn <zoom> --identifier {tms Identifier} | <[x, y, z] stream>
Takes an input stream of GeoJSON and returns a stream of intersecting [x, y, z]
s for a given zoom.
Using default TMS (WebMercatorQuad
)
cat tests/fixtures/france.geojson | supermorecado burn 9 | morecantile shapes | fio collect | geojsonio
Using other TMS (e.g WGS1984Quad
)
cat tests/fixtures/france.geojson | supermorecado burn 6 --identifier WGS1984Quad | morecantile shapes --identifier WGS1984Quad | fio collect | geojsonio
supermorecado edges
<[x, y, z] stream> | supermorecado 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 tests/fixtures/france.geojson | supermorecado burn 9 | supermorecado edges | morecantile shapes | fio collect | geojsonio
supermorecado union
<[x, y, z] stream> | supermorecado union --identifier {tms Identifier} | <{geojson} stream>
Outputs a stream of unioned GeoJSON from an input stream of [x, y, z]
s. Like morecantile shapes
but as an overall footprint instead of individual shapes for each tile.
Using default TMS (WebMercatorQuad
)
cat tests/fixtures/france.geojson | supermorecado burn 9 | supermorecado union | fio collect | geojsonio
Using other TMS (e.g WGS1984Quad
)
cat tests/fixtures/france.geojson | supermorecado burn 6 --identifier WGS1984Quad | supermorecado union --identifier WGS1984Quad | fio collect | geojsonio
supermorecado heatmap
<[x, y, z] stream> | supermorecado heatmap --identifier {tms Identifier} | <{geojson} stream>
Outputs a stream of heatmap GeoJSON from an input stream of [x, y, z]
s.
Using default TMS (WebMercatorQuad
)
cat tests/fixtures/heatmap.txt| supermorecado heatmap | fio collect | geojsonio
Using other TMS (e.g WGS1984Quad
)
# create a list of tiles
cat tests/fixtures/france.geojson | supermorecado burn 6 --identifier WGS1984Quad > france_wgs84_z6.txt
# randomly append more tiles
for run in {1..10}; do cat france_wgs84_z6.txt | sort -R | head -n 2 >> france_wgs84_z6.txt; done
cat france_wgs84_z6.txt | supermorecado heatmap --identifier WGS1984Quad | fio collect | geojsonio
API migration
supermorecado
is really similar to supermercado
(it reuse most of the code) but with the addition of multiple TMS support from morecantile.
features = [
{
"geometry": {
"coordinates": [
[-127.97, 49.15],
[-101.95, -8.41],
[-43.24, -32.84],
[37.62, -25.17],
[71.72, -7.01],
[107.23, 48.69],
],
"type": "LineString",
},
"properties": {},
"type": "Feature",
},
]
from supermercado import burntiles, uniontiles
tiles = burntiles.burn(features)
u_tiles = uniontiles.union(features)
import morecantile
from supermorecado import burnTiles, unionTiles
tms = morecantile.tms.get("WebMercatorQuad")
burntiles = burnTiles(tms=tms)
tiles = burntiles.burn(features)
uniontiles = unionTiles(tms=tms)
u_tiles = uniontiles.burn(features)
Changes
See CHANGES.md.
Contribution & Development
See CONTRIBUTING.md
License
See LICENSE
Authors
Created by Development Seed