Corporate security and travel risk

Sites, travel routes, incidents and briefings

Mexico City, Mexicosynthetic data, real placeMaps, charts and report
The question

Which sites and routes are near recent incidents, where and when do incidents cluster, and what do the briefings say about each area?

A corporate security team uploads its sites, travel routes, a year of security incidents from its own reporting, risk zones, hotels, hospitals, safe havens, a travel log and site guard roster, and two briefings. It wants to know which sites and routes are closest to incidents and where and when incidents cluster.

19.4326, -99.1332data covers about 10 by 8 km
12datasets uploaded
22output layers
23maps made
28charts made
45findings
452 sStart run time

Every map and chart this run made is here. 23 map images, 28 charts and the cited report (PDF, Word, Markdown), as exported on 2026-10-22.

Findings (first few)

  • Evidenced: The timeline counts 2,180 dated events in Security incidents, Protest events, Travel log per week, from week of 2025-09-29 to week of 2026-09-28 1234.
  • Evidenced: By dataset: Security incidents 1,700; Travel log 400; Protest events 80 1.
  • Evidenced: The trend is +0.105 events per week; the second half of the weeks has 1,079 against 1,078 in the first (+0.1%) 1.
  • Evidenced: The busiest weeks were week of 2026-03-02 (123), week of 2026-06-08 (120), week of 2026-04-27 (110) 1.
  • Evidenced: The quietest weeks were week of 2026-09-28 (19), week of 2025-10-20 (21), week of 2026-07-20 (22) 1.

What Start ran

Describe mode, the local model only (no paid model); run status succeeded, 8 analyst agents.

gp_calculate_densitygp_find_nearestgp_find_point_clustersgp_hot_spotsgp_near_repeatgp_outliersgp_space_time_hot_spotsgp_spatial_autocorrelationgp_summarize_within

Maps

Every map image this run exported, with legend, north arrow and scale bar. Select one to view it full size.

Hot spot analysis: Protest events
Hot spot analysis: Protest eventsFig. 2
Hot spot analysis: Hotels
Hot spot analysis: HotelsFig. 3
Hot spot analysis: Security incidents
Hot spot analysis: Security incidentsFig. 4
Emerging hot spots: Protest events
Emerging hot spots: Protest eventsFig. 5
Emerging hot spots: Security incidents
Emerging hot spots: Security incidentsFig. 6
Repeat and near repeat classification: Protest events
Repeat and near repeat classification: Protest eventsFig. 7
Summarize within: Risk zones
Summarize within: Risk zonesFig. 8
Summarize within: Risk zones
Summarize within: Risk zonesFig. 9
Summarize within: Risk zones
Summarize within: Risk zonesFig. 10
Find point clusters: Hospitals
Find point clusters: HospitalsFig. 11
Find point clusters: cluster hulls
Find point clusters: cluster hullsFig. 12
Find point clusters: Safe havens
Find point clusters: Safe havensFig. 13
Find point clusters: cluster hulls
Find point clusters: cluster hullsFig. 14
Find point clusters: Protest events
Find point clusters: Protest eventsFig. 15
Find point clusters: cluster hulls
Find point clusters: cluster hullsFig. 16
Calculate density: Protest events
Calculate density: Protest eventsFig. 17
Calculate density: Hotels
Calculate density: HotelsFig. 18
Calculate density: Security incidents
Calculate density: Security incidentsFig. 19
Risk zones by risk_score
Risk zones by risk_scoreFig. 20
Find outliers: Risk zones
Find outliers: Risk zonesFig. 21
Find nearest: Hospitals
Find nearest: HospitalsFig. 22
Find nearest: Hospitals
Find nearest: HospitalsFig. 23
Find nearest: Hospitals
Find nearest: HospitalsFig. 24

Charts

Every chart image this run exported.

Security incidents over time (occurred_at)
Security incidents over time (occurred_at)Fig. 25
Protest events over time (date)
Protest events over time (date)Fig. 26
Travel log over time (date)
Travel log over time (date)Fig. 27
Hot spot analysis: Protest events
Hot spot analysis: Protest eventsFig. 28
Hot spot analysis: Hotels
Hot spot analysis: HotelsFig. 29
Hot spot analysis: Security incidents
Hot spot analysis: Security incidentsFig. 30
Emerging hot spots: Protest events
Emerging hot spots: Protest eventsFig. 31
Emerging hot spots: Security incidents
Emerging hot spots: Security incidentsFig. 32
Repeat and near repeat classification: Protest events
Repeat and near repeat classification: Protest eventsFig. 33
Summarize within: Risk zones
Summarize within: Risk zonesFig. 34
Summarize within: Risk zones
Summarize within: Risk zonesFig. 35
Summarize within: Risk zones
Summarize within: Risk zonesFig. 36
Find point clusters: Hospitals
Find point clusters: HospitalsFig. 37
Find point clusters: cluster hulls
Find point clusters: cluster hullsFig. 38
Find point clusters: Safe havens
Find point clusters: Safe havensFig. 39
Find point clusters: cluster hulls
Find point clusters: cluster hullsFig. 40
Find point clusters: Protest events
Find point clusters: Protest eventsFig. 41
Find point clusters: cluster hulls
Find point clusters: cluster hullsFig. 42
Calculate density: Protest events
Calculate density: Protest eventsFig. 43
Calculate density: Hotels
Calculate density: HotelsFig. 44
Calculate density: Security incidents
Calculate density: Security incidentsFig. 45
Find outliers: Risk zones
Find outliers: Risk zonesFig. 46
Find nearest: Hospitals
Find nearest: HospitalsFig. 47
Find nearest: Hospitals
Find nearest: HospitalsFig. 48
Find nearest: Hospitals over time
Find nearest: Hospitals over timeFig. 49
Find point clusters: Protest events over time
Find point clusters: Protest events over timeFig. 50
Repeat and near repeat classification: Protest events over time
Repeat and near repeat classification: Protest events over timeFig. 51
Timeline: events per week by dataset
Timeline: events per week by datasetFig. 1

The cited report

Sample: Corporate security and travel risk, Mexico City: report

Project: Sample: Corporate security and travel risk, Mexico City
Goal: Describe the project Sample: Corporate security and travel risk, Mexico City: run the analyses that tell the most about its data, draw every result, and write a cited report.
Run: 294d550b-9eea-4398-b429-6280256992ba (running, 11 agent run(s))
Generated: 2026-10-18T05:29:33Z, version 1
Model cost: USD 0.0000 over 0 model call(s)

Data used

DataKindRowsTime spanSummarySource
Company sitesvector, Point88 point features; 'type' has 4 values (top: office 3, warehouse 2, client 2); 'security_level' has 2 values (top: standard 6, enhanced 2); 'staff' 8 to 420 (mean 97.5); named by 'name' (e.g. Head office, Distribution center, Sales office Norte); extent -99.1652,19.4107 to -99.1046,19.4578. Point locations of Company sites by type.107
Hotelsvector, Point3030 point features; 'approved' has 2 values (top: True 17, False 13); 'stars' 3 to 5 (mean 4.067); named by 'name' (e.g. Hotel Los Pinos 1, Hotel El Cerro 2, Hotel La Fuente 3); extent -99.1728,19.4108 to -99.1024,19.4643. Point locations of Hotels by approved.108
Travel routesvector, LineString1010 line features; 'mode' has 2 values (top: approved taxi 8, company car 2); 'typical_min' 19 to 44 (mean 30.2); named by 'name' (e.g. Airport to Head office, Airport to Hotel Los Pinos 1, Hotel Los Pinos 1 to Head office); total length 51.24 km; extent -99.1652,19.4105 to -99.0901,19.4643. Lines (Travel routes) such as routes or networks.109
Security incidentsvector, Point1,7002025-10-01 to 2026-09-301,700 point features; dated by 'occurred_at' from 2025-10-01 to 2026-09-30; 'type' has 8 values (top: robbery 456, theft 390, vandalism 252); 'severity' has 3 values (top: low 832, medium 610, high 258); extent -99.1802,19.3971 to -99.0859,19.4682. Dated point events by type: where and when Security incidents happen.2
Risk zonesvector, Polygon1414 polygon (area) features; 'night_travel' has 3 values (top: escort 5, allowed 5, avoid 4); 'risk_score' 1 to 10 (mean 6.143); named by 'name' (e.g. La Ribera, Los Pinos, El Cerro); total area 80.06 km2; extent -99.1809,19.3964 to -99.0856,19.4688. Areas (Risk zones) with risk_score to compare and map.110
Hospitalsvector, Point1515 point features; 'english_speaking' has 2 values (top: False 9, True 6); 'trauma_level' 1 to 3 (mean 1.6); named by 'name' (e.g. Hospital Las Acacias, Hospital El Puerto Viejo, Hospital La Alameda); extent -99.1691,19.4018 to -99.0923,19.4672. Point locations of Hospitals by english_speaking.111
Safe havensvector, Point1212 point features; 'type' has 4 values (top: partner office 4, embassy 4, hotel 3); 'open_24h' has 2 values (top: True 6, False 6); extent -99.1732,19.4029 to -99.0999,19.4675. Point locations of Safe havens by type.112
Protest eventsvector, Point802026-01-05 to 2026-09-2880 point features; dated by 'date' from 2026-01-05 to 2026-09-28; 'size' has 3 values (top: large 32, small 28, medium 20); 'theme' has 4 values (top: education 23, water 22, labor 21); extent -99.1465,19.4258 to -99.1195,19.4519. Dated point events by size: where and when Protest events happen.3
Travel logtable4002025-10-01 to 2026-09-30Table of 400 rows and 6 columns without geometry; dated by 'date' from 2025-10-01 to 2026-09-30; 'incident_reported' has 2 values (top: False 390, True 10); 'travellers' 1 to 4 (mean 2.56); 'delay_min' 0 to 24 (mean 6.668). A table of Travel log without locations.4
Site guard rostertable16Table of 16 rows and 4 columns without geometry; 'shift' has 2 values (top: day 8, night 8); 'armed' has 2 values (top: False 15, True 1); 'guards' 1 to 6 (mean 4.188). A table of Site guard roster without locations.113
Country security briefingdocument1-page pdf document 'Country security briefing'; language en; mentions 7 place(s): Head office to Distribution center (1), Head of (1), Distribution (1), La Ribera (1), Head office (1). A document about Head office to Distribution center, Head of, Distribution.114
Hotel security assessmentdocument1-page md document 'Hotel security assessment'; language en; mentions 4 place(s): Hotel Los Pinos 1 (1), Hotel El Cerro 2 (1), Head office (1), Hotel La Fuente 3 (1). A document about Hotel Los Pinos 1, Hotel El Cerro 2, Head office.115
Sample: Corporate security and travel risk, Mexico Cityrecord116
Hot spot analysis: Protest eventslayer, Polygon29117
Hot spot analysis: Hotelslayer, Polygon14118
Hot spot analysis: Security incidentslayer, Polygon353119
Emerging hot spots: Protest eventslayer, Polygon14120
Emerging hot spots: Security incidentslayer, Polygon108121
Repeat and near repeat classification: Protest eventslayer, Point80122
Summarize within: Risk zoneslayer, Polygon14123
Summarize within: Risk zoneslayer, Polygon14124
Summarize within: Risk zoneslayer, Polygon14125
Find point clusters: Hospitalslayer, Point15126
Find point clusters: cluster hullslayer, Polygon1127
Find point clusters: Safe havenslayer, Point12128
Find point clusters: cluster hullslayer, Polygon2129
Find point clusters: Protest eventslayer, Point80130
Find point clusters: cluster hullslayer, Polygon1131
Calculate density: Protest eventslayer, Polygon386132
Calculate density: Hotelslayer, Polygon82133
Calculate density: Security incidentslayer, Polygon2,240134
Find outliers: Risk zoneslayer, Polygon14135
Find nearest: Hospitalslayer, Point14136
Find nearest: Hospitalslayer, Point14137
Find nearest: Hospitalslayer, Point6138

Timeline

Timeline: events per week by dataset
Figure 1. Timeline: events per week by dataset 1. Per week, 2025-09-29 to 2026-09-28. Source: Security incidents, Protest events, Travel log (2,180 features). The data is in the appendix.

The timeline counts 2,180 dated events in Security incidents, Protest events, Travel log per week, from week of 2025-09-29 to week of 2026-09-28 1234. By dataset: Security incidents 1,700; Travel log 400; Protest events 80 1. The trend is +0.105 events per week; the second half of the weeks has 1,079 against 1,078 in the first (+0.1%) 1.

Busiest weeks

  • week of 2026-03-02: 123 events 1
  • week of 2026-06-08: 120 events 1
  • week of 2026-04-27: 110 events 1

Quietest weeks

  • week of 2026-09-28: 19 events 1
  • week of 2025-10-20: 21 events 1
  • week of 2026-07-20: 22 events 1

Hot spots

What this analysis is. Hot spot analysis: Getis-Ord Gi* hot and cold spots with z-scores, p-values and confidence bins 5. In ArcGIS it is Find Hot Spots or Hot Spot Analysis (Getis-Ord Gi*); in QGIS, qgis:hotspot (plugin) 5.

Why it was run on this data. 80 points: Getis-Ord Gi* tests whether the concentrations in Protest events are statistically significant 6.

What it found. Hot spots on Protest events: Hot spot analysis: 1 layer saved: Hot spot analysis: Protest events (29 features) 78. It reported result, bins 29; result, count 29; result, elapsed ms 5; result, cell size m 500; result, incidents used 80; result, distance band m 1,000 7.

ResultValue
result, bins29
result, count29
result, elapsed ms5
result, cell size m500
result, incidents used80
result, distance band m1,000
billing, cost0.0516
billing, list price0.0516
billing, upstream cost0

