Interactive epidemiological spot maps for India
Project description
SpotMap
Interactive epidemiological spot maps for India
SpotMap turns a CSV of case/control coordinates into a publication-ready interactive HTML map with:
- Dot density clustering (cases only)
- Spot map pins (cases and/or controls) with custom colours
- Automatic state/district boundary overlays (bundled data — no shapefile setup needed)
- Sidebar with mode toggle, colour pickers, pin size slider, and PNG/PDF export
- Smart auto-detection of latitude, longitude, and outcome columns
Installation
pip install spotmap
Quick start
Python API
from spotmap import SpotMap
SpotMap("my_data.csv").build().save("map.html")
Command line
spotmap my_data.csv -o map.html
CSV format
SpotMap auto-detects columns — no strict naming required.
| Requirement | Details |
|---|---|
| Coordinates | Separate lat / lon columns or a combined "lat,lon" column |
| Outcome | A column named outcome, status, case_control, etc. with values like case / control |
Example:
latitude,longitude,outcome
28.6,77.2,case
19.0,72.8,control
13.0,80.2,case
Python API reference
SpotMap(
csv_path, # required
state_shp=None, # custom state boundary (shapefile/GeoPackage)
district_shp=None, # custom district boundary
lat_col=None, # override auto-detection
lon_col=None,
outcome_col=None,
case_value=None, # value that means "case" in outcome_col
count_cutoff=2, # districts ≤ cutoff → district zoom
margin_deg=1.0, # boundary crop padding
cluster_color="#E85252", # dot-density bubble colour
case_color="#D55757", # case pin colour
control_color="#7676E7", # control pin colour
)
Chain calls:
sm = SpotMap("data.csv", case_color="#FF0000").build()
sm.save("map.html")
# Access the raw Folium map for further customisation
folium_map = sm.map
CLI reference
usage: spotmap [-h] [-o OUTPUT] [--state-shp STATE_SHP]
[--district-shp DISTRICT_SHP] [--lat-col LAT_COL]
[--lon-col LON_COL] [--outcome-col OUTCOME_COL]
[--case-value CASE_VALUE] [--count-cutoff COUNT_CUTOFF]
[--cluster-color CLUSTER_COLOR] [--case-color CASE_COLOR]
[--control-color CONTROL_COLOR]
csv
License
MIT © Tharun Mallesan
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
spotmap-0.1.0.tar.gz
(1.9 MB
view details)
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 spotmap-0.1.0.tar.gz.
File metadata
- Download URL: spotmap-0.1.0.tar.gz
- Upload date:
- Size: 1.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d17fc17bc9dbdce3ac474782e5cf7c7f4392a55b8d86a42baa6ae7bd92b81d4
|
|
| MD5 |
e105eb88b61a25e3e22054aaf78bda43
|
|
| BLAKE2b-256 |
c6702110a01de0ee870ff0c172670420b96df4d2b71e6ac7e6586784c5421da0
|
File details
Details for the file spotmap-0.1.0-py3-none-any.whl.
File metadata
- Download URL: spotmap-0.1.0-py3-none-any.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
750e7db287e7ed7dfda11268b983a83a0beb8032ec6b8db33aacdc1e19933579
|
|
| MD5 |
a75a7b9a6970cbf64713c38d024dbdc5
|
|
| BLAKE2b-256 |
b9fc6b5428fdac1e1d47127a61c029059054fa135fcf4fc50bfd1e154a8121a3
|