province_dashboard
Alur pemrosesan data situasi kamtibmas 38 provinsi dan representasi Situational Digital Twin wilayah ke dalam indeks Elasticsearch province_dashboard.
Pipeline Data: province_dashboard (Situasi Wilayah & Digital Twin)
Indeks Elasticsearch province_dashboard adalah jantung dari modul Situational Digital Twin pada dashboard eksekutif. Indeks ini menyimpan snapshot terkini stabilitas keamanan dan ketertiban masyarakat (kamtibmas), sentimen publik, dan tingkat kesiapsiagaan di 38 provinsi se-Indonesia.
1. Ringkasan Arsitektur Alur
[Dokumen Berita Ter-enrich D1] ──► Ekstraksi Lokasi Geospasial
│
▼
[master_regions (PostgreSQL)] ──► Resolusi ID Provinsi & Kab/Kota
│
▼
[nexa-aggregation Worker] (Hourly & Daily Rollup)
• Agregasi Volume Insiden per Provinsi
• Rasio Sentimen Negatif (%)
• Kalkulasi Indeks Kerawanan Kamtibmas (0.00 - 1.00)
• Penetapan Status Kesiapsiagaan (Hijau, Kuning, Merah)
│
▼
[Elasticsearch: province_dashboard]
│
▼
Dashboard Overview (Choropleth Map GIS 38 Provinsi)2. Resolusi Spasial & Pemetaan Wilayah
- Ekstraksi Geospasial:
Worker
nexa-d1mendeteksi entitas lokasi dari klausa Keterangan (K) pada SPOK berita (misal: "di kawasan Wonokromo, Surabaya"). - Korelasi ke Master Regions:
Sistem mencocokkan teks ke tabel
master_regionsdi PostgreSQL untuk mengaitkan artikel ke ID Kabupaten/Kota (city_id: 3578) dan ID Provinsi (province_id: 35- Jawa Timur).
3. Kalkulasi Indeks Kerawanan Kamtibmas
Worker nexa-aggregation menghitung skor kerawanan wilayah berkala:
Regional Threat Index = (Negative Articles / Total Articles) * 0.4 + (Velocity Anomaly / Baseline) * 0.4 + (High Severity Incidents * 0.2)Matriks Status Kesiapsiagaan Wilayah
| Status Kesiapsiagaan | Rentang Skor Kerawanan | Warna Tampilan Peta | Rekomendasi Tindakan |
|---|---|---|---|
| Hijau (Aman) | Skor [0.00 - 0.35) | Hijau | Patroli dialogis rutin, pengawasan standar. |
| Kuning (Waspada) | Skor [0.35 - 0.70] | Kuning | Peningkatan frekuensi patroli, monitor media intelijen. |
| Merah (Siaga / Kritis) | Skor (0.70 - 1.00] | Merah | Apel siaga daerah, perkuatan personel, early warning alert. |
4. Struktur Dokumen di Elasticsearch province_dashboard
{
"_id": "ID-JI_2026-09-26",
"province_id": 35,
"province_code": "ID-JI",
"province_name": "Jawa Timur",
"snapshot_date": "2026-09-26",
"threat_index": 0.42,
"readiness_status": "KUNING",
"metrics": {
"total_articles": 1820,
"negative_sentiment_pct": 0.38,
"top_issue": "Penipuan Online",
"active_cases": 14
},
"coordinates": {
"lat": -7.5360,
"lon": 112.2384
},
"updated_at": "2026-09-26T12:00:00Z"
}5. Spesifikasi Payload Request Pipeline
Payload query agregasi yang dieksekusi oleh worker nexa-aggregation ke indeks articles untuk mengalkulasi metrik 38 provinsi:
POST /articles/_search
{
"size": 0,
"query": {
"range": {
"processed_at": {
"gte": "2026-09-25T00:00:00",
"lt": "2026-09-26T00:00:00",
"time_zone": "+07:00"
}
}
},
"aggs": {
"by_province": {
"terms": {
"field": "geo_location.province.keyword",
"size": 100
},
"aggs": {
"avg_risk": { "avg": { "field": "risk_score" } },
"negative_count": {
"filter": { "term": { "sentiment.label": "negative" } }
},
"by_taxonomy": {
"terms": { "field": "taxonomy.lineages.keyword", "size": 10 }
}
}
}
}
}postings
Alur pengumpulan data media sosial bersiklus 15 menit via B3 Scraper di Phone Farm, ekstraksi X/Twitter trending, pencocokan taksonomi/pilar, snapshots PostgreSQL, pemanenan multichannel (X, FB, IG, TikTok), dan persistensi langsung ke tabel PostgreSQL & indeks Elasticsearch postings dan post_author.
issue_dashboard
Alur agregasi deteksi daun taksonomi isu per artikel, evaluasi 5 tingkat risiko (Aman, Rendah, Sedang, Tinggi, Kritis), geospasial provinsi terdampak, dan pengisian indeks Elasticsearch issue_dashboard untuk panel Issue Discovery.