A Python package for serving Kepler raster tiles
Project description
Kepler Raster Server
A raster tile server built on top of TiTiler by Development Seed, providing terrain mesh and STAC mosaic capabilities. All TiTiler licenses and attributions apply to this project.
Features
- Terrain Mesh Generation: Generate quantized mesh terrain tiles for 3D visualization for STAC raster tiles and .pmtiles in raster format
- STAC Mosaic Support: Dynamic STAC API integration for tile serving
Installation
Local Development
- Clone the repository:
git clone https://github.com/yourusername/kepler-raster-server.git
cd kepler-raster-server
- Build and run with Docker locally:
# Enable Docker BuildKit for better caching
export DOCKER_BUILDKIT=1
docker-compose up --build titiler
The raster tile server will be available at http://localhost:8000 and can be used to setup a raster tile layer in kepler.gl during development.
API Endpoints
The following endpoints are required for raster tile layer in kepler.gl.
STAC Items
/cog/tiles/WebMercatorQuad/{z}/{x}/{y}.npy- Get stac items in npy format
STAC Mosaic
/stac/mosaic/tiles/{z}/{x}/{y}.npy- Get mosaic tiles in npy format
Terrain Mesh
/mesh/tiles/{z}/{x}/{y}.terrain- Get quantized mesh suitable with QuantizedMeshLoader from loaders.gl
Deployment
AWS Lambda Deployment
Follow the TiTiler AWS Lambda deployment guide for serverless deployment. Note that you'll need enough concurrency to support lambda instance per request. In kepler.gl at this moment raster tile layer issues 6 requests per raster server during loading (or 12 when elevation meshes are enabled). Make sure to setup enough Lambda concurrency, reserved concurency or provisioned concurrency to prevent 503 Service not available message when there are more requests then available simultaneous Lambda instances. Make sure to control your expenses and don't share your server URL publicly unless intended.
If you need to process many requests concurrently more reliably:
- Use AWS Fargate, ECS, or EC2 where multi-threaded or async server logic is supported
- See the TiTiler AWS deployment guide for more details
Using in Your Application
To use the server in your Python application:
from kepler_raster_server import app as kepler_app
Publishing to PyPI
To publish a new version to PyPI:
- Update the version in
pyproject.toml - Run the publish script:
./scripts/publish.sh
License
This project is licensed under the MIT License - see the LICENSE file for details.
Attribution
This project is built on top of TiTiler by Development Seed, which is also licensed under the MIT License. All TiTiler licenses and attributions apply to this project.
Credits
- TiTiler by Development Seed - The base tile server implementation
- Development Seed - For their excellent work on TiTiler and related geospatial tools
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kepler_raster_server-0.0.11.tar.gz.
File metadata
- Download URL: kepler_raster_server-0.0.11.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
885208140c808136cf2eaa490d78506ad0add2dd31c6b122e6f0a2db55de68dd
|
|
| MD5 |
0485a6f9d84f4ec45d8cd9add8abc8ea
|
|
| BLAKE2b-256 |
6af55232076126b87ce9a01927b811038075338fe699082f96f6e2ce7e0b2136
|
File details
Details for the file kepler_raster_server-0.0.11-py3-none-any.whl.
File metadata
- Download URL: kepler_raster_server-0.0.11-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b5cc6bcbf966c81096d56cdec193da7a9e908e5bf5b24b8cc038e22aac3eccf
|
|
| MD5 |
848df0532e9fd05a51bc9b8a3c98efb2
|
|
| BLAKE2b-256 |
415be9b0a565018a3d758f1d3b28b19b2fcf33ed23a45302844f26aa3a82ddd5
|