Back to projects

Data / Course project

Incident Visualizer

A Flask incident-analysis interface built on SQLite, pandas, OpenCage geocoding, KMeans clustering, and Matplotlib/Seaborn charts.

FlaskpandasKMeansOpenCageMatplotlib
View repository
INCIDENT VISUALIZER
SQLITE → GEOCODING → CLUSTERS + CHARTS

01 / COMPONENTS & DATA FLOW

Inside the system.

  1. 01SQLite incidents
  2. 02pandas + geocoding
  3. 03KMeans + aggregation
  4. 04Flask chart views

Tabular analysis

The visualization module loads incident records into a pandas DataFrame and counts the most common incident natures.

Geographic projection

Incident addresses are sent to OpenCage for coordinates. Rows without usable coordinates are removed before KMeans clustering over latitude and longitude.

Rendered chart artifacts

Matplotlib and Seaborn export a top-20 incident bar chart, a geographic cluster plot, and a 24-hour incident distribution histogram for the Flask interface.

02 / IMPLEMENTATION DECISIONS

Why it works this way.

Charts are batch outputs

The implementation produces image artifacts from a dataset snapshot. It is not a continuously updated live dashboard.

Missing coordinates affect the view

Failed geocoding removes records from the clustering dataset, so the geographic view has a narrower population than the incident-frequency chart.

03 / SCOPE & TRADEOFFS

The implementation boundary.

A visualization project rather than a production incident service. Coordinate clustering is exploratory; it does not establish geographic distance-aware clustering or causal patterns.

04 / READ THE IMPLEMENTATION

Follow it into the code.