A Django-based dashboard for generating ShakeMaps without manually crafting
event.xml. Duty officers only need to pick the event they want to process —
the system automatically builds the event.xml, downloads strong-motion
waveforms from SeisComP through the scwfparam module, and runs the ShakeMap
generation pipeline. In short, Shakemap Generator provides a user-friendly UI
on top of the ShakeMap workflow.
- Event dashboard — browse SeisComP events, filter, and trigger ShakeMap generation with one click.
- Automatic event XML — generates
event.xmlfrom the selected event, so no manual file editing is required. - Waveform retrieval — pulls strong-motion waveforms from SeisComP using
the
scwfparammodule. - Pipeline metrics & trigger log — monitor completed, pending, and failed ShakeMap jobs, plus per-catalog statistics.
- PSA detail view — inspect response-spectra (PSA) results per event.
- The dashboard syncs events from the SeisComP source.
- An officer selects an event and presses Generate (full) or Model (GMPE-only for smaller events).
- The pipeline writes
event.xml, fetches waveforms viascwfparam, and runs ShakeMap generation. - Results (intensity maps, PSA spectra, waveform plots) appear in the UI and can be pushed to the new-datin server.
shakemap_generator/
├── event_dashboard/ # Main Django app (views, models, pipeline, tasks)
├── shakemap_manager/ # Project settings, Celery, URLs, WSGI/ASGI
├── manage.py
├── requirements.txt
└── docs/images/ # Screenshots used in this README
- Python 3.x
- Django 3.2+
- Redis (Celery broker/result backend)
- SeisComP with
scwfparamon the waveform source machine
Install dependencies:
pip install -r requirements.txtpython manage.py migrate
python manage.py runserverFor the Celery worker and beat:
celery -A shakemap_manager worker -l info
celery -A shakemap_manager beat -l infoConfiguration is kept in shakemap_manager/settings.py. Set
DJANGO_SECRET_KEY in the environment (see .env.example) for production use.



