Tiler Swift, the swiftest quadkey tiler in the wild west
Project description
tiler-swift
Tiler Swift, the swiftest quadkey tiler in the wild west.
Features
- ✔ Get quadkey tiles from raster
- ✔ Simple and blazingly fast
Table of Contents
Overview
This project provides a Python library and a thin command line wrapper on top of it to cut quadkey raster tiles.
Quadkey tiles are raster files of equal size (width, height) on a specific zoom level; the coordinate reference system is the Mercator Projection. The quadkey identifier is constructed by dividing the world into four, then dividing each cell into four again, and so on, recursively.
See
- https://labs.mapbox.com/what-the-tile/
- https://docs.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system
- https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
- https://wiki.openstreetmap.org/wiki/Slippy_Map
Library
The quadkeys(dataset, z, nodata=0, tile_filter_fn=None)
function provides a generator yielding quadkeys and their associated data.
Args
dataset
: the rasterio dataset to cut quadkeys fromz
: the zoom level to cut quadkeys atnodata
: the value to use for fillingtile_filter_fn
: a functionmercantile.Tile -> bool
to filter the quadkey generator with
Yields a tuple with
quadkey
: the quadkey name e.g.1202121012
data
: the pixel data as a numpy ndarrayprofile
: the rasterio profile with metadata e.g. transformation for geo-referencing
Example usage:
for quadkey, data, profile in quadkeys(dataset, z=args.zoom):
print(quadkey)
with rasterio.open(args.out, "w", **profile) as out:
out.write(data)
Command Line
usage: tiler-swift [-h] -z ZOOM -o OUT [-n NODATA] raster
cuts quadkeys from raster
positional arguments:
raster raster to cut quadkeys from
optional arguments:
-h, --help show this help message and exit
-z ZOOM, --zoom ZOOM zoom level to cut quadkeys at (default: None)
-o OUT, --out OUT directory to write quadkeys to (default: None)
-n NODATA, --nodata NODATA
nodata value to use for filling at edges (default: None)
Example usage:
quadkeys input.tif -o output.tif -z 10 -n 0
Development
For development
make
make run
$ tiler-swift --help
Inside the self-contained reproducible container
flake8 rfq
mypy rfq
pytest
License
Copyright © 2020 robofarm
Distributed under the MIT License (MIT).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file tiler-swift-1.1.0.tar.gz
.
File metadata
- Download URL: tiler-swift-1.1.0.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.6 CPython/3.8.5 Linux/5.8.0-55-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0dc500bf2a8d91c83d90d4d67646dcd77f731f28e225db9bd055faae6dce5997 |
|
MD5 | 40ab2f8816b5905cbe73ba59a1ef74b9 |
|
BLAKE2b-256 | aaa378ad5400bbb249c29c764600d29c5fd3ab44ffd8d179a9df21e3c5daa3ab |
File details
Details for the file tiler_swift-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: tiler_swift-1.1.0-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.6 CPython/3.8.5 Linux/5.8.0-55-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20b951b9f3d894d2a3324b50b6de1cc0eed8e59c62873bbcf1859c963c54121c |
|
MD5 | e194459227d92f531c3a51d6a56f9732 |
|
BLAKE2b-256 | ea5c4c82f76934aaed90abc60d1ad226068d126d9907bbf50ca5f33b5e5be57a |