Findings

  • Evidenced: Hot spots on Protest events: Hot spot analysis: 1 layer saved: Hot spot analysis: Protest events (29 features) 78.
  • Evidenced: It reported result, bins 29; result, count 29; result, elapsed ms 5; result, cell size m 500; result, incidents used 80; result, distance band m 1,000 7.

A model draft was discarded because a sentence did not cite a source of this section.

Tool gp_hot_spots; parameters {"project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Protest events (cf75e6b1)"}, "aggregation": "hexagon", "cell_size_m": 500.0, "distance_band_m": 1000.0}

Hot spots

What this analysis is. Hot spot analysis: Getis-Ord Gi* hot and cold spots with z-scores, p-values and confidence bins 5. In ArcGIS it is Find Hot Spots or Hot Spot Analysis (Getis-Ord Gi*); in QGIS, qgis:hotspot (plugin) 5.

Why it was run on this data. 30 points: Getis-Ord Gi* tests whether the concentrations in Hotels are statistically significant 9.

What it found. The hot spot analysis generated 14 features 10 after processing the Hotels layer 11. The analysis used 30 incidents and set both the distance band and cell size to 2,000 m 10. The process completed quickly, taking 2 ms 10. The billing for this analysis was 0.0506 10.

ResultValue
result, bins14
result, count14
result, elapsed ms2
result, cell size m2,000
result, incidents used30
result, distance band m2,000
billing, cost0.0506
billing, list price0.0506
billing, upstream cost0

Findings

  • Evidenced: Hot spots on Hotels: Hot spot analysis: 1 layer saved: Hot spot analysis: Hotels (14 features) 1011.
  • Evidenced: It reported result, bins 14; result, count 14; result, elapsed ms 2; result, cell size m 2,000; result, incidents used 30; result, distance band m 2,000 10.

Tool gp_hot_spots; parameters {"project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Hotels (28842e9c)"}, "aggregation": "hexagon", "cell_size_m": 2000.0, "distance_band_m": 2000.0}

Hot spots

What this analysis is. Hot spot analysis: Getis-Ord Gi* hot and cold spots with z-scores, p-values and confidence bins 5. In ArcGIS it is Find Hot Spots or Hot Spot Analysis (Getis-Ord Gi*); in QGIS, qgis:hotspot (plugin) 5.

Why it was run on this data. 1700 points: Getis-Ord Gi* tests whether the concentrations in Security incidents are statistically significant 12.

What it found. Hot spots on Security incidents: Hot spot analysis: 1 layer saved: Hot spot analysis: Security incidents (353 features) 1314. It reported result, bins 353; result, count 353; result, elapsed ms 18; result, cell size m 500; result, incidents used 1,700; result, distance band m 500 13.

ResultValue
result, bins353
result, count353
result, elapsed ms18
result, cell size m500
result, incidents used1,700
result, distance band m500
billing, cost0.084
billing, list price0.084
billing, upstream cost0

Findings

  • Evidenced: Hot spots on Security incidents: Hot spot analysis: 1 layer saved: Hot spot analysis: Security incidents (353 features) 1314.
  • Evidenced: It reported result, bins 353; result, count 353; result, elapsed ms 18; result, cell size m 500; result, incidents used 1,700; result, distance band m 500 13.

Tool gp_hot_spots; parameters {"project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Security incidents (afb5d90c)"}, "aggregation": "hexagon", "cell_size_m": 500.0, "distance_band_m": 500.0}

Space time hot spots

What this analysis is. Emerging hot spots: Where hot spots are new, consecutive, intensifying, persistent, diminishing, sporadic, oscillating or historical over time 15. In ArcGIS it is Emerging Hot Spot Analysis or Create Space Time Cube 15.

Why it was run on this data. Protest events carry dates in 'date': emerging hot spot analysis finds new, intensifying and fading hot spots per week 16.

What it found. Space time hot spots on Protest events: Emerging hot spots: 1 layer saved: Emerging hot spots: Protest events (14 features) 817. It reported result, count 14; result, elapsed ms 4; result, resolution 8; result, features used 80; result, time neighbors 0; billing, cost 0.104 17.

ResultValue
result, count14
result, elapsed ms4
result, resolution8
result, features used80
result, time neighbors0
billing, cost0.104
billing, list price0.104
billing, upstream cost0

Findings

  • Evidenced: Space time hot spots on Protest events: Emerging hot spots: 1 layer saved: Emerging hot spots: Protest events (14 features) 817.
  • Evidenced: It reported result, count 14; result, elapsed ms 4; result, resolution 8; result, features used 80; result, time neighbors 0; billing, cost 0.104 17.

A model draft was discarded because a sentence did not cite a source of this section.

Tool gp_space_time_hot_spots; parameters {"project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Protest events (cf75e6b1)"}, "interval": "week", "bin_shape": "h3", "resolution": 8, "time_field": "date"}

Space time hot spots

What this analysis is. Emerging hot spots: Where hot spots are new, consecutive, intensifying, persistent, diminishing, sporadic, oscillating or historical over time 15. In ArcGIS it is Emerging Hot Spot Analysis or Create Space Time Cube 15.

Why it was run on this data. Security incidents carry dates in 'occurred_at': emerging hot spot analysis finds new, intensifying and fading hot spots per week 18.

What it found. Space time hot spots on Security incidents: Emerging hot spots: 1 layer saved: Emerging hot spots: Security incidents (108 features) 1419. It reported result, count 108; result, elapsed ms 21; result, resolution 8; result, features used 1,700; result, time neighbors 0; billing, cost 0.185 19.

ResultValue
result, count108
result, elapsed ms21
result, resolution8
result, features used1,700
result, time neighbors0
billing, cost0.185
billing, list price0.185
billing, upstream cost0

Findings

  • Evidenced: Space time hot spots on Security incidents: Emerging hot spots: 1 layer saved: Emerging hot spots: Security incidents (108 features) 1419.
  • Evidenced: It reported result, count 108; result, elapsed ms 21; result, resolution 8; result, features used 1,700; result, time neighbors 0; billing, cost 0.185 19.

Tool gp_space_time_hot_spots; parameters {"project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Security incidents (afb5d90c)"}, "interval": "week", "bin_shape": "h3", "resolution": 8, "time_field": "occurred_at"}

Near repeat

What this analysis is. Repeat and near repeat classification: Classify incidents as originators, repeats (same place) or near repeats within a distance and time window, with a Knox test table 20. In ArcGIS it is Repeat and Near Repeat Classification or Near Repeat Calculator 20.

Why it was run on this data. Near repeat analysis tests whether Protest events close in space also follow each other within 27 days 21.

What it found. The tool executed used the Protest events data 8 to classify near repeats 22. The resulting dataset contained a count of 80 pairs 22, with 11 total chains identified 22. Furthermore, 15 pairs were linked, and the average distance was reported as 200 m 22.

ResultValue
result, days27
result, count80
result, chains11
result, distance m200
result, elapsed ms4
result, pairs linked15
billing, cost0.0524
billing, list price0.0524
billing, upstream cost0

Findings

  • Evidenced: Near repeat on Protest events: Repeat and near repeat classification: 1 layer saved: Repeat and near repeat classification: Protest events (80 features) 822.
  • Evidenced: It reported result, days 27; result, count 80; result, chains 11; result, distance m 200; result, elapsed ms 4; result, pairs linked 15 22.

Tool gp_near_repeat; parameters {"days": 27, "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Protest events (cf75e6b1)"}, "distance_m": 200.0, "time_field": "date"}

Summarize within

What this analysis is. Summarize within: Count and aggregate the features inside each polygon (or bin), proportionally for lines and polygons 23. In ArcGIS it is Summarize Within or Aggregate Points; in QGIS, native:countpointsinpolygon or native:sumlinelengths 23.

Why it was run on this data. Count Hospitals inside each feature of Risk zones by english_speaking; the counts map as a choropleth (natural breaks, sequential colors) 24.

What it found. Summarize within on Hospitals, Risk zones: Summarize within: 1 layer saved: Summarize within: Risk zones (14 features) 252627. It reported result, count 14; result, elapsed ms 0; billing, cost 0.0106; billing, list price 0.0106; billing, upstream cost 0 25.

ResultValue
result, count14
result, elapsed ms0
billing, cost0.0106
billing, list price0.0106
billing, upstream cost0

Findings

  • Evidenced: Summarize within on Hospitals, Risk zones: Summarize within: 1 layer saved: Summarize within: Risk zones (14 features) 252627.
  • Evidenced: It reported result, count 14; result, elapsed ms 0; billing, cost 0.0106; billing, list price 0.0106; billing, upstream cost 0 25.

Tool gp_summarize_within; parameters {"stats": [{"stat": "sum", "field": "trauma_level"}], "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Hospitals (8a96a3d4)"}, "group_by": "english_speaking", "polygons": {"layer": "Risk zones (a4d2e294)"}}

Summarize within

What this analysis is. Summarize within: Count and aggregate the features inside each polygon (or bin), proportionally for lines and polygons 23. In ArcGIS it is Summarize Within or Aggregate Points; in QGIS, native:countpointsinpolygon or native:sumlinelengths 23.

Why it was run on this data. Count Hospitals inside each feature of Risk zones by english_speaking; the counts map as a choropleth (natural breaks, sequential colors) 24.

What it found. Summarize within on Safe havens, Risk zones: Summarize within: 1 layer saved: Summarize within: Risk zones (14 features) 272829. It reported result, count 14; result, elapsed ms 0; billing, cost 0.01052; billing, list price 0.01052; billing, upstream cost 0 28.

ResultValue
result, count14
result, elapsed ms0
billing, cost0.01052
billing, list price0.01052
billing, upstream cost0

Findings

  • Evidenced: Summarize within on Safe havens, Risk zones: Summarize within: 1 layer saved: Summarize within: Risk zones (14 features) 272829.
  • Evidenced: It reported result, count 14; result, elapsed ms 0; billing, cost 0.01052; billing, list price 0.01052; billing, upstream cost 0 28.

Tool gp_summarize_within; parameters {"stats": [], "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Safe havens (d7ec6bb0)"}, "group_by": "type", "polygons": {"layer": "Risk zones (a4d2e294)"}}

Summarize within

What this analysis is. Summarize within: Count and aggregate the features inside each polygon (or bin), proportionally for lines and polygons 23. In ArcGIS it is Summarize Within or Aggregate Points; in QGIS, native:countpointsinpolygon or native:sumlinelengths 23.

Why it was run on this data. Count Hospitals inside each feature of Risk zones by english_speaking; the counts map as a choropleth (natural breaks, sequential colors) 24.

What it found. The analysis employed the gp_summarize_within tool 30, accepting Protest events 8 and Risk zones 27 as inputs 30. This process yielded a result count of 14 30.

ResultValue
result, count14
result, elapsed ms0
billing, cost0.01188
billing, list price0.01188
billing, upstream cost0

Findings

  • Evidenced: Summarize within on Protest events, Risk zones: Summarize within: 1 layer saved: Summarize within: Risk zones (14 features) 82730.
  • Evidenced: It reported result, count 14; result, elapsed ms 0; billing, cost 0.01188; billing, list price 0.01188; billing, upstream cost 0 30.

Tool gp_summarize_within; parameters {"stats": [], "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Protest events (cf75e6b1)"}, "group_by": "size", "polygons": {"layer": "Risk zones (a4d2e294)"}}

Find point clusters

What this analysis is. Find point clusters: Density-based clusters (DBSCAN, HDBSCAN or OPTICS, optionally space-time) with hulls and noise 31. In ArcGIS it is Find Point Clusters or Density-based Clustering; in QGIS, native:dbscanclustering or native:stdbscanclustering 31.

Why it was run on this data. DBSCAN finds dense groups of Hospitals and separates noise 32.

What it found. Find point clusters on Hospitals: Find point clusters: 2 layers saved: Find point clusters: Hospitals (15 features); Find point clusters: cluster hulls (1 feature) 2633. It reported result, count 15; result, noise 4; result, distance m 2,000; result, elapsed ms 2; result, min points 3; billing, cost 0.0503 33.

ResultValue
result, count15
result, noise4
result, distance m2,000
result, elapsed ms2
result, min points3
billing, cost0.0503
billing, list price0.0503
billing, upstream cost0

Findings

  • Evidenced: Find point clusters on Hospitals: Find point clusters: 2 layers saved: Find point clusters: Hospitals (15 features); Find point clusters: cluster hulls (1 feature) 2633.
  • Evidenced: It reported result, count 15; result, noise 4; result, distance m 2,000; result, elapsed ms 2; result, min points 3; billing, cost 0.0503 33.

Tool gp_find_point_clusters; parameters {"method": "dbscan", "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Hospitals (8a96a3d4)"}, "distance_m": 2000.0, "min_points": 3}

Find point clusters

What this analysis is. Find point clusters: Density-based clusters (DBSCAN, HDBSCAN or OPTICS, optionally space-time) with hulls and noise 31. In ArcGIS it is Find Point Clusters or Density-based Clustering; in QGIS, native:dbscanclustering or native:stdbscanclustering 31.

Why it was run on this data. DBSCAN finds dense groups of Safe havens and separates noise 34.

What it found. The tool saved 2 layers: Find point clusters: Safe havens found 12 features, and Find point clusters: cluster hulls found 2 features 35. The process resulted in 12 points, with 4 points categorized as noise 35.

ResultValue
result, count12
result, noise4
result, distance m2,000
result, elapsed ms1
result, min points3
billing, cost0.05024
billing, list price0.05024
billing, upstream cost0

