🌐 localtileserver#
Need to visualize a rather large (gigabytes+) raster? This is for you.
Try it out below!
from localtileserver import TileClient, get_leaflet_tile_layer, examples
from ipyleaflet import Map
# Create a TileClient from a raster file
# client = TileClient('path/to/geo.tif')
client = examples.get_san_francisco() # use example data
# Create ipyleaflet TileLayer from that server
t = get_leaflet_tile_layer(client)
# Create ipyleaflet map, add tile layer, and display
m = Map(center=client.center(), zoom=client.default_zoom)
m.add(t)
m
A Python package for serving tiles from large raster files in
the Slippy Maps standard
(i.e., /zoom/x/y.png) for visualization in Jupyter with ipyleaflet or folium.
Launch a demo on MyBinder
🌟 Highlights#
Launch a tile server for large geospatial images
View local or remote raster files with
ipyleafletorfoliumin JupyterBand math expressions for on-the-fly computed imagery (e.g., NDVI)
Per-band statistics and multiple image stretch modes
Multiple output formats: PNG, JPEG, WebP, GeoTIFF, NPY
Spatial subsetting via bounding box crops and GeoJSON masks
STAC item support for multi-asset catalogs
Xarray DataArray tile serving (NetCDF, Zarr, etc.)
Virtual mosaics from multiple raster files
View rasters with CesiumJS with the built-in web application
Full REST API powered by FastAPI with auto-generated OpenAPI docs
ℹ️ Overview#
The TileClient class can be used to launch a tile server in a background
thread which will serve raster imagery to a viewer (see ipyleaflet and
folium examples in 🚀 User Guide).
This tile server can efficiently deliver varying resolutions of your raster imagery to your viewer; it helps to have pre-tiled, Cloud Optimized GeoTIFFs (COG).
The server exposes a comprehensive REST API built on
FastAPI, including support for
band math expressions, per-band statistics, multiple image stretch modes,
spatial subsetting, STAC catalogs, xarray DataArrays, and virtual mosaics.
Interactive API docs are available at /swagger/.
There is an included, standalone web viewer leveraging CesiumJS.
🪢 Community Usage#
leafmap and geemap: use localtileserver for visualizing large raster images in a Jupyter-based geospatial mapping application
streamlit-geospatial: uses localtileserver’s remote tile server for viewing image tiles
remotetileserver: uses the core FastAPI application to spin up a production ready tile server
Kaustav Mukherjee’s blog post: a user-created demonstration on how to get started with localtileserver
Serving up SpaceNet Imagery for Bokeh: Adam Van Etten’s blog post using localtileserver to view imagery with Bokeh