Skip to main content

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


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.2.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spotmap-0.1.2-py3-none-any.whl (1.9 MB view details)

Uploaded Python 3

File details

Details for the file spotmap-0.1.2.tar.gz.

File metadata

  • Download URL: spotmap-0.1.2.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

Hashes for spotmap-0.1.2.tar.gz
Algorithm Hash digest
SHA256 448d006320a621533303a81889a13d3053f4ee77aee963931f29de5543eb1f05
MD5 cfcc3ed2e0b93210d69495ba1f958ebd
BLAKE2b-256 6c0c43dae82ec2c5eca74ccf50d0a0016278f265153d6129a57694233d05a067

See more details on using hashes here.

File details

Details for the file spotmap-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: spotmap-0.1.2-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

Hashes for spotmap-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8cfb4c518015345476a36bbe0e3ce2a6ee8b5d6158ad525c2008f82bba6406c2
MD5 a95ac7a52bfe1da3ff4caa6a44fa67c6
BLAKE2b-256 8047f0d7f0048a3f0af7b86dc44e3063751fd3e3b0264386b06ae3b66d73d8ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page