Skip to main content

helps handling tile pyramids

Project description

Tilematrix handles geographic web tiles and tile pyramids.

https://badge.fury.io/py/tilematrix.svg https://travis-ci.org/ungarj/tilematrix.svg?branch=master https://coveralls.io/repos/github/ungarj/tilematrix/badge.svg?branch=master https://img.shields.io/pypi/pyversions/mapchete.svg

The module is designed to translate between tile indices (zoom, row, column = ZYX) and map coordinates (e.g. latitute, longitude).

Tilematrix supports metatiling and tile buffers. Furthermore it makes heavy use of shapely and it can also generate Affine objects per tile which facilitates working with rasterio for tile based data reading and writing.

It is very similar to mercantile but besides of supporting spherical mercator tile pyramids, it also supports geodetic (WGS84) tile pyramids.

Installation

Use pip to install the latest stable version:

pip install tilematrix

Manually install the latest development version

pip install -r requirements.txt
python setup.py install

Documentation

CLI

This package ships with a command line tool tmx which provides the following subcommands:

  • bounds: Print bounds of given Tile.

  • bbox: Print bounding box geometry of given Tile.

  • tile: Print Tile covering given point.

  • tiles: Print Tiles covering given bounds.

Geometry outputs can either be formatted as WKT or GeoJSON. For example the following command will print a valid GeoJSON representing all tiles for zoom level 1 of the geodetic WMTS grid:

$ tmx -f GeoJSON tiles -- 1 -180 -90 180 90
{
  "type": "FeatureCollection",
  "features": [
    {"geometry": {"coordinates": [[[-90.0, 0.0], [-90.0, 90.0], [-180.0, 90.0], [-180.0, 0.0], [-90.0, 0.0]]], "type": "Polygon"}, "properties": {"col": 0, "row": 0, "zoom": 1}, "type": "Feature"},
    {"geometry": {"coordinates": [[[0.0, 0.0], [0.0, 90.0], [-90.0, 90.0], [-90.0, 0.0], [0.0, 0.0]]], "type": "Polygon"}, "properties": {"col": 1, "row": 0, "zoom": 1}, "type": "Feature"},
    {"geometry": {"coordinates": [[[90.0, 0.0], [90.0, 90.0], [0.0, 90.0], [0.0, 0.0], [90.0, 0.0]]], "type": "Polygon"}, "properties": {"col": 2, "row": 0, "zoom": 1}, "type": "Feature"},
    {"geometry": {"coordinates": [[[180.0, 0.0], [180.0, 90.0], [90.0, 90.0], [90.0, 0.0], [180.0, 0.0]]], "type": "Polygon"}, "properties": {"col": 3, "row": 0, "zoom": 1}, "type": "Feature"},
    {"geometry": {"coordinates": [[[-90.0, -90.0], [-90.0, 0.0], [-180.0, 0.0], [-180.0, -90.0], [-90.0, -90.0]]], "type": "Polygon"}, "properties": {"col": 0, "row": 1, "zoom": 1}, "type": "Feature"},
    {"geometry": {"coordinates": [[[0.0, -90.0], [0.0, 0.0], [-90.0, 0.0], [-90.0, -90.0], [0.0, -90.0]]], "type": "Polygon"}, "properties": {"col": 1, "row": 1, "zoom": 1}, "type": "Feature"},
    {"geometry": {"coordinates": [[[90.0, -90.0], [90.0, 0.0], [0.0, 0.0], [0.0, -90.0], [90.0, -90.0]]], "type": "Polygon"}, "properties": {"col": 2, "row": 1, "zoom": 1}, "type": "Feature"},
    {"geometry": {"coordinates": [[[180.0, -90.0], [180.0, 0.0], [90.0, 0.0], [90.0, -90.0], [180.0, -90.0]]], "type": "Polygon"}, "properties": {"col": 3, "row": 1, "zoom": 1}, "type": "Feature"}
  ]
}

Print WKT representation of tile 4 15 23:

$ tmx bbox 4 15 23
POLYGON ((90 -90, 90 -78.75, 78.75 -78.75, 78.75 -90, 90 -90))

Also, tiles can have buffers around called pixelbuffer:

$ tmx --pixelbuffer 10 bbox 4 15 23
POLYGON ((90.439453125 -90, 90.439453125 -78.310546875, 78.310546875 -78.310546875, 78.310546875 -90, 90.439453125 -90))

Print GeoJSON representation of tile 4 15 23 on a mercator tile pyramid:

$ tmx -output_format GeoJSON -grid mercator bbox 4 15 15
{"type": "Polygon", "coordinates": [[[20037508.342789203, -20037508.3427892], [20037508.342789203, -17532819.799940553], [17532819.799940553, -17532819.799940553], [17532819.799940553, -20037508.3427892], [20037508.342789203, -20037508.3427892]]]}

License

MIT License

Copyright (c) 2015, 2016, 2017 EOX IT Services

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

tilematrix-2021.11.0.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

tilematrix-2021.11.0-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file tilematrix-2021.11.0.tar.gz.

File metadata

  • Download URL: tilematrix-2021.11.0.tar.gz
  • Upload date:
  • Size: 23.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for tilematrix-2021.11.0.tar.gz
Algorithm Hash digest
SHA256 67a12c269afe0990cb53326b9ae6878c76c1150dc2ab491510b60b6966b3ec46
MD5 9af088282384454e9e25e8c95afb3021
BLAKE2b-256 cae6f1796f56366b69fdaa4f5d188a5ce583b74a52033e531cf355148e083d3c

See more details on using hashes here.

File details

Details for the file tilematrix-2021.11.0-py3-none-any.whl.

File metadata

  • Download URL: tilematrix-2021.11.0-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for tilematrix-2021.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c8abf9bad9afd175c9e7826864cbba1607b6f2575518eb015e77af9222a328ea
MD5 a7604b31e320277372b5a717c6b2635f
BLAKE2b-256 5d15bbb246b5662f9c8aab28d2e67e0924e09d0f25fa04b5afdf38fd5b9b25e0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page