https://github.com/banesullivan/localtileserver

🌐 dynamic tile server for visualizing rasters in Jupyter with ipyleaflet or folium

https://github.com/banesullivan/localtileserver

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • ○
    CITATION.cff file
  • ✓
    codemeta.json file
    Found codemeta.json file
  • ✓
    .zenodo.json file
    Found .zenodo.json file
  • ○
    DOI references
  • ○
    Academic publication links
  • ○
    Committers with academic emails
  • ○
    Institutional organization owner
  • ○
    JOSS paper metadata
  • ○
    Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary

Keywords

dynamic-tiling folium geospatial gis ipyleaflet jupyter large-image localtileserver map-tiles python raster satellite-imagery visualization

Keywords from Contributors

dataviz geoparquet geospatial-analysis leafmap plotly solara whiteboxtools geoscience hydrological labels
Last synced: 5 months ago · JSON representation

Repository

🌐 dynamic tile server for visualizing rasters in Jupyter with ipyleaflet or folium

Basic Info
Statistics
  • Stars: 332
  • Watchers: 11
  • Forks: 29
  • Open Issues: 16
  • Releases: 14
Topics
dynamic-tiling folium geospatial gis ipyleaflet jupyter large-image localtileserver map-tiles python raster satellite-imagery visualization
Created over 4 years ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

tile-diagram

🌐 Local Tile Server for Geospatial Rasters

codecov PyPI conda

Need to visualize a rather large (gigabytes+) raster? This is for you.

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 MyBinder

Documentation: https://localtileserver.banesullivan.com/

Built on rio-tiler

🌟 Highlights

  • Launch a tile server for large geospatial images
  • View local or remote* raster files with ipyleaflet or folium in Jupyter
  • View rasters with CesiumJS with the built-in web application

*remote raster files should be pre-tiled Cloud Optimized GeoTiffs

🚀 Usage

Usage details and examples can be found in the documentation: https://localtileserver.banesullivan.com/

The following is a minimal example to visualize a local raster file with ipyleaflet:

```py from localtileserver import getleaflettile_layer, TileClient from ipyleaflet import Map

First, create a tile server from local raster file

client = TileClient('path/to/geo.tif')

Create ipyleaflet tile layer from that server

t = getleaflettile_layer(client)

m = Map(center=client.center(), zoom=client.default_zoom) m.add(t) m ```

ipyleaflet

â„šī¸ Overview

The TileClient class can be used to to launch a tile server in a background thread which will serve raster imagery to a viewer (usually ipyleaflet or folium in Jupyter notebooks).

This tile server can efficiently deliver varying resolutions of your raster imagery to your viewer; it helps to have pre-tiled, Cloud Optimized GeoTIFFs (COGs).

There is an included, standalone web viewer leveraging CesiumJS.

âŦ‡ī¸ Installation

Get started with localtileserver to view rasters in Jupyter or deploy as your own Flask application.

🐍 Installing with conda

Conda makes managing localtileserver's dependencies across platforms quite easy and this is the recommended method to install:

bash conda install -c conda-forge localtileserver

🎡 Installing with pip

If you prefer pip, then you can install from PyPI: https://pypi.org/project/localtileserver/

pip install localtileserver

💭 Feedback

Please share your thoughts and questions on the Discussions board. If you would like to report any bugs or make feature requests, please open an issue.

If filing a bug report, please share a scooby Report:

py import localtileserver print(localtileserver.Report())

Owner

  • Name: Bane Sullivan
  • Login: banesullivan
  • Kind: user
  • Location: United States

visualization geek & software engineer. co-created @pyvista.

GitHub Events

Total
  • Issues event: 10
  • Watch event: 33
  • Delete event: 8
  • Issue comment event: 50
  • Push event: 24
  • Pull request review event: 5
  • Pull request review comment event: 4
  • Pull request event: 20
  • Fork event: 1
  • Create event: 11
Last Year
  • Issues event: 10
  • Watch event: 33
  • Delete event: 8
  • Issue comment event: 50
  • Push event: 24
  • Pull request review event: 5
  • Pull request review comment event: 4
  • Pull request event: 20
  • Fork event: 1
  • Create event: 11

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 577
  • Total Committers: 9
  • Avg Commits per committer: 64.111
  • Development Distribution Score (DDS): 0.494
Past Year
  • Commits: 14
  • Committers: 4
  • Avg Commits per committer: 3.5
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
banesullivan b****i@g****m 292
banesullivan b****n@g****m 228
dependabot[bot] 4****]@u****m 50
Qiusheng Wu g****s@g****m 2
Oliver Lopez l****r@g****m 1
Paolo Colombo 8****l@u****m 1
Rambaud Pierrick 1****u@u****m 1
RichardScottOZ 7****Z@u****m 1
Thomas Logue, PE 3****4@u****m 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 65
  • Total pull requests: 128
  • Average time to close issues: 4 months
  • Average time to close pull requests: 26 days
  • Total issue authors: 28
  • Total pull request authors: 11
  • Average comments per issue: 5.18
  • Average comments per pull request: 1.3
  • Merged pull requests: 88
  • Bot issues: 0
  • Bot pull requests: 83
