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
Interactive (no coding required)
The easiest way — works great in Google Colab or a Jupyter notebook. Paste these two lines into a cell and run it:
!pip install spotmap
from spotmap import spotmap_run
spotmap_run()
SpotMap then walks you through a few simple prompts:
- Upload your data file (in Colab an upload button appears; elsewhere it asks for the file path).
- Confirm which columns hold latitude, longitude, and the case/control outcome (SpotMap pre-selects its best guess).
- Pick which value means "case".
The finished map is shown right in the notebook cell — no need to hunt for a
file — and is also saved as spotmap.html (pass a different name with
spotmap_run("my_map.html")).
In a plain terminal,
spotmap_run()reads your answers from the keyboard and saves an HTML file to open in your browser. For automated scripts, use the Python API below instead.
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
long_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
Team
SpotMap is developed by the ADARV team:
| Name | Role |
|---|---|
| Muniraj Mallesan | Maintainer |
| Dr. Sharan Murali | Team Lead |
| Manikandan K | |
| Shanmuga Sundharam | |
| Yogita Chaudhary | |
| Barath U | |
| Balaji S | |
| Deepana R |
License
MIT © ADARV
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 spotmap-0.1.27.tar.gz.
File metadata
- Download URL: spotmap-0.1.27.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 |
60bfa426b11510578adafa36519998888dc01d2c416d75e78627606333d7c79a
|
|
| MD5 |
e298602f47e00007a5e4f00f5846431d
|
|
| BLAKE2b-256 |
61c1cab40422abea1358877ea7c151f63aefa18aadb3744ce39a4d7d56fbe72d
|
File details
Details for the file spotmap-0.1.27-py3-none-any.whl.
File metadata
- Download URL: spotmap-0.1.27-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 |
4346495e7855309b352013b2246006746b001677a8e2bee14c7e30d824108d11
|
|
| MD5 |
45031418c8e82d203d2a67a3efcc27f6
|
|
| BLAKE2b-256 |
2faaf5225f1f9f2873c02db8f5d739998df539b78bd505ee6e8da3f7075d9f3e
|