Skip to main content

A Python library for rendering heatmaps to Web Mercator tiles

Project description

A Python library for rendering heatmaps to Web Mercator tiles.

Synopsis

This snippet generates PNG tiles for a heatmap where colours indicate data point density:

# standards
from pathlib import Path

# volute
from volute import Config, DataPoint, Gradient, LatLng, LatLngBox, render_heatmap_to_tiles

# Configuration options. The web-based interactive tool in the "configurator"
# subdirectory can be used to iteratively find the best config.
config = Config(
    gradient=Gradient.GREEN_TO_RED,
    num_colors=200,
)

tiles_root = Path("/www/my/tiles")
for zoom in range(12, 16):

    # This will create all the tiles, as a sequence of (int, int, PIL.Image) tuples
    iter_tiles = render_heatmap_to_tiles(
        config,
        LatLngBox(south=55.8516, west=-3.4306, north=56.0059, east=-2.9480),
        zoom,
        [DataPoint(LatLng(lat, lng)) for lat, lng in my_data_points],
    )

    # Then we can save the tiles to disk
    for tile_x, tile_y, tile_image in iter_tiles:
        tile_file = tiles_root / f"{zoom}" / f"{tile_x}" / f"{tile_y}.png"
        tile_file.parent.mkdir(parents=True, exist_ok=True)
        tile_image.save(tile_file)

Examples

See it in action: https://saintamh.org/maps/edinburgh-street-crime/

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

volute-1.0.1.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

volute-1.0.1-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file volute-1.0.1.tar.gz.

File metadata

  • Download URL: volute-1.0.1.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for volute-1.0.1.tar.gz
Algorithm Hash digest
SHA256 51b4c5290360e3906cc408c81644e0f08fe1fcbb9e019ab35f9f8511f27de7e3
MD5 37695209b7ec7475db10b84c585af484
BLAKE2b-256 3a0cb85cbdec943c99486b978037f9aac520aa8a8114ceeaa925422768c0447f

See more details on using hashes here.

File details

Details for the file volute-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: volute-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for volute-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3bfaa42a8c195576474486cbba6c693a30bb18a80a31c98428ea37698a903824
MD5 9c13257954b9c6ee7aa9fee3dcefa5ba
BLAKE2b-256 fabf9a67160e324e2d691e9585fc92750a9a960943260bd2f98b0ee0065138b9

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