Past Year
  • Issues: 6
  • Pull requests: 18
  • Average time to close issues: 11 days
  • Average time to close pull requests: about 1 month
  • Issue authors: 5
  • Pull request authors: 4
  • Average comments per issue: 5.17
  • Average comments per pull request: 1.56
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 12
Top Authors
Issue Authors
  • banesullivan (19)
  • giswqs (16)
  • 12rambau (3)
  • chpolste (1)
  • avanetten (1)
  • MATRIX4284 (1)
  • jovanovski (1)
  • nve-sak (1)
  • niowniow (1)
  • haseeb33 (1)
  • Dodekaphonia (1)
  • gtgrp-user (1)
  • ryan-salo (1)
  • mrpan (1)
  • vincentsarago (1)
Pull Request Authors
  • dependabot[bot] (107)
  • banesullivan (43)
  • giswqs (3)
  • tjlogue4 (2)
  • bane-bot (2)
  • paolchol (2)
  • manzt (2)
  • lopezvoliver (2)
  • snigdho-dutta (1)
  • MATRIX4284 (1)
  • 12rambau (1)
Top Labels
Issue Labels
enhancement (10) bug (6) usage-question (1)
Pull Request Labels
dependencies (107) python (42) github_actions (37) docker (28) documentation (1)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 41,843 last-month
  • Total docker downloads: 225
  • Total dependent packages: 22
    (may contain duplicates)
  • Total dependent repositories: 139
    (may contain duplicates)
  • Total versions: 89
  • Total maintainers: 1
pypi.org: localtileserver

Locally serve geospatial raster tiles in the Slippy Map standard.

  • Versions: 53
  • Dependent Packages: 18
  • Dependent Repositories: 126
  • Downloads: 41,843 Last month
  • Docker Downloads: 225
Rankings
Dependent packages count: 1.2%
Dependent repos count: 1.3%
Downloads: 2.6%
Average: 3.5%
Stargazers count: 4.0%
Docker downloads count: 4.3%
Forks count: 7.3%
Maintainers (1)
Last synced: 6 months ago
proxy.golang.org: github.com/banesullivan/localtileserver
  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
conda-forge.org: localtileserver

Need to visualize a rather large (gigabytes) raster you have locally? This is for you. Local tile server for viewing geospatial raster files with ipyleaflet or folium. A Flask application for serving tiles from large raster files in the Slippy Maps standard (i.e., `/zoom/x/y.png`).

  • Versions: 29
  • Dependent Packages: 4
  • Dependent Repositories: 13
Rankings
Dependent repos count: 9.8%
Dependent packages count: 12.5%
Average: 20.8%
Stargazers count: 26.0%
Forks count: 34.7%
Last synced: 6 months ago

Dependencies

.github/workflows/doc.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/lint.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/package.yml actions
  • actions/checkout v3 composite
  • docker/build-push-action v4 composite
  • docker/login-action v2 composite
  • docker/metadata-action v4 composite
.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/test.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • codecov/codecov-action v3 composite
  • conda-incubator/setup-miniconda v2 composite
Dockerfile docker
  • python 3.11.1-slim build
requirements.txt pypi
  • Flask-Caching *
  • click *
  • cmocean *
  • flask >=2.0.0
  • flask-cors *
  • flask-restx >=0.5.0
  • gunicorn *
  • large-image >=1.14.1
  • matplotlib *
  • pytest *
  • pytest-cov *
  • requests *
  • scooby *
  • sentry-sdk *
  • server-thread *
  • werkzeug *
requirements_doc.txt pypi
  • bokeh *
  • jupyter-sphinx *
  • pydata-sphinx-theme ==0.12.0
  • sphinx ==5.3.0
  • sphinx-copybutton *
  • sphinx-notfound-page *
requirements_jupyter.txt pypi
  • folium *
  • ipyleaflet *
  • jupyter-server-proxy *
  • shapely *
requirements_style.txt pypi
  • black *
  • codespell *
  • flake8 <7.0.0
  • flake8-black *
  • flake8-bugbear *
  • flake8-isort *
  • isort *
  • pydocstyle *
setup.py pypi
  • Flask-Caching *
  • GDAL *
  • click *
  • flask >=2.0.0
  • flask-cors *
  • flask-restx >=0.5.0
  • large-image *
environment.yml conda
  • black
  • click
  • cmocean
  • codespell
  • flake8 <5.0.0
  • flake8-black
  • flake8-bugbear
  • flake8-isort
  • flask >=2.0.0
  • flask-caching
  • flask-cors
  • flask-restx >=0.5.0
  • folium
  • gunicorn
  • ipyleaflet
  • isort
  • jupyter-server-proxy
  • jupyter-sphinx
  • large-image-source-rasterio
  • large-image-source-tiff
  • matplotlib
  • pip
  • pydata-sphinx-theme
  • pydocstyle
  • pylibmc
  • pytest
  • pytest-cov
  • python >=3.8
  • requests
  • scooby
  • server-thread
  • shapely
  • sphinx
  • sphinx-copybutton
  • sphinx-notfound-page
  • werkzeug <2.2
pyproject.toml pypi