QuakeNusa
This public repository does not include a GitHub description yet.
0
Stars
0
Forks
0
Watchers
0
Issues
192
Size (KB)
main
Branch
Files
2 folders · 3 filesClick a file to open it on GitHub. Browse full tree →
README.md
View raw on GitHub →QuakeNusa — Simulator Gempa & Tsunami Indonesia
Simulator edukasi interaktif untuk membuat skenario gempa hipotetis di wilayah Indonesia dan memvisualisasikan dampaknya: intensitas guncangan (MMI), paparan penduduk, serta potensi tsunami heuristik — di atas peta MapLibre.
> Bukan sistem peringatan dini. Seluruh model bersifat heuristik untuk tujuan edukasi. Untuk informasi resmi gempa, tsunami, dan keselamatan, rujuk BMKG — https://www.bmkg.go.id dan https://data.bmkg.go.id.
!React
!Vite
!TypeScript
!MapLibre
!License
Fitur
- Skenario custom — klik peta atau geser marker episenter, cari kota, pakai preset gempa historis & forecast, atur magnitudo (4.0–9.5) dan kedalaman (1–700 km), lalu tekan Jalankan simulasi.
- Visualisasi dampak — kontur MMI, jejak rupture, layer tsunami & genangan, MMI maksimum, radius, kota terdampak, dan estimasi paparan penduduk (bukan prediksi korban).
- Data live (konteks & seeding) — BMKG TEWS (polling 60 dtk), USGS FDSNWS (on-demand, merge & dedup dengan BMKG), cuaca Open-Meteo + marine, dan gunung api via Overpass. Semua di-fetch langsung dari browser tanpa API key.
- Performa — kalkulasi grid intensitas + kontur Turf
isolinesjalan di Web Worker, peta lazy-load, state Zustand tersinkronlocalStorage.
Mulai cepat
Persyaratan: Node 18+ (disarankan 20+), npm 9+.
cd app
npm install
npm run dev -- --port 3001
Build produksi:
cd app
npm run build
npm run preview
Kualitas kode:
cd app
npm run lint # Oxlint
npx vitest run # unit test (jsdom)
Struktur repo
QuakeNusa/
├── app/ # aplikasi web (React + Vite + TS) — kode utama di sini
│ ├── src/
│ │ ├── components/
│ │ │ ├── Map/ # EarthquakeMap, MMI/Tsunami/Inundation/Fault/Slab/Volcano layers
│ │ │ ├── ScenarioPanel/ # pencarian kota, preset, slider magnitudo & kedalaman
│ │ │ ├── Results/ # ringkasan, kota terdampak, hasil tsunami & genangan
│ │ │ ├── LiveGempa/ # panel live BMKG/USGS + notifier
│ │ │ └── Modal/ # Info & Metodologi
│ │ ├── workers/ # simulation.worker.ts (grid MMI → isolines → exposure → tsunami)
│ │ ├── stores/ # Zustand: simulationStore, pinnedStore
│ │ ├── lib/
│ │ │ ├── earthquake/ # MMI (mode educational), rupture, grid intensitas
│ │ │ ├── tsunami/ # gate tsunami, ETA c = √(g·h), genangan
│ │ │ ├── geo/ # landOcean, geocoder, reverse geocode
│ │ │ ├── bmkg/ usgs/ weather/ overpass/ population/
│ │ ├── data/ # cities, historicalEarthquakes, forecastPresets
│ │ └── types/
│ ├── public/data/ # faults.geojson, slab.geojson, indonesia-land.geojson
│ └── README.md # dokumentasi detail aplikasi (arsitektur, endpoint, CORS)
├── Docs/
│ └── gempa.md # spesifikasi awal / catatan perancangan
├── LICENSE
└── README.md # file ini
Dokumentasi teknis yang lebih dalam (tabel endpoint, interval polling, catatan CORS, parameter model) ada di app/README.md. Spesifikasi perancangan awal ada di Docs/gempa.md.
Sumber data
| Sumber | Endpoint / Dataset | Catatan |
|---|---|---|
| BMKG TEWS | data.bmkg.go.id/DataMKG/TEWS/autogempa.json, gempaterkini.json | Polling 60 dtk, overlay Shakemap bila ada |
| USGS FDSNWS | earthquake.usgs.gov/fdsnws/event/1/query?format=geojson | BBox Indonesia, merge & dedup ±15 mnt / ±100 km |
| Open-Meteo | forecast + marine API | On-demand saat simulasi / klik episenter |
| Overpass | node['natural'='volcano'] bbox Indonesia | Cache 5 mnt, layer gunung api |
| Sesar & slab | app/public/data/.geojson | Layer statis |
| Populasi | PopulationProvider (opsi raster WorldPop) | Label wajib "paparan penduduk" |
Prinsip: data live hanya untuk konteks visual dan seeding* parameter skenario. Model MMI/tsunami/genangan tetap heuristik edukasi.
Batasan & disclaimer
- Model MMI (
MODEL_MODE = "educational") adalah atenuasi edukasi terinspirasi Allen–Wald–Worden, bukan koefisien resmi.
- Gate tsunami (M ≥ 6.5, kedalaman ≤ 100 km, episenter di laut) dan propagasi
c = √(g·h)adalah heuristik; ETA diberi label heuristik, bukan waktu tiba resmi.
- Genangan (
MAX_RUNUP = 30 m, redaman3 m/km) heuristik, bukan hidrodinamika penuh.
- Jangan pernah commit API key; semua sumber yang dipakai memang tidak butuh key.
Berkontribusi
1. Fork & buat branch dari main (feat/... / fix/...).
2. Jalankan npm run lint dan pastikan npm run build lolos di dalam app/.
3. Tulis pesan commit yang jelas (disarankan Conventional Commits).
4. Buka pull request dengan deskripsi perubahan + cara verifikasi.
Lisensi
MIT — lihat LICENSE.
Repository metadata
- Owner
- TEGAR-SRC
- Primary language
- TypeScript
- License
- MIT
- Created
- Sep 8, 2026
- Last pushed
- Sep 9, 2026
- Last updated
- Sep 9, 2026
Clone this repository
HTTPS
git clone https://github.com/TEGAR-SRC/QuakeNusa.gitSSH
git clone git@github.com:TEGAR-SRC/QuakeNusa.git