Findings

  • Evidenced: Find point clusters on Safe havens: Find point clusters: 2 layers saved: Find point clusters: Safe havens (12 features); Find point clusters: cluster hulls (2 features) 2935.
  • Evidenced: It reported result, count 12; result, noise 4; result, distance m 2,000; result, elapsed ms 1; result, min points 3; billing, cost 0.05024 35.

Tool gp_find_point_clusters; parameters {"method": "dbscan", "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Safe havens (d7ec6bb0)"}, "distance_m": 2000.0, "min_points": 3}

Find point clusters

What this analysis is. Find point clusters: Density-based clusters (DBSCAN, HDBSCAN or OPTICS, optionally space-time) with hulls and noise 31. In ArcGIS it is Find Point Clusters or Density-based Clustering; in QGIS, native:dbscanclustering or native:stdbscanclustering 31.

Why it was run on this data. DBSCAN finds dense groups of Protest events and separates noise 36.

What it found. Find point clusters on Protest events: Find point clusters: 2 layers saved: Find point clusters: Protest events (80 features); Find point clusters: cluster hulls (1 feature) 837. It reported result, count 80; result, noise 3; result, distance m 500; result, elapsed ms 2; result, min points 3; billing, cost 0.0516 37.

ResultValue
result, count80
result, noise3
result, distance m500
result, elapsed ms2
result, min points3
billing, cost0.0516
billing, list price0.0516
billing, upstream cost0

Findings

  • Evidenced: Find point clusters on Protest events: Find point clusters: 2 layers saved: Find point clusters: Protest events (80 features); Find point clusters: cluster hulls (1 feature) 837.
  • Evidenced: It reported result, count 80; result, noise 3; result, distance m 500; result, elapsed ms 2; result, min points 3; billing, cost 0.0516 37.

Tool gp_find_point_clusters; parameters {"method": "dbscan", "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Protest events (cf75e6b1)"}, "distance_m": 500.0, "min_points": 3}

Calculate density

What this analysis is. Calculate density: Kernel density per square kilometer on a grid 38. In ArcGIS it is Calculate Density or Kernel Density; in QGIS, native:heatmapkerneldensityestimation 38.

Why it was run on this data. 80 points in Protest events: a density surface shows where they concentrate 39.

What it found. Calculate density on Protest events: Calculate density: 1 layer saved: Calculate density: Protest events (386 features) 840. It reported result, count 386; result, elapsed ms 11; result, bandwidth m 1,000; result, cell size m 200; result, excluded null 0; result, max density per km2 29.94 40.

ResultValue
result, count386
result, elapsed ms11
result, bandwidth m1,000
result, cell size m200
result, excluded null0
result, max density per km229.94
billing, cost0.0516
billing, list price0.0516
billing, upstream cost0

Findings

  • Evidenced: Calculate density on Protest events: Calculate density: 1 layer saved: Calculate density: Protest events (386 features) 840.
  • Evidenced: It reported result, count 386; result, elapsed ms 11; result, bandwidth m 1,000; result, cell size m 200; result, excluded null 0; result, max density per km2 29.94 40.

Tool gp_calculate_density; parameters {"kernel": "quartic", "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Protest events (cf75e6b1)"}, "bandwidth_m": 1000.0, "cell_size_m": 200.0}

Calculate density

What this analysis is. Calculate density: Kernel density per square kilometer on a grid 38. In ArcGIS it is Calculate Density or Kernel Density; in QGIS, native:heatmapkerneldensityestimation 38.

Why it was run on this data. 30 points in Hotels: a density surface shows where they concentrate 41.

What it found. The density calculation was run on the Hotels layer 11 by utilizing the gp_calculate_density tool 42.

ResultValue
result, count82
result, elapsed ms3
result, bandwidth m2,000
result, cell size m1,000
result, excluded null0
result, max density per km21.819
billing, cost0.0506
billing, list price0.0506
billing, upstream cost0

Findings

  • Evidenced: Calculate density on Hotels: Calculate density: 1 layer saved: Calculate density: Hotels (82 features) 1142.
  • Evidenced: It reported result, count 82; result, elapsed ms 3; result, bandwidth m 2,000; result, cell size m 1,000; result, excluded null 0; result, max density per km2 1.819 42.

Tool gp_calculate_density; parameters {"kernel": "quartic", "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Hotels (28842e9c)"}, "bandwidth_m": 2000.0, "cell_size_m": 1000.0}

Calculate density

What this analysis is. Calculate density: Kernel density per square kilometer on a grid 38. In ArcGIS it is Calculate Density or Kernel Density; in QGIS, native:heatmapkerneldensityestimation 38.

Why it was run on this data. 1700 points in Security incidents: a density surface shows where they concentrate 43.

What it found. Calculate density on Security incidents: Calculate density: 1 layer saved: Calculate density: Security incidents (2240 features) 1444. It reported result, count 2,240; result, elapsed ms 60; result, bandwidth m 500; result, cell size m 200; result, excluded null 0; result, max density per km2 267.9 44.

ResultValue
result, count2,240
result, elapsed ms60
result, bandwidth m500
result, cell size m200
result, excluded null0
result, max density per km2267.9
billing, cost0.084
billing, list price0.084
billing, upstream cost0

Findings

  • Evidenced: Calculate density on Security incidents: Calculate density: 1 layer saved: Calculate density: Security incidents (2240 features) 1444.
  • Evidenced: It reported result, count 2,240; result, elapsed ms 60; result, bandwidth m 500; result, cell size m 200; result, excluded null 0; result, max density per km2 267.9 44.

Tool gp_calculate_density; parameters {"kernel": "quartic", "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Security incidents (afb5d90c)"}, "bandwidth_m": 500.0, "cell_size_m": 200.0}

Outliers

What this analysis is. Find outliers: Anselin local Moran’s I: HH, LL clusters and HL, LH outliers 45. In ArcGIS it is Find Outliers or Cluster and Outlier Analysis (Anselin Local Moran’s I) 45.

Why it was run on this data. Local Moran's I maps clusters and outliers of 'risk_score' 46.

What it found. Outliers on Risk zones: Find outliers: 1 layer saved: Find outliers: Risk zones (14 features) 2747. It reported result, count 14; result, elapsed ms 2; result, permutations 199; result, excluded null 0; result, distance band m 2,548; billing, cost 0.05042 47.

ResultValue
result, count14
result, elapsed ms2
result, permutations199
result, excluded null0
result, distance band m2,548
billing, cost0.05042
billing, list price0.05042
billing, upstream cost0

Findings

  • Evidenced: Outliers on Risk zones: Find outliers: 1 layer saved: Find outliers: Risk zones (14 features) 2747.
  • Evidenced: It reported result, count 14; result, elapsed ms 2; result, permutations 199; result, excluded null 0; result, distance band m 2,548; billing, cost 0.05042 47.

Tool gp_outliers; parameters {"field": "risk_score", "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Risk zones (a4d2e294)"}, "aggregation": "hexagon"}

Spatial autocorrelation

What this analysis is. Spatial autocorrelation: Global Moran’s I: is the pattern clustered, dispersed or random 48. In ArcGIS it is Spatial Autocorrelation (Global Moran’s I) 48.

Why it was run on this data. Global Moran's I says whether similar values of 'risk_score' sit next to each other 49.

What it found. The spatial autocorrelation tool was run using the Risk zones input 27, completing without generating a map output 50.

ResultValue
result, n14
result, p value0.6185
result, z score-0.498
result, morans i-0.2235
result, variance0.08664
result, elapsed ms1
result, expected i-0.07692
result, excluded null0
result, distance band m2,548
result, p value normality0.6003
result, z score normality-0.5239
result, variance normality0.0783
billing, cost0.02
billing, list price0.02
billing, upstream cost0

Findings

  • Evidenced: Spatial autocorrelation on Risk zones: Spatial autocorrelation: done; no map output 2750.
  • Evidenced: It reported result, n 14; result, p value 0.6185; result, z score -0.498; result, morans i -0.2235; result, variance 0.08664; result, elapsed ms 1 50.

Tool gp_spatial_autocorrelation; parameters {"field": "risk_score", "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "features": {"layer": "Risk zones (a4d2e294)"}}

Find nearest

What this analysis is. Find nearest: The k nearest features for each input, with geodesic distance and bearing 51. In ArcGIS it is Find Nearest or Near; in QGIS, native:joinbynearest or native:nearestneighbouranalysis 51.

Why it was run on this data. The nearest of Travel routes to each of Hospitals, with distances 52.

What it found. Find nearest on Travel routes, Hospitals: Find nearest: 1 layer saved: Find nearest: Hospitals (14 features) 265354. It reported result, count 14; result, elapsed ms 10; billing, cost 0.0105; billing, list price 0.0105; billing, upstream cost 0 53.

ResultValue
result, count14
result, elapsed ms10
billing, cost0.0105
billing, list price0.0105
billing, upstream cost0

Findings

  • Evidenced: Find nearest on Travel routes, Hospitals: Find nearest: 1 layer saved: Find nearest: Hospitals (14 features) 265354.
  • Evidenced: It reported result, count 14; result, elapsed ms 10; billing, cost 0.0105; billing, list price 0.0105; billing, upstream cost 0 53.

Tool gp_find_nearest; parameters {"k": 1, "to": {"layer": "Travel routes (17118d2e)"}, "from": {"layer": "Hospitals (8a96a3d4)"}, "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "max_distance_m": 2000.0}

Find nearest

What this analysis is. Find nearest: The k nearest features for each input, with geodesic distance and bearing 51. In ArcGIS it is Find Nearest or Near; in QGIS, native:joinbynearest or native:nearestneighbouranalysis 51.

Why it was run on this data. The nearest of Travel routes to each of Hospitals, with distances 52.

What it found. Find nearest on Safe havens, Hospitals: Find nearest: 1 layer saved: Find nearest: Hospitals (14 features) 262955. It reported result, count 14; result, elapsed ms 1; billing, cost 0.01054; billing, list price 0.01054; billing, upstream cost 0 55.

ResultValue
result, count14
result, elapsed ms1
billing, cost0.01054
billing, list price0.01054
billing, upstream cost0

Findings

  • Evidenced: Find nearest on Safe havens, Hospitals: Find nearest: 1 layer saved: Find nearest: Hospitals (14 features) 262955.
  • Evidenced: It reported result, count 14; result, elapsed ms 1; billing, cost 0.01054; billing, list price 0.01054; billing, upstream cost 0 55.

Tool gp_find_nearest; parameters {"k": 1, "to": {"layer": "Safe havens (d7ec6bb0)"}, "from": {"layer": "Hospitals (8a96a3d4)"}, "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "max_distance_m": 2000.0}

Find nearest

What this analysis is. Find nearest: The k nearest features for each input, with geodesic distance and bearing 51. In ArcGIS it is Find Nearest or Near; in QGIS, native:joinbynearest or native:nearestneighbouranalysis 51.

Why it was run on this data. The nearest of Travel routes to each of Hospitals, with distances 52.

What it found. The gp_find_nearest tool was utilized with Protest events 8 and Hospitals 26 56. This process found 6 results 56. The execution was quick, completing in 1 elapsed ms 56. The billing cost associated with this operation was 0.0119 56.

ResultValue
result, count6
result, elapsed ms1
billing, cost0.0119
billing, list price0.0119
billing, upstream cost0

Findings

  • Evidenced: Find nearest on Protest events, Hospitals: Find nearest: 1 layer saved: Find nearest: Hospitals (6 features) 82656.
  • Evidenced: It reported result, count 6; result, elapsed ms 1; billing, cost 0.0119; billing, list price 0.0119; billing, upstream cost 0 56.

Tool gp_find_nearest; parameters {"k": 1, "to": {"layer": "Protest events (cf75e6b1)"}, "from": {"layer": "Hospitals (8a96a3d4)"}, "project": "188436ed-c19a-4e7c-ab43-b58fe7291e56", "max_distance_m": 2000.0}

Maps and charts

The run also made 23 map image(s) 5758596061626364656667686970717273747576777879 and 27 chart(s) 8081828384858687888990919293949596979899100101102103104105106.

Hot spot analysis: Protest events
Figure 2. Hot spot analysis: Protest events 57
Hot spot analysis: Hotels
Figure 3. Hot spot analysis: Hotels 58
Hot spot analysis: Security incidents
Figure 4. Hot spot analysis: Security incidents 59
Emerging hot spots: Protest events
Figure 5. Emerging hot spots: Protest events 60
Emerging hot spots: Security incidents
Figure 6. Emerging hot spots: Security incidents 61
Repeat and near repeat classification: Protest events
Figure 7. Repeat and near repeat classification: Protest events 62
Summarize within: Risk zones
Figure 8. Summarize within: Risk zones 63
Summarize within: Risk zones
Figure 9. Summarize within: Risk zones 64
Summarize within: Risk zones
Figure 10. Summarize within: Risk zones 65
Find point clusters: Hospitals
Figure 11. Find point clusters: Hospitals 66
Find point clusters: cluster hulls
Figure 12. Find point clusters: cluster hulls 67
Find point clusters: Safe havens
Figure 13. Find point clusters: Safe havens 68
Find point clusters: cluster hulls
Figure 14. Find point clusters: cluster hulls 69
Find point clusters: Protest events
Figure 15. Find point clusters: Protest events 70
Find point clusters: cluster hulls
Figure 16. Find point clusters: cluster hulls 71
Calculate density: Protest events
Figure 17. Calculate density: Protest events 72
Calculate density: Hotels
Figure 18. Calculate density: Hotels 73
Calculate density: Security incidents
Figure 19. Calculate density: Security incidents 74
Risk zones by risk_score
Figure 20. Risk zones by risk_score 75
Find outliers: Risk zones
Figure 21. Find outliers: Risk zones 76
Find nearest: Hospitals
Figure 22. Find nearest: Hospitals 77
Find nearest: Hospitals
Figure 23. Find nearest: Hospitals 78
Find nearest: Hospitals
Figure 24. Find nearest: Hospitals 79

What the map shows. This map, titled "Emerging hot spots: Protest events," analyzes a specific geographic area running from longitude -99.15818 to -99.10583 and latitude 19.41925 to 19.45709. The analysis indicates that there is no identifiable pattern of "Emerging 60

Inferred: read from the image by gemma4:e4b, not evidence.

Security incidents over time (occurred_at)
Figure 25. Security incidents over time (occurred_at) 80. Per week, 2025-09-29 to 2026-09-28. Source: Security incidents (1,700 features). The data is in the appendix.
Protest events over time (date)
Figure 26. Protest events over time (date) 81. Per week, 2026-01-05 to 2026-09-28. Source: Protest events (80 features). The data is in the appendix.
Travel log over time (date)
Figure 27. Travel log over time (date) 82. Per week, 2025-09-29 to 2026-09-28. Source: Travel log (400 features). The data is in the appendix.
Hot spot analysis: Protest events
Figure 28. Hot spot analysis: Protest events 83. Source: Hot spot analysis: Protest events (29 features). The data is in the appendix.
Hot spot analysis: Hotels
Figure 29. Hot spot analysis: Hotels 84. Source: Hot spot analysis: Hotels (14 features). The data is in the appendix.
Hot spot analysis: Security incidents
Figure 30. Hot spot analysis: Security incidents 85. Source: Hot spot analysis: Security incidents (353 features). The data is in the appendix.
Emerging hot spots: Protest events
Figure 31. Emerging hot spots: Protest events 86. Source: Emerging hot spots: Protest events (14 features). The data is in the appendix.
Emerging hot spots: Security incidents
Figure 32. Emerging hot spots: Security incidents 87. Source: Emerging hot spots: Security incidents (108 features). The data is in the appendix.
Repeat and near repeat classification: Protest events
Figure 33. Repeat and near repeat classification: Protest events 88. Per week, 2026-01-05 to 2026-09-28. Source: Repeat and near repeat classification: Protest events (80 features). The data is in the appendix.
Summarize within: Risk zones
Figure 34. Summarize within: Risk zones 89. Source: Summarize within: Risk zones (14 features). The data is in the appendix.
Summarize within: Risk zones
Figure 35. Summarize within: Risk zones 90. Source: Summarize within: Risk zones (14 features). The data is in the appendix.
Summarize within: Risk zones
Figure 36. Summarize within: Risk zones 91. Source: Summarize within: Risk zones (14 features). The data is in the appendix.
Find point clusters: Hospitals
Figure 37. Find point clusters: Hospitals 92. Source: Find point clusters: Hospitals (15 features). The data is in the appendix.
Find point clusters: cluster hulls
Figure 38. Find point clusters: cluster hulls 93. Source: Find point clusters: cluster hulls (1 features). The data is in the appendix.
Find point clusters: Safe havens
Figure 39. Find point clusters: Safe havens 94. Source: Find point clusters: Safe havens (12 features). The data is in the appendix.
Find point clusters: cluster hulls
Figure 40. Find point clusters: cluster hulls 95. Source: Find point clusters: cluster hulls (2 features). The data is in the appendix.
Find point clusters: Protest events
Figure 41. Find point clusters: Protest events 96. Period: 2026-01-05 to 2026-09-28 (date). Source: Find point clusters: Protest events (80 features). The data is in the appendix.
Find point clusters: cluster hulls
Figure 42. Find point clusters: cluster hulls 97. Source: Find point clusters: cluster hulls (1 features). The data is in the appendix.
Calculate density: Protest events
Figure 43. Calculate density: Protest events 98. Source: Calculate density: Protest events (386 features). The data is in the appendix.
Calculate density: Hotels
Figure 44. Calculate density: Hotels 99. Source: Calculate density: Hotels (82 features). The data is in the appendix.
Calculate density: Security incidents
Figure 45. Calculate density: Security incidents 100. Source: Calculate density: Security incidents (2,240 features). The data is in the appendix.
Find outliers: Risk zones
Figure 46. Find outliers: Risk zones 101. Source: Find outliers: Risk zones (14 features). The data is in the appendix.
Find nearest: Hospitals
Figure 47. Find nearest: Hospitals 102. Source: Find nearest: Hospitals (14 features). The data is in the appendix.
Find nearest: Hospitals
Figure 48. Find nearest: Hospitals 103. Source: Find nearest: Hospitals (14 features). The data is in the appendix.
Find nearest: Hospitals over time
Figure 49. Find nearest: Hospitals over time 104. Per week, 2026-01-26 to 2026-06-22. Source: Find nearest: Hospitals (6 features). The data is in the appendix.
Find point clusters: Protest events over time
Figure 50. Find point clusters: Protest events over time 105. Per week, 2026-01-05 to 2026-09-28. Source: Find point clusters: Protest events (80 features). The data is in the appendix.
Repeat and near repeat classification: Protest events over time
Figure 51. Repeat and near repeat classification: Protest events over time 106. Per week, 2026-01-05 to 2026-09-28. Source: Repeat and near repeat classification: Protest events (80 features). The data is in the appendix.

Changes since the last run

This is the first report of this project.

Sources

  1. 1Rendering: Chart: Timeline: events per week by dataset. 159 rows id f07ed5b6-9486-4c24-a7ad-e2c1b9a45323
  2. 2Dataset: Security incidents. vector, 1700 rows id e157aa87-0056-48e2-affe-2abe8c8f035b
  3. 3Dataset: Protest events. vector, 80 rows id 61b11bf6-a94e-410d-bc75-a441daea9e2e
  4. 4Dataset: Travel log. table, 400 rows id 91769657-5256-4993-90ae-bea93e5d9277
  5. 5Catalog: Hot spot analysis (operation catalog, gp_hot_spots). Getis-Ord Gi* hot and cold spots with z-scores, p-values and confidence bins. ArcGIS: Find Hot Spots, Hot Spot Analysis (Getis-Ord Gi*). QGIS: qgis:hotspot (plugin). id gp_hot_spots
  6. 6Plan: Hot spots of Protest events (the Start plan's candidate c_e4c60efa6297). 80 points: Getis-Ord Gi* tests whether the concentrations in Protest events are statistically significant. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_e4c60efa6297
  7. 7Tool result: gp_hot_spots, step 0. Hot spot analysis: 1 layer saved: Hot spot analysis: Protest events (29 features). id cb954b77-a9f1-40f9-ba2a-8936e0981670:0
  8. 8Layer: Protest events. 80 features id cf75e6b1-838e-4795-85d8-20e39702882e
  9. 9Plan: Hot spots of Hotels (the Start plan's candidate c_d9214e0b2e9c). 30 points: Getis-Ord Gi* tests whether the concentrations in Hotels are statistically significant. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_d9214e0b2e9c
  10. 10Tool result: gp_hot_spots, step 1. Hot spot analysis: 1 layer saved: Hot spot analysis: Hotels (14 features). id cb954b77-a9f1-40f9-ba2a-8936e0981670:1
  11. 11Layer: Hotels. 30 features id 28842e9c-fa0f-4fa0-ab60-50616b38e2eb
  12. 12Plan: Hot spots of Security incidents (the Start plan's candidate c_2cf7cb199846). 1700 points: Getis-Ord Gi* tests whether the concentrations in Security incidents are statistically significant. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_2cf7cb199846
  13. 13Tool result: gp_hot_spots, step 2. Hot spot analysis: 1 layer saved: Hot spot analysis: Security incidents (353 features). id cb954b77-a9f1-40f9-ba2a-8936e0981670:2
  14. 14Layer: Security incidents. 1,700 features id afb5d90c-b04a-45b5-86de-02dd48a97b15
  15. 15Catalog: Emerging hot spots (operation catalog, gp_space_time_hot_spots). Where hot spots are new, consecutive, intensifying, persistent, diminishing, sporadic, oscillating or historical over time. ArcGIS: Emerging Hot Spot Analysis, Create Space Time Cube. id gp_space_time_hot_spots
  16. 16Plan: Space time hot spots of Protest events (the Start plan's candidate c_7097f355a4d8). Protest events carry dates in 'date': emerging hot spot analysis finds new, intensifying and fading hot spots per week. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_7097f355a4d8
  17. 17Tool result: gp_space_time_hot_spots, step 0. Emerging hot spots: 1 layer saved: Emerging hot spots: Protest events (14 features). id 4ce981f8-e618-4a52-ab5e-deb572cf8a18:0
  18. 18Plan: Space time hot spots of Security incidents (the Start plan's candidate c_333ac7b0a6a6). Security incidents carry dates in 'occurred_at': emerging hot spot analysis finds new, intensifying and fading hot spots per week. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_333ac7b0a6a6
  19. 19Tool result: gp_space_time_hot_spots, step 1. Emerging hot spots: 1 layer saved: Emerging hot spots: Security incidents (108 features). id 4ce981f8-e618-4a52-ab5e-deb572cf8a18:1
  20. 20Catalog: Repeat and near repeat classification (operation catalog, gp_near_repeat). Classify incidents as originators, repeats (same place) or near repeats within a distance and time window, with a Knox test table. ArcGIS: Repeat and Near Repeat Classification, Near Repeat Calculator. id gp_near_repeat
  21. 21Plan: Near repeat of Protest events (the Start plan's candidate c_f95b4db5e496). Near repeat analysis tests whether Protest events close in space also follow each other within 27 days. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_f95b4db5e496
  22. 22Tool result: gp_near_repeat, step 2. Repeat and near repeat classification: 1 layer saved: Repeat and near repeat classification: Protest events (80 features). id 4ce981f8-e618-4a52-ab5e-deb572cf8a18:2
  23. 23Catalog: Summarize within (operation catalog, gp_summarize_within). Count and aggregate the features inside each polygon (or bin), proportionally for lines and polygons. ArcGIS: Summarize Within, Aggregate Points. QGIS: native:countpointsinpolygon, native:sumlinelengths. id gp_summarize_within
  24. 24Plan: Hospitals per feature of Risk zones (the Start plan's candidate c_6520524d187a). Count Hospitals inside each feature of Risk zones by english_speaking; the counts map as a choropleth (natural breaks, sequential colors). id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_6520524d187a
  25. 25Tool result: gp_summarize_within, step 0. Summarize within: 1 layer saved: Summarize within: Risk zones (14 features). id 4db35232-a32c-47e1-9154-89fbc3620126:0
  26. 26Layer: Hospitals. 15 features id 8a96a3d4-1867-4c29-8033-2a6817b92b2c
  27. 27Layer: Risk zones. 14 features id a4d2e294-c13c-4572-b6fc-2b8ef4e9c955
  28. 28Tool result: gp_summarize_within, step 1. Summarize within: 1 layer saved: Summarize within: Risk zones (14 features). id 4db35232-a32c-47e1-9154-89fbc3620126:1
  29. 29Layer: Safe havens. 12 features id d7ec6bb0-8b36-474d-8157-931bdc40122a
  30. 30Tool result: gp_summarize_within, step 2. Summarize within: 1 layer saved: Summarize within: Risk zones (14 features). id 4db35232-a32c-47e1-9154-89fbc3620126:2
  31. 31Catalog: Find point clusters (operation catalog, gp_find_point_clusters). Density-based clusters (DBSCAN, HDBSCAN or OPTICS, optionally space-time) with hulls and noise. ArcGIS: Find Point Clusters, Density-based Clustering. QGIS: native:dbscanclustering, native:stdbscanclustering. id gp_find_point_clusters
  32. 32Plan: Cluster points of Hospitals (the Start plan's candidate c_65a1f33e9e5e). DBSCAN finds dense groups of Hospitals and separates noise. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_65a1f33e9e5e
  33. 33Tool result: gp_find_point_clusters, step 0. Find point clusters: 2 layers saved: Find point clusters: Hospitals (15 features); Find point clusters: cluster hulls (1 feature). id 86c36cc2-95cb-4bfa-aac6-db9cc2913cc1:0
  34. 34Plan: Cluster points of Safe havens (the Start plan's candidate c_5ba3c571cd04). DBSCAN finds dense groups of Safe havens and separates noise. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_5ba3c571cd04
  35. 35Tool result: gp_find_point_clusters, step 1. Find point clusters: 2 layers saved: Find point clusters: Safe havens (12 features); Find point clusters: cluster hulls (2 features). id 86c36cc2-95cb-4bfa-aac6-db9cc2913cc1:1
  36. 36Plan: Cluster points of Protest events (the Start plan's candidate c_ae60a45625a8). DBSCAN finds dense groups of Protest events and separates noise. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_ae60a45625a8
  37. 37Tool result: gp_find_point_clusters, step 2. Find point clusters: 2 layers saved: Find point clusters: Protest events (80 features); Find point clusters: cluster hulls (1 feature). id 86c36cc2-95cb-4bfa-aac6-db9cc2913cc1:2
  38. 38Catalog: Calculate density (operation catalog, gp_calculate_density). Kernel density per square kilometer on a grid. ArcGIS: Calculate Density, Kernel Density. QGIS: native:heatmapkerneldensityestimation. id gp_calculate_density
  39. 39Plan: Kernel density of Protest events (the Start plan's candidate c_7c8acce6dd51). 80 points in Protest events: a density surface shows where they concentrate. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_7c8acce6dd51
  40. 40Tool result: gp_calculate_density, step 0. Calculate density: 1 layer saved: Calculate density: Protest events (386 features). id 72e7e894-08fe-429b-84d0-f973eac006a1:0
  41. 41Plan: Kernel density of Hotels (the Start plan's candidate c_fb39ef5f9446). 30 points in Hotels: a density surface shows where they concentrate. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_fb39ef5f9446
  42. 42Tool result: gp_calculate_density, step 1. Calculate density: 1 layer saved: Calculate density: Hotels (82 features). id 72e7e894-08fe-429b-84d0-f973eac006a1:1
  43. 43Plan: Kernel density of Security incidents (the Start plan's candidate c_8b75d0e8f5bf). 1700 points in Security incidents: a density surface shows where they concentrate. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_8b75d0e8f5bf
  44. 44Tool result: gp_calculate_density, step 2. Calculate density: 1 layer saved: Calculate density: Security incidents (2240 features). id 72e7e894-08fe-429b-84d0-f973eac006a1:2
  45. 45Catalog: Find outliers (operation catalog, gp_outliers). Anselin local Moran’s I: HH, LL clusters and HL, LH outliers. ArcGIS: Find Outliers, Cluster and Outlier Analysis (Anselin Local Moran’s I). id gp_outliers
  46. 46Plan: Local morans i of Risk zones (the Start plan's candidate c_b57bb9ae247a). Local Moran's I maps clusters and outliers of 'risk_score'. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_b57bb9ae247a
  47. 47Tool result: gp_outliers, step 0. Find outliers: 1 layer saved: Find outliers: Risk zones (14 features). id 8804c2f2-0669-4232-a6ea-33b246fdbe10:0
  48. 48Catalog: Spatial autocorrelation (operation catalog, gp_spatial_autocorrelation). Global Moran’s I: is the pattern clustered, dispersed or random. ArcGIS: Spatial Autocorrelation (Global Moran’s I). id gp_spatial_autocorrelation
  49. 49Plan: Global morans i of Risk zones (the Start plan's candidate c_e8c49b66ee35). Global Moran's I says whether similar values of 'risk_score' sit next to each other. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_e8c49b66ee35
  50. 50Tool result: gp_spatial_autocorrelation, step 1. Spatial autocorrelation: done; no map output. id 8804c2f2-0669-4232-a6ea-33b246fdbe10:1
  51. 51Catalog: Find nearest (operation catalog, gp_find_nearest). The k nearest features for each input, with geodesic distance and bearing. ArcGIS: Find Nearest, Near, Generate Near Table. QGIS: native:joinbynearest, native:nearestneighbouranalysis. id gp_find_nearest
  52. 52Plan: Find nearest of Hospitals and Travel routes (the Start plan's candidate c_6c9de7d7d3b4). The nearest of Travel routes to each of Hospitals, with distances. id 2f94775f-544a-4c5f-9cbe-3a9e3ee974e2:c_6c9de7d7d3b4
  53. 53Tool result: gp_find_nearest, step 0. Find nearest: 1 layer saved: Find nearest: Hospitals (14 features). id d72a65fe-570d-4b7e-bb1f-3397ddd3dff0:0
  54. 54Layer: Travel routes. 10 features id 17118d2e-4c8a-4e58-a365-56ed0dccddeb
  55. 55Tool result: gp_find_nearest, step 1. Find nearest: 1 layer saved: Find nearest: Hospitals (14 features). id d72a65fe-570d-4b7e-bb1f-3397ddd3dff0:1
  56. 56Tool result: gp_find_nearest, step 2. Find nearest: 1 layer saved: Find nearest: Hospitals (6 features). id d72a65fe-570d-4b7e-bb1f-3397ddd3dff0:2
  57. 57Rendering: Map: Hot spot analysis: Protest events id 500df2bf-0773-4df4-997b-e52faf1d7b86
  58. 58Rendering: Map: Hot spot analysis: Hotels id a9b20642-0e6f-4981-a664-da575f4c0f47
  59. 59Rendering: Map: Hot spot analysis: Security incidents id dfc0443f-8eec-4850-bcf5-b167e4b25bb2
  60. 60Rendering: Map: Emerging hot spots: Protest events id 0099fe22-7871-4a15-a0e8-1feae00a5bfe
  61. 61Rendering: Map: Emerging hot spots: Security incidents id ac12c726-afc7-4f73-bcad-180032253879
  62. 62Rendering: Map: Repeat and near repeat classification: Protest events id 88da8834-5528-4120-a9c9-c2d8f343794a
  63. 63Rendering: Map: Summarize within: Risk zones id 00bc1476-064e-4f9d-b9df-58b7176702f7
  64. 64Rendering: Map: Summarize within: Risk zones id 097e7003-7459-4810-8b27-5f7a0070cb99
  65. 65Rendering: Map: Summarize within: Risk zones id 0f0f8452-fff5-40e3-9da5-e4b1a4e0c9c3
  66. 66Rendering: Map: Find point clusters: Hospitals id 47eb8a01-1990-4474-b495-5bf2f8a9ea58
  67. 67Rendering: Map: Find point clusters: cluster hulls id 9199cde6-d3cd-466f-bbdb-c545c614f5d9
  68. 68Rendering: Map: Find point clusters: Safe havens id b7163651-cc15-45dd-85df-b9a1e1a0c2ab
  69. 69Rendering: Map: Find point clusters: cluster hulls id b07c64b4-3212-4751-b9fe-884c92e2af0b
  70. 70Rendering: Map: Find point clusters: Protest events id 09c181e5-fd50-4a4d-8fb9-c372f05b7087
  71. 71Rendering: Map: Find point clusters: cluster hulls id 837965dd-bd8f-4eda-8fc0-9ce4211449eb
  72. 72Rendering: Map: Calculate density: Protest events id 26c2dd95-9903-4e3a-9502-b9d59a00d91f
  73. 73Rendering: Map: Calculate density: Hotels id 87642b35-e16d-4168-a04d-24944d0ea7c8
  74. 74Rendering: Map: Calculate density: Security incidents id db714770-2476-4110-af9b-826c0fda7266
  75. 75Rendering: Map: Risk zones by risk_score id acd51039-768b-4034-9aa3-0fa9355f4884
  76. 76Rendering: Map: Find outliers: Risk zones id 5323e5c1-28e1-44b3-8f9c-44f34efbf17f
  77. 77Rendering: Map: Find nearest: Hospitals id a1567a83-3fb0-4dcf-8d6c-71ba8b4ed7d7
  78. 78Rendering: Map: Find nearest: Hospitals id b16977bf-56c6-43a5-bf88-4d5b01a2648c
  79. 79Rendering: Map: Find nearest: Hospitals id 11bfd2f1-7879-4693-a32a-915be104a231
  80. 80Rendering: Chart: Security incidents over time (occurred_at). 318 rows id e4bbd9ee-6938-4976-afea-98b10b22455f
  81. 81Rendering: Chart: Protest events over time (date). 117 rows id f828e7a2-d14d-4bc3-b257-85cd520ee1ef
  82. 82Rendering: Chart: Travel log over time (date). 106 rows id 66c88c61-6c69-4dc0-a55d-5c961369ab06
  83. 83Rendering: Chart: Hot spot analysis: Protest events. 11 rows id 66439a0c-ac69-4219-b24e-6f7ff88f70d2
  84. 84Rendering: Chart: Hot spot analysis: Hotels. 6 rows id c52e7b32-d25d-4aed-abe8-9ebb7f603bfd
  85. 85Rendering: Chart: Hot spot analysis: Security incidents. 16 rows id ca9f7204-df1a-4b6c-b63a-414bc07961a3
  86. 86Rendering: Chart: Emerging hot spots: Protest events. 5 rows id a0edbd15-0e36-4d00-9145-33631fafb0d4
  87. 87Rendering: Chart: Emerging hot spots: Security incidents. 8 rows id 0b5d890b-d25b-4e32-8200-951dc01149f7
  88. 88Rendering: Chart: Repeat and near repeat classification: Protest events. 117 rows id 2306aa49-d791-4cd3-8d4c-28e6660067db
  89. 89Rendering: Chart: Summarize within: Risk zones. 5 rows id c94ab553-318c-4a5e-bfe3-5ceb6088a6d2
  90. 90Rendering: Chart: Summarize within: Risk zones. 5 rows id 67037acd-9bb9-4174-b327-02e297418724
  91. 91Rendering: Chart: Summarize within: Risk zones. 5 rows id 923af0d1-ab6e-4ce5-b3d9-81d29ab8cc03
  92. 92Rendering: Chart: Find point clusters: Hospitals. 2 rows id 20d9b93a-9f38-4502-8832-0c3847923a24
  93. 93Rendering: Chart: Find point clusters: cluster hulls. 1 rows id f9da01d9-7689-4ba1-b714-0a48053eb1ae
  94. 94Rendering: Chart: Find point clusters: Safe havens. 3 rows id b1d7e3a3-1643-4aea-87c6-3d0616a865de
  95. 95Rendering: Chart: Find point clusters: cluster hulls. 2 rows id 4093c918-1c9f-481a-8b57-2adef8395ab8
  96. 96Rendering: Chart: Find point clusters: Protest events. 2 rows id 83853866-50d0-468b-8c71-7faa0aa71c50
  97. 97Rendering: Chart: Find point clusters: cluster hulls. 1 rows id e5bfd36e-59ac-4d44-805f-ba7f25c9358d
  98. 98Rendering: Chart: Calculate density: Protest events. 10 rows id 73671b82-b4a3-42c0-a8ae-b1d27cba0ec2
  99. 99Rendering: Chart: Calculate density: Hotels. 8 rows id c0aefbfb-9735-4f03-a2e6-d27fabd30313
  100. 100Rendering: Chart: Calculate density: Security incidents. 13 rows id a8231907-9048-4318-9575-1e7364e4238a
  101. 101Rendering: Chart: Find outliers: Risk zones. 14 rows id 491c699f-46c0-4622-98ad-1183374f76e1
  102. 102Rendering: Chart: Find nearest: Hospitals. 14 rows id 9cc7d0a7-efe8-4e46-9c45-e42681c0944f
  103. 103Rendering: Chart: Find nearest: Hospitals. 14 rows id e56bd3f0-499e-402f-a74a-cca2f35b3bc9
  104. 104Rendering: Chart: Find nearest: Hospitals over time. 66 rows id 51a6266c-78a0-4146-87ab-d79e4d6ba260
  105. 105Rendering: Chart: Find point clusters: Protest events over time. 117 rows id 86bdb528-cab1-4fff-aa57-5ee0311a2b43
  106. 106Rendering: Chart: Repeat and near repeat classification: Protest events over time. 117 rows id 4dfde3d2-01b3-45b2-90c2-09129de0912c
  107. 107Dataset: Company sites. vector, 8 rows id a57e5e2e-a25d-409d-9272-6ca1c1ae23ab
  108. 108Dataset: Hotels. vector, 30 rows id 960da6f9-a119-47d2-8c4c-73faa6425317
  109. 109Dataset: Travel routes. vector, 10 rows id 1008679c-3d12-45ea-a8ce-be53355c90d8
  110. 110Dataset: Risk zones. vector, 14 rows id a6555125-2ca1-45ce-8a48-57ce5705423b
  111. 111Dataset: Hospitals. vector, 15 rows id 03c9ffea-5a0a-4d80-8965-c0709759aff3
  112. 112Dataset: Safe havens. vector, 12 rows id 511f2fd6-d838-46cc-a47c-c29f431a83c0
  113. 113Dataset: Site guard roster. table, 16 rows id 19276383-dfed-4594-b706-1f9d7ba7b072
  114. 114Dataset: Country security briefing. document, ? rows id f20d3f16-9057-4bc4-a33a-b2d8b53657a0
  115. 115Dataset: Hotel security assessment. document, ? rows id e794bded-1be4-41a5-bbf2-086e1a0791f3
  116. 116Record: Sample: Corporate security and travel risk, Mexico City id 188436ed-c19a-4e7c-ab43-b58fe7291e56
  117. 117Layer: Hot spot analysis: Protest events. 29 features id db1e7e50-0b84-4c23-a7f1-70d712d84483
  118. 118Layer: Hot spot analysis: Hotels. 14 features id 236b49e6-718b-468e-9414-fec05e2fd046
  119. 119Layer: Hot spot analysis: Security incidents. 353 features id 354043da-a305-407a-bbe0-c2d077f68fed
  120. 120Layer: Emerging hot spots: Protest events. 14 features id d4e930d7-f5cc-45e0-b105-ee6ff35846d6
  121. 121Layer: Emerging hot spots: Security incidents. 108 features id 7d258e9e-7357-4428-8775-a97375d60dd3
  122. 122Layer: Repeat and near repeat classification: Protest events. 80 features id c15ea26d-f7bf-43bf-987f-05e0d75a4a76
  123. 123Layer: Summarize within: Risk zones. 14 features id 46424976-b4de-430a-93e8-53723336e3a7
  124. 124Layer: Summarize within: Risk zones. 14 features id 66d57619-49ef-4eb7-831b-bedc47b571d1
  125. 125Layer: Summarize within: Risk zones. 14 features id 705e651a-1e75-493d-a532-0c8927aa40cd
  126. 126Layer: Find point clusters: Hospitals. 15 features id 991c0297-f207-49c1-9361-29e0d01cd1f5
  127. 127Layer: Find point clusters: cluster hulls. 1 features id e06a131f-7989-4c9a-bad5-98f65d8d13ee
  128. 128Layer: Find point clusters: Safe havens. 12 features id 1da076c5-d608-4691-b2c6-0458f1989d7e
  129. 129Layer: Find point clusters: cluster hulls. 2 features id cb9419c5-0ee1-4dba-a62a-5b39176bab51
  130. 130Layer: Find point clusters: Protest events. 80 features id 84d6cdb7-cfe3-4875-8ab3-4c85027ca7be
  131. 131Layer: Find point clusters: cluster hulls. 1 features id baa8dcc7-143d-4f94-a316-947abdb534cf
  132. 132Layer: Calculate density: Protest events. 386 features id 54008367-d33a-4511-b5e1-8c4a55915ad0
  133. 133Layer: Calculate density: Hotels. 82 features id c4eba0a4-6712-445b-bc6c-cf0c26bb9cac
  134. 134Layer: Calculate density: Security incidents. 2,240 features id 57bb3eed-15a3-4c3d-b425-89ac6f7edeaf
  135. 135Layer: Find outliers: Risk zones. 14 features id e8ee4af5-2649-4990-8578-af9a7ca2a1e6
  136. 136Layer: Find nearest: Hospitals. 14 features id cc3abbbe-dedb-4bf4-a08f-10d4882a63d2
  137. 137Layer: Find nearest: Hospitals. 14 features id 39cac909-2a3f-47b4-9123-524c237e05eb
  138. 138Layer: Find nearest: Hospitals. 6 features id 5b28ce74-706d-460a-b867-4b1ce5f6ed98
Appendix: the data behind the chartsShow

Figure 1. Timeline: events per week by dataset 1

periodseriesvalue
2025-09-29Security incidents24
2025-09-29Travel log10
2025-09-29Protest events0
2025-10-06Security incidents24
2025-10-06Travel log4
2025-10-06Protest events0
2025-10-13Security incidents25
2025-10-13Travel log8
2025-10-13Protest events0
2025-10-20Security incidents18
2025-10-20Travel log3
2025-10-20Protest events0
2025-10-27Security incidents38
2025-10-27Travel log6
2025-10-27Protest events0
2025-11-03Security incidents22
2025-11-03Travel log9
2025-11-03Protest events0
2025-11-10Security incidents25
2025-11-10Travel log11
2025-11-10Protest events0
2025-11-17Security incidents25
2025-11-17Travel log10
2025-11-17Protest events0
2025-11-24Security incidents24
2025-11-24Travel log4
2025-11-24Protest events0
2025-12-01Security incidents29
2025-12-01Travel log10
2025-12-01Protest events0
2025-12-08Security incidents28
2025-12-08Travel log6
2025-12-08Protest events0
2025-12-15Security incidents26
2025-12-15Travel log7
2025-12-15Protest events0
2025-12-22Security incidents25
2025-12-22Travel log14
2025-12-22Protest events0
2025-12-29Security incidents32
2025-12-29Travel log7
2025-12-29Protest events0
2026-01-05Security incidents34
2026-01-05Travel log6
2026-01-05Protest events3
2026-01-12Security incidents30
2026-01-12Travel log7
2026-01-12Protest events2
2026-01-19Security incidents29
2026-01-19Travel log10
2026-01-19Protest events1
2026-01-26Security incidents78
2026-01-26Travel log12
2026-01-26Protest events5
2026-02-02Security incidents21
2026-02-02Travel log5
2026-02-02Protest events2
2026-02-09Security incidents34
2026-02-09Travel log9
2026-02-09Protest events0
2026-02-16Security incidents34
2026-02-16Travel log9
2026-02-16Protest events2
2026-02-23Security incidents30
2026-02-23Travel log9
2026-02-23Protest events4
2026-03-02Security incidents110
2026-03-02Travel log7
2026-03-02Protest events6
2026-03-09Security incidents26
2026-03-09Travel log7
2026-03-09Protest events1
2026-03-16Security incidents34
2026-03-16Travel log10
2026-03-16Protest events0
2026-03-23Security incidents19
2026-03-23Travel log8
2026-03-23Protest events0
2026-03-30Security incidents18
2026-03-30Travel log3
2026-03-30Protest events2
2026-04-06Security incidents28
2026-04-06Travel log10
2026-04-06Protest events1
2026-04-13Security incidents27
2026-04-13Travel log3
2026-04-13Protest events0
2026-04-20Security incidents21
2026-04-20Travel log6
2026-04-20Protest events1
2026-04-27Security incidents100
2026-04-27Travel log5
2026-04-27Protest events5
2026-05-04Security incidents22
2026-05-04Travel log9
2026-05-04Protest events1
2026-05-11Security incidents20
2026-05-11Travel log9
2026-05-11Protest events0
2026-05-18Security incidents23
2026-05-18Travel log6
2026-05-18Protest events0
2026-05-25Security incidents26
2026-05-25Travel log8
2026-05-25Protest events1
2026-06-01Security incidents29
2026-06-01Travel log4
2026-06-01Protest events2
2026-06-08Security incidents102
2026-06-08Travel log10
2026-06-08Protest events8
2026-06-15Security incidents20
2026-06-15Travel log4
2026-06-15Protest events3
2026-06-22Security incidents18
2026-06-22Travel log9
2026-06-22Protest events3
2026-06-29Security incidents34
2026-06-29Travel log6
2026-06-29Protest events1
2026-07-06Security incidents17
2026-07-06Travel log15
2026-07-06Protest events1
2026-07-13Security incidents25
2026-07-13Travel log5
2026-07-13Protest events1
2026-07-20Security incidents16
2026-07-20Travel log5
2026-07-20Protest events1
2026-07-27Security incidents21
2026-07-27Travel log9
2026-07-27Protest events1
2026-08-03Security incidents25
2026-08-03Travel log6
2026-08-03Protest events2
2026-08-10Security incidents25
2026-08-10Travel log9
2026-08-10Protest events3
2026-08-17Security incidents20
2026-08-17Travel log10
2026-08-17Protest events2
2026-08-24Security incidents24
2026-08-24Travel log9
2026-08-24Protest events2
2026-08-31Security incidents27
2026-08-31Travel log7
2026-08-31Protest events2
2026-09-07Security incidents32
2026-09-07Travel log7
2026-09-07Protest events4
2026-09-14Security incidents97
2026-09-14Travel log7
2026-09-14Protest events4
2026-09-21Security incidents24
2026-09-21Travel log8
2026-09-21Protest events2
2026-09-28Security incidents15
2026-09-28Travel log3
2026-09-28Protest events1

Figure 25. Security incidents over time (occurred_at) 80

periodseriesvalue
2025-09-29robbery2
2025-09-29theft10
2025-09-29vandalism1
2025-09-29road blockade1
2025-09-29vehicle theft3
2025-09-29Other7
2025-10-06robbery8
2025-10-06theft4
2025-10-06vandalism1
2025-10-06road blockade3
2025-10-06vehicle theft2
2025-10-06Other6
2025-10-13robbery10
2025-10-13theft5
2025-10-13vandalism1
2025-10-13road blockade0
2025-10-13vehicle theft5
2025-10-13Other4
2025-10-20robbery7
2025-10-20theft3
2025-10-20vandalism1
2025-10-20road blockade3
2025-10-20vehicle theft1
2025-10-20Other3
2025-10-27robbery10
2025-10-27theft12
2025-10-27vandalism1
2025-10-27road blockade2
2025-10-27vehicle theft7
2025-10-27Other6
2025-11-03robbery5
2025-11-03theft8
2025-11-03vandalism2
2025-11-03road blockade2
2025-11-03vehicle theft3
2025-11-03Other2
2025-11-10robbery9
2025-11-10theft5
2025-11-10vandalism4
2025-11-10road blockade2
2025-11-10vehicle theft2
2025-11-10Other3
2025-11-17robbery6
2025-11-17theft3
2025-11-17vandalism3
2025-11-17road blockade1
2025-11-17vehicle theft6
2025-11-17Other6
2025-11-24robbery7
2025-11-24theft8
2025-11-24vandalism2
2025-11-24road blockade2
2025-11-24vehicle theft3
2025-11-24Other2
2025-12-01robbery10
2025-12-01theft12
2025-12-01vandalism2
2025-12-01road blockade0
2025-12-01vehicle theft4
2025-12-01Other1
2025-12-08robbery9
2025-12-08theft6
2025-12-08vandalism4
2025-12-08road blockade1
2025-12-08vehicle theft3
2025-12-08Other5
2025-12-15robbery10
2025-12-15theft9
2025-12-15vandalism0
2025-12-15road blockade1
2025-12-15vehicle theft4
2025-12-15Other2
2025-12-22robbery7
2025-12-22theft6
2025-12-22vandalism3
2025-12-22road blockade1
2025-12-22vehicle theft6
2025-12-22Other2
2025-12-29robbery10
2025-12-29theft4
2025-12-29vandalism4
2025-12-29road blockade3
2025-12-29vehicle theft5
2025-12-29Other6
2026-01-05robbery11
2026-01-05theft8
2026-01-05vandalism4
2026-01-05road blockade1
2026-01-05vehicle theft7
2026-01-05Other3
2026-01-12robbery8
2026-01-12theft11
2026-01-12vandalism0
2026-01-12road blockade4
2026-01-12vehicle theft2
2026-01-12Other5
2026-01-19robbery14
2026-01-19theft8
2026-01-19vandalism2
2026-01-19road blockade1
2026-01-19vehicle theft3
2026-01-19Other1
2026-01-26robbery8
2026-01-26theft12
2026-01-26vandalism28
2026-01-26road blockade20
2026-01-26vehicle theft2
2026-01-26Other8
2026-02-02robbery6
2026-02-02theft3
2026-02-02vandalism3
2026-02-02road blockade1
2026-02-02vehicle theft5
2026-02-02Other3
2026-02-09robbery15
2026-02-09theft8
2026-02-09vandalism4
2026-02-09road blockade1
2026-02-09vehicle theft2
2026-02-09Other4
2026-02-16robbery13
2026-02-16theft9
2026-02-16vandalism3
2026-02-16road blockade1
2026-02-16vehicle theft4
2026-02-16Other4
2026-02-23robbery10
2026-02-23theft8
2026-02-23vandalism3
2026-02-23road blockade2
2026-02-23vehicle theft5
2026-02-23Other2
2026-03-02robbery16
2026-03-02theft8
2026-03-02vandalism35
2026-03-02road blockade40
2026-03-02vehicle theft5
2026-03-02Other6
2026-03-09robbery6
2026-03-09theft11
2026-03-09vandalism1
2026-03-09road blockade0
2026-03-09vehicle theft4
2026-03-09Other4
2026-03-16robbery10
2026-03-16theft10
2026-03-16vandalism2
2026-03-16road blockade3
2026-03-16vehicle theft5
2026-03-16Other4
2026-03-23robbery7
2026-03-23theft5
2026-03-23vandalism2
2026-03-23road blockade1
2026-03-23vehicle theft3
2026-03-23Other1
2026-03-30robbery7
2026-03-30theft5
2026-03-30vandalism2
2026-03-30road blockade0
2026-03-30vehicle theft2
2026-03-30Other2
2026-04-06robbery9
2026-04-06theft3
2026-04-06vandalism7
2026-04-06road blockade2
2026-04-06vehicle theft4
2026-04-06Other3
2026-04-13robbery12
2026-04-13theft7
2026-04-13vandalism1
2026-04-13road blockade1
2026-04-13vehicle theft1
2026-04-13Other5
2026-04-20robbery7
2026-04-20theft7
2026-04-20vandalism1
2026-04-20road blockade1
2026-04-20vehicle theft1
2026-04-20Other4
2026-04-27robbery13
2026-04-27theft14
2026-04-27vandalism32
2026-04-27road blockade30
2026-04-27vehicle theft4
2026-04-27Other7
2026-05-04robbery7
2026-05-04theft5
2026-05-04vandalism1
2026-05-04road blockade1
2026-05-04vehicle theft4
2026-05-04Other4
2026-05-11robbery8
2026-05-11theft6
2026-05-11vandalism2
2026-05-11road blockade1
2026-05-11vehicle theft2
2026-05-11Other1
2026-05-18robbery9
2026-05-18theft8
2026-05-18vandalism1
2026-05-18road blockade1
2026-05-18vehicle theft2
2026-05-18Other2
2026-05-25robbery9
2026-05-25theft9
2026-05-25vandalism1
2026-05-25road blockade1
2026-05-25vehicle theft3
2026-05-25Other3
2026-06-01robbery9
2026-06-01theft9
2026-06-01vandalism1
2026-06-01road blockade2
2026-06-01vehicle theft5
2026-06-01Other3
2026-06-08robbery9
2026-06-08theft12
2026-06-08vandalism35
2026-06-08road blockade31
2026-06-08vehicle theft7
2026-06-08Other8
2026-06-15robbery10
2026-06-15theft3
2026-06-15vandalism3
2026-06-15road blockade0
2026-06-15vehicle theft1
2026-06-15Other3
2026-06-22robbery5
2026-06-22theft4
2026-06-22vandalism1
2026-06-22road blockade1
2026-06-22vehicle theft3
2026-06-22Other4
2026-06-29robbery10
2026-06-29theft12
2026-06-29vandalism0
2026-06-29road blockade0
2026-06-29vehicle theft8
2026-06-29Other4
2026-07-06robbery8
2026-07-06theft3
2026-07-06vandalism1
2026-07-06road blockade1
2026-07-06vehicle theft1
2026-07-06Other3
2026-07-13robbery11
2026-07-13theft6
2026-07-13vandalism1
2026-07-13road blockade1
2026-07-13vehicle theft3
2026-07-13Other3
2026-07-20robbery6
2026-07-20theft3
2026-07-20vandalism1
2026-07-20road blockade0
2026-07-20vehicle theft4
2026-07-20Other2
2026-07-27robbery5
2026-07-27theft8
2026-07-27vandalism2
2026-07-27road blockade1
2026-07-27vehicle theft3
2026-07-27Other2
2026-08-03robbery6
2026-08-03theft7
2026-08-03vandalism5
2026-08-03road blockade2
2026-08-03vehicle theft4
2026-08-03Other1
2026-08-10robbery8
2026-08-10theft10
2026-08-10vandalism2
2026-08-10road blockade2
2026-08-10vehicle theft0
2026-08-10Other3
2026-08-17robbery3
2026-08-17theft8
2026-08-17vandalism2
2026-08-17road blockade2
2026-08-17vehicle theft1
2026-08-17Other4
2026-08-24robbery6
2026-08-24theft10
2026-08-24vandalism1
2026-08-24road blockade1
2026-08-24vehicle theft3
2026-08-24Other3
2026-08-31robbery9
2026-08-31theft5
2026-08-31vandalism3
2026-08-31road blockade3
2026-08-31vehicle theft6
2026-08-31Other1
2026-09-07robbery9
2026-09-07theft6
2026-09-07vandalism4
2026-09-07road blockade2
2026-09-07vehicle theft4
2026-09-07Other7
2026-09-14robbery15
2026-09-14theft12
2026-09-14vandalism24
2026-09-14road blockade37
2026-09-14vehicle theft3
2026-09-14Other6
2026-09-21robbery5
2026-09-21theft8
2026-09-21vandalism1
2026-09-21road blockade1
2026-09-21vehicle theft3
2026-09-21Other6
2026-09-28robbery7
2026-09-28theft4
2026-09-28vandalism1
2026-09-28road blockade0
2026-09-28vehicle theft1
2026-09-28Other2

Figure 26. Protest events over time (date) 81

periodseriesvalue
2026-01-05large1
2026-01-05small1
2026-01-05medium1
2026-01-12large1
2026-01-12small0
2026-01-12medium1
2026-01-19large1
2026-01-19small0
2026-01-19medium0
2026-01-26large2
2026-01-26small2
2026-01-26medium1
2026-02-02large1
2026-02-02small1
2026-02-02medium0
2026-02-09large0
2026-02-09small0
2026-02-09medium0
2026-02-16large2
2026-02-16small0
2026-02-16medium0
2026-02-23large0
2026-02-23small2
2026-02-23medium2
2026-03-02large2
2026-03-02small1
2026-03-02medium3
2026-03-09large0
2026-03-09small1
2026-03-09medium0
2026-03-16large0
2026-03-16small0
2026-03-16medium0
2026-03-23large0
2026-03-23small0
2026-03-23medium0
2026-03-30large1
2026-03-30small0
2026-03-30medium1
2026-04-06large1
2026-04-06small0
2026-04-06medium0
2026-04-13large0
2026-04-13small0
2026-04-13medium0
2026-04-20large0
2026-04-20small1
2026-04-20medium0
2026-04-27large1
2026-04-27small3
2026-04-27medium1
2026-05-04large0
2026-05-04small1
2026-05-04medium0
2026-05-11large0
2026-05-11small0
2026-05-11medium0
2026-05-18large0
2026-05-18small0
2026-05-18medium0
2026-05-25large0
2026-05-25small0
2026-05-25medium1
2026-06-01large1
2026-06-01small0
2026-06-01medium1
2026-06-08large4
2026-06-08small1
2026-06-08medium3
2026-06-15large0
2026-06-15small2
2026-06-15medium1
2026-06-22large2
2026-06-22small0
2026-06-22medium1
2026-06-29large1
2026-06-29small0
2026-06-29medium0
2026-07-06large1
2026-07-06small0
2026-07-06medium0
2026-07-13large0
2026-07-13small1
2026-07-13medium0
2026-07-20large1
2026-07-20small0
2026-07-20medium0
2026-07-27large0
2026-07-27small1
2026-07-27medium0
2026-08-03large1
2026-08-03small1
2026-08-03medium0
2026-08-10large1
2026-08-10small2
2026-08-10medium0
2026-08-17large1
2026-08-17small1
2026-08-17medium0
2026-08-24large1
2026-08-24small1
2026-08-24medium0
2026-08-31large1
2026-08-31small0
2026-08-31medium1
2026-09-07large1
2026-09-07small1
2026-09-07medium2
2026-09-14large3
2026-09-14small1
2026-09-14medium0
2026-09-21large0
2026-09-21small2
2026-09-21medium0
2026-09-28large0
2026-09-28small1
2026-09-28medium0

Figure 27. Travel log over time (date) 82

periodseriesvalue
2025-09-29False9
2025-09-29True1
2025-10-06False4
2025-10-06True0
2025-10-13False8
2025-10-13True0
2025-10-20False3
2025-10-20True0
2025-10-27False6
2025-10-27True0
2025-11-03False9
2025-11-03True0
2025-11-10False11
2025-11-10True0
2025-11-17False10
2025-11-17True0
2025-11-24False4
2025-11-24True0
2025-12-01False10
2025-12-01True0
2025-12-08False4
2025-12-08True2
2025-12-15False7
2025-12-15True0
2025-12-22False14
2025-12-22True0
2025-12-29False7
2025-12-29True0
2026-01-05False6
2026-01-05True0
2026-01-12False7
2026-01-12True0
2026-01-19False10
2026-01-19True0
2026-01-26False11
2026-01-26True1
2026-02-02False5
2026-02-02True0
2026-02-09False9
2026-02-09True0
2026-02-16False9
2026-02-16True0
2026-02-23False9
2026-02-23True0
2026-03-02False7
2026-03-02True0
2026-03-09False7
2026-03-09True0
2026-03-16False10
2026-03-16True0
2026-03-23False8
2026-03-23True0
2026-03-30False3
2026-03-30True0
2026-04-06False9
2026-04-06True1
2026-04-13False3
2026-04-13True0
2026-04-20False6
2026-04-20True0
2026-04-27False5
2026-04-27True0
2026-05-04False9
2026-05-04True0
2026-05-11False8
2026-05-11True1
2026-05-18False6
2026-05-18True0
2026-05-25False5
2026-05-25True3
2026-06-01False4
2026-06-01True0
2026-06-08False10
2026-06-08True0
2026-06-15False4
2026-06-15True0
2026-06-22False9
2026-06-22True0
2026-06-29False6
2026-06-29True0
2026-07-06False15
2026-07-06True0
2026-07-13False5
2026-07-13True0
2026-07-20False5
2026-07-20True0
2026-07-27False9
2026-07-27True0
2026-08-03False5
2026-08-03True1
2026-08-10False9
2026-08-10True0
2026-08-17False10
2026-08-17True0
2026-08-24False9
2026-08-24True0
2026-08-31False7
2026-08-31True0
2026-09-07False7
2026-09-07True0
2026-09-14False7
2026-09-14True0
2026-09-21False8
2026-09-21True0
2026-09-28False3
2026-09-28True0

Figure 28. Hot spot analysis: Protest events 83

bin_startbin_endbandband_labelcount
-2-1.5cold_90Cold spot, 90% confidence1
-1.5-1not_significantNot significant2
-1-0.5not_significantNot significant3
-0.50not_significantNot significant7
00.5not_significantNot significant2
0.51not_significantNot significant3
11.5not_significantNot significant4
1.52hot_90Hot spot, 90% confidence1
22.5hot_95Hot spot, 95% confidence3
2.53hot_99Hot spot, 99% confidence2
3.54hot_99Hot spot, 99% confidence1

Figure 29. Hot spot analysis: Hotels 84

bin_startbin_endbandband_labelcount
-1.5-1not_significantNot significant2
-1-0.5not_significantNot significant4
-0.50not_significantNot significant5
00.5not_significantNot significant1
1.52hot_95Hot spot, 95% confidence1
22.5hot_95Hot spot, 95% confidence1

Figure 30. Hot spot analysis: Security incidents 85

bin_startbin_endbandband_labelcount
-1-0.5not_significantNot significant41
-0.50not_significantNot significant203
00.5not_significantNot significant78
0.51not_significantNot significant10
11.5not_significantNot significant3
1.52hot_95Hot spot, 95% confidence1
1.52not_significantNot significant1
22.5hot_95Hot spot, 95% confidence4
2.53hot_95Hot spot, 95% confidence1
33.5hot_99Hot spot, 99% confidence2
3.54hot_99Hot spot, 99% confidence3
44.5hot_99Hot spot, 99% confidence2
4.55hot_99Hot spot, 99% confidence1
55.5hot_99Hot spot, 99% confidence1
77.5hot_99Hot spot, 99% confidence1
8.59hot_99Hot spot, 99% confidence1

Figure 31. Emerging hot spots: Protest events 86

bin_startbin_endcount
-0.608-0.37948
-0.3794-0.15080
-0.15080.07780
0.07780.30640
0.30640.5356

Figure 32. Emerging hot spots: Security incidents 87

bin_startbin_endcount
-0.663-0.382438
-0.3824-0.101732
-0.10170.17890
0.17890.459513
0.45950.740115
0.74011.0210
1.0211.3018
1.3011.5822

Figure 33. Repeat and near repeat classification: Protest events 88

periodseriesvalue
2026-01-05large1
2026-01-05small1
2026-01-05medium1
2026-01-12large1
2026-01-12small0
2026-01-12medium1
2026-01-19large1
2026-01-19small0
2026-01-19medium0
2026-01-26large2
2026-01-26small2
2026-01-26medium1
2026-02-02large1
2026-02-02small1
2026-02-02medium0
2026-02-09large0
2026-02-09small0
2026-02-09medium0
2026-02-16large2
2026-02-16small0
2026-02-16medium0
2026-02-23large0
2026-02-23small2
2026-02-23medium2
2026-03-02large2
2026-03-02small1
2026-03-02medium3
2026-03-09large0
2026-03-09small1
2026-03-09medium0
2026-03-16large0
2026-03-16small0
2026-03-16medium0
2026-03-23large0
2026-03-23small0
2026-03-23medium0
2026-03-30large1
2026-03-30small0
2026-03-30medium1
2026-04-06large1
2026-04-06small0
2026-04-06medium0
2026-04-13large0
2026-04-13small0
2026-04-13medium0
2026-04-20large0
2026-04-20small1
2026-04-20medium0
2026-04-27large1
2026-04-27small3
2026-04-27medium1
2026-05-04large0
2026-05-04small1
2026-05-04medium0
2026-05-11large0
2026-05-11small0
2026-05-11medium0
2026-05-18large0
2026-05-18small0
2026-05-18medium0
2026-05-25large0
2026-05-25small0
2026-05-25medium1
2026-06-01large1
2026-06-01small0
2026-06-01medium1
2026-06-08large4
2026-06-08small1
2026-06-08medium3
2026-06-15large0
2026-06-15small2
2026-06-15medium1
2026-06-22large2
2026-06-22small0
2026-06-22medium1
2026-06-29large1
2026-06-29small0
2026-06-29medium0
2026-07-06large1
2026-07-06small0
2026-07-06medium0
2026-07-13large0
2026-07-13small1
2026-07-13medium0
2026-07-20large1
2026-07-20small0
2026-07-20medium0
2026-07-27large0
2026-07-27small1
2026-07-27medium0
2026-08-03large1
2026-08-03small1
2026-08-03medium0
2026-08-10large1
2026-08-10small2
2026-08-10medium0
2026-08-17large1
2026-08-17small1
2026-08-17medium0
2026-08-24large1
2026-08-24small1
2026-08-24medium0
2026-08-31large1
2026-08-31small0
2026-08-31medium1
2026-09-07large1
2026-09-07small1
2026-09-07medium2
2026-09-14large3
2026-09-14small1
2026-09-14medium0
2026-09-21large0
2026-09-21small2
2026-09-21medium0
2026-09-28large0
2026-09-28small1
2026-09-28medium0

Figure 34. Summarize within: Risk zones 89

bin_startbin_endcount
00.66
0.61.23
1.21.80
1.82.43
2.432

Figure 35. Summarize within: Risk zones 90

bin_startbin_endcount
00.66
0.61.25
1.21.80
1.82.42
2.431

Figure 36. Summarize within: Risk zones 91

bin_startbin_endcount
01513
15300
30450
45600
60751

Figure 37. Find point clusters: Hospitals 92

clusterfeaturesfractionshare
0110.733373.3%
Noise40.266726.7%

Figure 38. Find point clusters: cluster hulls 93

clusterfeaturesfractionshare
011100.0%

Figure 39. Find point clusters: Safe havens 94

clusterfeaturesfractionshare
050.416741.7%
Noise40.333333.3%
130.2525.0%

Figure 40. Find point clusters: cluster hulls 95

clusterfeaturesfractionshare
010.550.0%
110.550.0%

Figure 41. Find point clusters: Protest events 96

clusterfeaturesfractionshare
0770.962596.2%
Noise30.03753.8%

Figure 42. Find point clusters: cluster hulls 97

clusterfeaturesfractionshare
011100.0%

Figure 43. Calculate density: Protest events 98

bin_startbin_endcount
02.320
2.34.627
4.66.933
6.99.268
9.211.548
11.513.847
13.816.163
16.118.433
18.420.726
20.72321

Figure 44. Calculate density: Hotels 99

bin_startbin_endcount
0.00026310.227648
0.22760.45511
0.4550.68239
0.68230.90963
0.90961.1374
1.1371.3642
1.3641.5921
1.5921.8194

Figure 45. Calculate density: Security incidents 100

bin_startbin_endcount
04.077166
4.0778.154169
8.15412.23166
12.2316.31169
16.3120.38169
20.3824.46174
24.4628.54167
28.5432.62175
32.6236.69173
36.6940.77171
40.7744.85169
44.8548.92174
48.9253198

Figure 46. Find outliers: Risk zones 101

valuelagtype
-1.2420.7068NS
0.257-0.3427NS
-0.94241.157NS
0.85671.157NS
-1.5420.257NS
0.257-0.0428NS
1.1570.5569NS
-0.04281.157NS
0.8567-0.3427NS
1.157-1.092NS
-0.94240.8567NS
-1.5420.5569NS
1.1570.4069NS
0.5569-1.542NS

Figure 47. Find nearest: Hospitals 102

rankname
1approved taxi
1approved taxi
1approved taxi
1approved taxi
1approved taxi
1approved taxi
1approved taxi
1approved taxi
1approved taxi
1approved taxi
1approved taxi
1approved taxi
1company car
1approved taxi

Figure 48. Find nearest: Hospitals 103

rankname
1embassy
1embassy
1hotel
1embassy
1partner office
1hotel
1partner office
1hotel
1partner office
1embassy
1partner office
1partner office
1partner office
1hotel

Figure 49. Find nearest: Hospitals over time 104

periodseriesvalue
2026-01-26large0
2026-01-26medium0
2026-01-26small1
2026-02-02large0
2026-02-02medium0
2026-02-02small0
2026-02-09large0
2026-02-09medium0
2026-02-09small0
2026-02-16large0
2026-02-16medium0
2026-02-16small0
2026-02-23large0
2026-02-23medium2
2026-02-23small0
2026-03-02large0
2026-03-02medium0
2026-03-02small0
2026-03-09large0
2026-03-09medium0
2026-03-09small0
2026-03-16large0
2026-03-16medium0
2026-03-16small0
2026-03-23large0
2026-03-23medium0
2026-03-23small0
2026-03-30large0
2026-03-30medium0
2026-03-30small0
2026-04-06large0
2026-04-06medium0
2026-04-06small0
2026-04-13large0
2026-04-13medium0
2026-04-13small0
2026-04-20large0
2026-04-20medium0
2026-04-20small0
2026-04-27large0
2026-04-27medium0
2026-04-27small0
2026-05-04large0
2026-05-04medium0
2026-05-04small0
2026-05-11large0
2026-05-11medium0
2026-05-11small0
2026-05-18large0
2026-05-18medium0
2026-05-18small0
2026-05-25large0
2026-05-25medium0
2026-05-25small0
2026-06-01large0
2026-06-01medium0
2026-06-01small0
2026-06-08large0
2026-06-08medium0
2026-06-08small0
2026-06-15large0
2026-06-15medium0
2026-06-15small0
2026-06-22large3
2026-06-22medium0
2026-06-22small0

Figure 50. Find point clusters: Protest events over time 105

periodseriesvalue
2026-01-05large1
2026-01-05small1
2026-01-05medium1
2026-01-12large1
2026-01-12small0
2026-01-12medium1
2026-01-19large1
2026-01-19small0
2026-01-19medium0
2026-01-26large2
2026-01-26small2
2026-01-26medium1
2026-02-02large1
2026-02-02small1
2026-02-02medium0
2026-02-09large0
2026-02-09small0
2026-02-09medium0
2026-02-16large2
2026-02-16small0
2026-02-16medium0
2026-02-23large0
2026-02-23small2
2026-02-23medium2
2026-03-02large2
2026-03-02small1
2026-03-02medium3
2026-03-09large0
2026-03-09small1
2026-03-09medium0
2026-03-16large0
2026-03-16small0
2026-03-16medium0
2026-03-23large0
2026-03-23small0
2026-03-23medium0
2026-03-30large1
2026-03-30small0
2026-03-30medium1
2026-04-06large1
2026-04-06small0
2026-04-06medium0
2026-04-13large0
2026-04-13small0
2026-04-13medium0
2026-04-20large0
2026-04-20small1
2026-04-20medium0
2026-04-27large1
2026-04-27small3
2026-04-27medium1
2026-05-04large0
2026-05-04small1
2026-05-04medium0
2026-05-11large0
2026-05-11small0
2026-05-11medium0
2026-05-18large0
2026-05-18small0
2026-05-18medium0
2026-05-25large0
2026-05-25small0
2026-05-25medium1
2026-06-01large1
2026-06-01small0
2026-06-01medium1
2026-06-08large4
2026-06-08small1
2026-06-08medium3
2026-06-15large0
2026-06-15small2
2026-06-15medium1
2026-06-22large2
2026-06-22small0
2026-06-22medium1
2026-06-29large1
2026-06-29small0
2026-06-29medium0
2026-07-06large1
2026-07-06small0
2026-07-06medium0
2026-07-13large0
2026-07-13small1
2026-07-13medium0
2026-07-20large1
2026-07-20small0
2026-07-20medium0
2026-07-27large0
2026-07-27small1
2026-07-27medium0
2026-08-03large1
2026-08-03small1
2026-08-03medium0
2026-08-10large1
2026-08-10small2
2026-08-10medium0
2026-08-17large1
2026-08-17small1
2026-08-17medium0
2026-08-24large1
2026-08-24small1
2026-08-24medium0
2026-08-31large1
2026-08-31small0
2026-08-31medium1
2026-09-07large1
2026-09-07small1
2026-09-07medium2
2026-09-14large3
2026-09-14small1
2026-09-14medium0
2026-09-21large0
2026-09-21small2
2026-09-21medium0
2026-09-28large0
2026-09-28small1
2026-09-28medium0

Figure 51. Repeat and near repeat classification: Protest events over time 106

periodseriesvalue
2026-01-05large1
2026-01-05small1
2026-01-05medium1
2026-01-12large1
2026-01-12small0
2026-01-12medium1
2026-01-19large1
2026-01-19small0
2026-01-19medium0
2026-01-26large2
2026-01-26small2
2026-01-26medium1
2026-02-02large1
2026-02-02small1
2026-02-02medium0
2026-02-09large0
2026-02-09small0
2026-02-09medium0
2026-02-16large2
2026-02-16small0
2026-02-16medium0
2026-02-23large0
2026-02-23small2
2026-02-23medium2
2026-03-02large2
2026-03-02small1
2026-03-02medium3
2026-03-09large0
2026-03-09small1
2026-03-09medium0
2026-03-16large0
2026-03-16small0
2026-03-16medium0
2026-03-23large0
2026-03-23small0
2026-03-23medium0
2026-03-30large1
2026-03-30small0
2026-03-30medium1
2026-04-06large1
2026-04-06small0
2026-04-06medium0
2026-04-13large0
2026-04-13small0
2026-04-13medium0
2026-04-20large0
2026-04-20small1
2026-04-20medium0
2026-04-27large1
2026-04-27small3
2026-04-27medium1
2026-05-04large0
2026-05-04small1
2026-05-04medium0
2026-05-11large0
2026-05-11small0
2026-05-11medium0
2026-05-18large0
2026-05-18small0
2026-05-18medium0
2026-05-25large0
2026-05-25small0
2026-05-25medium1
2026-06-01large1
2026-06-01small0
2026-06-01medium1
2026-06-08large4
2026-06-08small1
2026-06-08medium3
2026-06-15large0
2026-06-15small2
2026-06-15medium1
2026-06-22large2
2026-06-22small0
2026-06-22medium1
2026-06-29large1
2026-06-29small0
2026-06-29medium0
2026-07-06large1
2026-07-06small0
2026-07-06medium0
2026-07-13large0
2026-07-13small1
2026-07-13medium0
2026-07-20large1
2026-07-20small0
2026-07-20medium0
2026-07-27large0
2026-07-27small1
2026-07-27medium0
2026-08-03large1
2026-08-03small1
2026-08-03medium0
2026-08-10large1
2026-08-10small2
2026-08-10medium0
2026-08-17large1
2026-08-17small1
2026-08-17medium0
2026-08-24large1
2026-08-24small1
2026-08-24medium0
2026-08-31large1
2026-08-31small0
2026-08-31medium1
2026-09-07large1
2026-09-07small1
2026-09-07medium2
2026-09-14large3
2026-09-14small1
2026-09-14medium0
2026-09-21large0
2026-09-21small2
2026-09-21medium0
2026-09-28large0
2026-09-28small1
2026-09-28medium0

GeoBit Large Spatial Model. Findings are labeled Evidenced (computed by a tool), Inferred (a reading or reasoning) or Unverified (no evidence yet).

The data

The files this sample uploads: synthetic data generated at a real place. Download any of them and add them to a project of your own.

DatasetKindRowsTime spanFile
Company sites
Company offices, warehouses and client sites.
vector, Point8company_sites.geojson
Hotels
Hotels used by travelers.
vector, Point30hotels.geojson
Travel routes
Routes travelers use between the airport, hotels and sites.
vector, LineString10travel_routes.geojson
Security incidents
Security incidents from the company's own reporting and its partner network. Dated by occurred_at (minute).
vector, Point1,7002025-10-01
to 2026-09-30
security_incidents.geojson
Risk zones
Travel risk zones.
vector, Polygon14risk_zones.geojson
Hospitals
Hospitals with trauma level.
vector, Point15hospitals.geojson
Safe havens
Places a traveler can go to in an emergency.
vector, Point12safe_havens.geojson
Protest events
Planned and reported protests by day. Dated by date (day).
vector, Point802026-01-05
to 2026-09-28
protest_events.geojson
Travel log
Trips taken per route (joins to Travel routes on route_id). Dated by date (day).
table4002025-10-01
to 2026-09-30
travel_log.csv
Site guard roster
Guards per site and shift (joins to Company sites on facility_id).
table16guard_roster.csv
Country security briefing
A briefing naming sites, the corridor and a position.
documentcountry_briefing.pdf, country_briefing.md
Hotel security assessment
An assessment naming hotels and sites.
documenthotel_assessment.md, hotel_assessment.pdf

What the data was built to show

  • Robberies cluster along the Head office to Distribution center route, mostly at night (proximity to sites and routes).
  • Protests downtown create one-day spikes on five dates.
  • Incidents near Head office and Distribution center rank highest by nearness.

Expected analysis families: hot_spots, space_time, proximity, density, aggregation.

How the product read each dataset

The profile written when the data was added, before Start; no model call is needed for it.

  • Company sites: 8 point features; 'type' has 4 values (top: office 3, warehouse 2, client 2); 'security_level' has 2 values (top: standard 6, enhanced 2); 'staff' 8 to 420 (mean 97.5); named by 'name' (e.g. Head office, Distribution center, Sales office Norte); extent -99.1652,19.4107 to -99.1046,19.4578.
  • Hotels: 30 point features; 'approved' has 2 values (top: True 17, False 13); 'stars' 3 to 5 (mean 4.067); named by 'name' (e.g. Hotel Los Pinos 1, Hotel El Cerro 2, Hotel La Fuente 3); extent -99.1728,19.4108 to -99.1024,19.4643.
  • Travel routes: 10 line features; 'mode' has 2 values (top: approved taxi 8, company car 2); 'typical_min' 19 to 44 (mean 30.2); named by 'name' (e.g. Airport to Head office, Airport to Hotel Los Pinos 1, Hotel Los Pinos 1 to Head office); total length 51.24 km; extent -99.1652,19.4105 to -99.0901,19.4643.
  • Security incidents: 1,700 point features; dated by 'occurred_at' from 2025-10-01 to 2026-09-30; 'type' has 8 values (top: robbery 456, theft 390, vandalism 252); 'severity' has 3 values (top: low 832, medium 610, high 258); extent -99.1802,19.3971 to -99.0859,19.4682.
  • Risk zones: 14 polygon (area) features; 'night_travel' has 3 values (top: escort 5, allowed 5, avoid 4); 'risk_score' 1 to 10 (mean 6.143); named by 'name' (e.g. La Ribera, Los Pinos, El Cerro); total area 80.06 km2; extent -99.1809,19.3964 to -99.0856,19.4688.
  • Hospitals: 15 point features; 'english_speaking' has 2 values (top: False 9, True 6); 'trauma_level' 1 to 3 (mean 1.6); named by 'name' (e.g. Hospital Las Acacias, Hospital El Puerto Viejo, Hospital La Alameda); extent -99.1691,19.4018 to -99.0923,19.4672.
  • Safe havens: 12 point features; 'type' has 4 values (top: partner office 4, embassy 4, hotel 3); 'open_24h' has 2 values (top: True 6, False 6); extent -99.1732,19.4029 to -99.0999,19.4675.
  • Protest events: 80 point features; dated by 'date' from 2026-01-05 to 2026-09-28; 'size' has 3 values (top: large 32, small 28, medium 20); 'theme' has 4 values (top: education 23, water 22, labor 21); extent -99.1465,19.4258 to -99.1195,19.4519.
  • Travel log: Table of 400 rows and 6 columns without geometry; dated by 'date' from 2025-10-01 to 2026-09-30; 'incident_reported' has 2 values (top: False 390, True 10); 'travellers' 1 to 4 (mean 2.56); 'delay_min' 0 to 24 (mean 6.668).
  • Site guard roster: Table of 16 rows and 4 columns without geometry; 'shift' has 2 values (top: day 8, night 8); 'armed' has 2 values (top: False 15, True 1); 'guards' 1 to 6 (mean 4.188).
  • Country security briefing: 1-page pdf document 'Country security briefing'; language en; mentions 7 place(s): Head office to Distribution center (1), Head of (1), Distribution (1), La Ribera (1), Head office (1).
  • Hotel security assessment: 1-page md document 'Hotel security assessment'; language en; mentions 4 place(s): Hotel Los Pinos 1 (1), Hotel El Cerro 2 (1), Head office (1), Hotel La Fuente 3 (1).

Run this on your own data.

Sign up at lsm.geobit.ai, add your files, services and documents to a project, and get your own maps, charts and cited report.