Manual pengguna / 8 Oktober 2026
Panduan PSHA Workbench
Pengisian sumber gempa, pengolahan katalog, pemilihan skenario, dan pembacaan hasil probabilistic seismic hazard analysis.
Lokasi Jakarta dan sumber awal hanya ilustrasi. Ganti dengan model sumber, katalog, geometri, recurrence, dan GMM yang telah ditelaah. Hasil bukan otomatis spektrum desain sesuai peraturan dan bukan pengganti verifikasi ahli.
01. Alur kerja dan penyimpanan
- Pada PSHA analysis, isi site dan Vs30. Tunggu katalog GMM terhubung.
- Pada Seismic sources, buat kelompok shallow crustal, background, atau megathrust. Isi geometri, recurrence, distribusi magnitudo, dan GMM.
- Atur alternatif di Source logic tree bila diperlukan. Periksa parameter aktif dan bobotnya.
- Pada Parameters, pilih PGA/SA serta periode ulang. Jalankan perhitungan dan tangani pesan validasi.
- Telaah kurva hazard, spektra, deagregasi, dan peringatan. Ekspor proyek dan hasil sebelum menutup halaman.
Bedakan jenis berkas
| Berkas / tombol | Isi dan penggunaan |
|---|---|
| Save project / Open project | JSON konfigurasi: site, sumber, cabang aktif/nonaktif, GMM, IMT, dan periode ulang. Buka kembali untuk melanjutkan; bukan arsip hasil perhitungan. |
| Import JSON / Export custom source JSON | Model sumber saja, bukan keseluruhan konfigurasi proyek. |
| Ekspor hasil JSON / CSV | Hasil numerik untuk arsip dan pemeriksaan. Simpan bersama proyek yang menghasilkan angka tersebut. |
| Cetak / simpan PDF | Dokumentasi ini, bukan ekspor kurva atau konfigurasi proyek yang sedang dibuka. |
Server tidak menyimpan proyek atau hasil sebagai database. Refresh, penutupan tab, dan perpindahan halaman dapat menghapus pekerjaan yang belum diekspor. Dokumentasi dibuka pada tab baru dari halaman analisis. Transfer grid memakai IndexedDB browser dan dikonsumsi saat masuk ke PSHA; transfer bukan cadangan permanen.
02. Lokasi dan kondisi site
Isi Site name, Latitude, Longitude, dan Shear-wave velocity, Vs30. Peta membantu memeriksa posisi; nilai koordinat tetap harus ditelaah.
| Input | Satuan / pemeriksaan |
|---|---|
| Latitude | Derajat desimal WGS 84, -90 sampai 90. Lintang selatan negatif. |
| Longitude | Derajat desimal WGS 84, -180 sampai 180. Bujur timur positif. |
| Vs30 | m/s; input 180-1500. Gunakan nilai representatif investigasi site, bukan langsung menerima nilai awal. |
Contoh Jakarta: latitude -6.2088, longitude 106.8456. Katalog dan CSV grid memakai longitude dahulu, lalu latitude. Kedalaman sumber dalam km, bukan meter. Setelah transfer grid, site awal menjadi pusat grid: ubah kembali jika lokasi analisis berbeda.
03. Mengelola keluarga sumber
- Pilih mode Source families, lalu isi nama model sumber.
- Pilih keluarga pada New source family, klik Add group, dan beri nama unik tiap group.
- Pilih rupture dari daftar untuk mengisi panel detail. Gunakan pencarian, tambah, duplikasi, dan hapus untuk mengelola banyak sumber.
- Setelah duplikasi, tinjau nama, geometri, dan recurrence. Dua rupture aktif diperlakukan sebagai dua sumber, bukan otomatis alternatif.
- Jika dua trace adalah alternatif patahan yang sama, gunakan cabang trace scenario agar tidak menghitung sumber dua kali.
Bulk background memakai daftar node berpaginasi sehingga tidak perlu memasukkan satu titik per formulir. Mode legacy points masih dapat membaca proyek lama, tetapi memakai asumsi finite point-source yang lebih terbatas.
04. Shallow crustal / fault
Geometri
Masukkan trace berurutan, minimal dua vertex. Isi kedalaman atas dan bawah, dip, serta rake. Kedalaman bawah harus lebih besar daripada atas. Dip: 1-90 derajat; rake: -180 sampai 180 derajat. Periksa orientasi trace dan sisi kemiringan sesar, bukan hanya garis pada peta.
Annual rate atau slip rate
| Mode | Input yang diperlukan |
|---|---|
| Annual rate | Laju kejadian dalam 1/tahun, bukan probabilitas persen. Distribusi magnitudo menentukan alokasi laju tersebut. |
| Slip rate | Slip dalam mm/tahun, rigidity dalam GPa, seismic coupling tanpa satuan, geometri, dan distribusi magnitudo. Engine menurunkan annual rate. |
width = (lowerDepth - upperDepth) / sin(dip) M0dot = rigidity * area * slipRate * seismicCoupling M0(Mw) = 10^(1.5 * Mw + 9.05) [Nm] lambda_single = M0dot / M0(Mw)
Engine menyamakan panjang ke meter, rigidity ke pascal, dan slip ke meter/tahun. Panjang trace dihitung dari koordinat. Pada YC1985, seluruh distribusi memenuhi sum(lambda_i * M0_i) = M0dot; anggaran momen tidak diberikan penuh ke setiap bin.
Cabang geometri, depth, dip, slip, dan magnitudo menyebabkan annual rate slip dihitung ulang per skenario. Jangan mengisi slip rate sekaligus annual rate manual. Rigidity awal 30 GPa dan coupling 1 adalah asumsi yang perlu ditelaah, bukan nilai universal.
05. Megathrust
Megathrust adalah subduction interface, berbeda dari gempa Benioff di dalam slab. Isi upper trace dan lower trace dengan longitude, latitude, dan depth. Jumlah vertex keduanya harus sama; lower trace harus lebih dalam daripada pasangan vertex upper trace.
Recurrence manual atau a-b value
Untuk manual rate, isi annual rate dan distribusi single/characteristic. Untuk Gutenberg-Richter, pilih mode a-b dan isi a, b, minimum Mw, maximum Mw, serta interval magnitudo.
lambda(M) = 10^(a - b * M) [1/tahun per bin] annual rate total = sum(lambda(M))
a adalah intercept laju incremental per bin, bukan intercept kumulatif N(M >= m). Minimum dan maksimum pada mode a-b adalah pusat bin inklusif. Jika a berasal dari hubungan kumulatif katalog, konversikan ke konvensi incremental dan lebar bin yang dipakai terlebih dahulu.
Rentang magnitudo harus habis dibagi interval dan menghasilkan 2-50 bin. Mengubah Mmax mengubah jumlah bin dan total rate, dengan a dan b tetap. Pada logic tree, perpindahan dari model dasar GR ke cabang characteristic mewarisi total rate GR dasar; cabang GR memakai a-b miliknya sendiri.
06. Background dan Benioff
Buat group Background dan pilih tectonic setting.
| Setting | Kedalaman dan GMM |
|---|---|
| Active crust | Depth 0-30 km; gunakan GMM kerak aktif yang sesuai. |
| Benioff | Depth 20-700 km; gunakan bulk grid dan GMM slab, bukan GMM interface. |
Gunakan Import background grid CSV untuk banyak titik sekaligus. Format minimal:
longitude,latitude,rate_M5,rate_M6 106.80,-6.20,0.001,0.0001 106.90,-6.10,0.002,0.0002
Kolom rate_M... berisi incremental annual rate pada setiap magnitudo. Gunakan titik sebagai desimal. Nilai nol diperbolehkan pada bulk grid; jangan memasukkan 10^a ke kolom rate. CSV hasil tab Gridded seismicity dapat langsung diimpor.
Semua node dalam satu bulk grid berbagi depth dan daftar magnitudo. Tinjau jumlah node, koordinat, depth, dan rate node terpilih. Cabang Maximum magnitude background membuang bin di atas ambang tanpa normalisasi ulang rate yang tersisa.
07. Distribusi magnitudo
| Pilihan | Makna dalam engine |
|---|---|
| Maximum magnitude / single | Satu magnitudo kejadian. Label maximum tidak otomatis menghasilkan distribusi GR. |
| Discrete magnitude tree | Alternatif Mw berbobot. Manual rate dikalikan bobot; pada slip rate, setiap alternatif memperoleh rate dari keseimbangan momen. |
| Characteristic - single Mw | Seluruh laju pada satu Mchar. |
| Youngs-Coppersmith 1985 | Komponen GR magnitudo kecil dan pita characteristic selebar 0,5 Mw, dari Mchar-0,25 hingga Mchar+0,25. |
| Gutenberg-Richter a-b | Distribusi incremental a-b; tersedia untuk megathrust. |
YC1985 memerlukan Mchar, minimum Mw sebagai tepi bawah, b-value, dan lebar bin. Ini berbeda dari pusat bin pada GR a-b. Batas bin harus selaras dengan pita characteristic; minimal dua bin pada komponen bawah dan maksimal 100 bin total.
Contoh fault yang selaras: Mchar 7,25; minimum 5,0; b = 1; lebar bin 0,1, menghasilkan 25 bin. Contoh megathrust: Mchar 8,25; minimum 6,0; b = 1; lebar bin 0,1. Angka ini contoh format, bukan rekomendasi geologi.
Manual annual rate pada YC1985 adalah total seluruh distribusi, bukan hanya pita characteristic. Batas atas pita mengikuti Mchar+0,25; Mmax alternatif single/GR bukan batas tambahan untuk memotong pita YC1985.
08. Logic tree dan GMM
Formulir sumber adalah model dasar; diagram logic tree menyimpan alternatif parameter sumber itu. GMM dikelola pada tingkat group dan berlaku untuk seluruh sumber dalam group.
- Centang parameter yang ingin divariasikan. Klik node diagram untuk membuka tabel cabang. Panah kiri/kanan menggeser diagram.
- Isi label, nilai, dan bobot. Cabang tambahan atau duplikasi awalnya dapat nonaktif; centang agar dihitung.
- Jumlah bobot aktif tiap parameter harus 1. Tombol neraca menormalisasi bobot; API tidak menormalisasi diam-diam.
- Parameter nonaktif memakai nilai dasar. Cabang nonaktif tidak dihitung, tetapi tetap tersimpan di proyek.

Prioritas Mmax/Mchar
Jika Magnitude distribution dan Mmax/Mchar sama-sama aktif, magnitudo perhitungan berasal dari Mmax/Mchar. Engine memilih distribusi dahulu, lalu mengganti magnitudonya. Single/GR memakai Mmax; characteristic/YC1985 memakai Mchar. Kolom magnitudo pada cabang Magnitude distribution disembunyikan saat penggantian aktif; nilai tersimpan muncul kembali ketika Mmax/Mchar dimatikan.
Contoh: cabang distribusi menyimpan Mchar 7,0, sedangkan Mmax/Mchar berisi Mchar 7,25. Engine memakai 7,25. Minimum Mw, b-value, dan interval tetap dari distribusi. Semua kombinasi aktif harus valid, termasuk keselarasan bin.
Bobot dan kombinasi
Bobot skenario = bobot trace * bobot depth * bobot MFD * bobot Mw * ... Mean hazard(x) = sum(bobot skenario * hazard_skenario(x))
Dua cabang MFD dan tiga cabang Mw membentuk enam skenario. Model dasar tidak ditambahkan sebagai skenario ekstra. Spektra periode ulang diinterpolasi dari kurva hazard rata-rata berbobot, bukan rata-rata nilai PGA/SA tiap skenario. Dimensi diperlakukan independen; versi ini tidak mengeluarkan kurva persentil epistemik.
Memilih GMM
Pilih GMM library sesuai keluarga sumber, wilayah penerapan, dan dukungan IMT. Atur bobot aktif hingga 1. Jika GMM tree dimatikan, hanya Base GMM dipakai dengan bobot 1. Group dalam direktori sumber native yang sama harus memakai GMM efektif dan bobot yang sama. Memilih characteristic tidak mengganti library GMM dengan model baru.
09. Katalog menjadi gridded seismicity
Tab ini mengimplementasikan metode Fortran agridMLsm.v2.f pada worker browser, bukan menjalankan binary Fortran. Background PSHA sendiri tidak menghitung katalog ulang: ia menerima annual rate dari grid.
Format lima kolom
Magnitude,Long,Lat,Jarak Rupture,tahun 5.2,106.80,-6.20,8,2004 5.7,106.92,-6.12,9,2014 6.1,106.64,-6.34,13,1989
Impor CSV/TXT atau tempel data. Koma, titik koma, dan spasi didukung; baris data harus tepat lima angka, dengan tahun bilangan bulat. Header contoh di atas didukung. Kolom keempat disimpan dalam Analisis JSON tetapi tidak memengaruhi annual rate. Atur kedalaman PSHA terpisah.
- Impor katalog dan tinjau batas grid yang diusulkan.
- Isi ukuran grid dalam derajat dan jarak korelasi Gaussian dalam km. Grid rapat meningkatkan jumlah sel dan biaya hitung.
- Sesuaikan tahun akhir katalog, b-value, minimum/maksimum Mw, lebar bin Fortran, dan lebar bin output. Tahun akhir awal tidak otomatis mengikuti tahun hari ini.
- Isi ambang magnitudo dan tahun mulai kelengkapan. Aplikasi tidak mengestimasi b-value, tidak menentukan kelengkapan otomatis, dan tidak melakukan declustering.
- Isi depth output. Klik Hitung annual rate; pantau progress atau pilih Hentikan. Mengubah parameter/katalog membatalkan hitungan berjalan.
- Periksa jumlah kejadian terpakai/diabaikan, peta, 10^a, dan rate. Tabel menampilkan 100 sel pertama; ekspor memuat seluruh sel.
10^a dan annual rate
F(dM) = 10^(b*dM/2) - 10^(-b*dM/2) rate(M, D) = (10^a) * 10^(-b*M) * F(D) / F(dM)
dM adalah lebar bin input Fortran; D lebar bin output. Nilai 10^a sudah mencakup hitungan kejadian, faktor kelengkapan, dan smoothing; bukan annual rate total. Normalisasi smoothing dilakukan per sel output, sehingga jumlah sesudah smoothing tidak harus sama dengan sebelum smoothing, terutama di tepi grid.
| Keluaran | Tujuan |
|---|---|
| CSV | Koordinat dan annual rate semua sel per Mw, siap diimpor sebagai background. |
| Analisis JSON | Katalog asli, pengaturan, dan hasil untuk audit. |
| Sumber JSON | Model bulk background untuk impor sumber PSHA. |
| Gunakan di PSHA | Transfer melalui browser ke halaman PSHA; tinjau site, GMM, dan setting sumber. |
Output awal adalah active crust. Untuk Benioff, ganti setting pada background editor, pilih GMM slab dan depth yang sesuai. Verifikasi sendiri asumsi independensi kejadian pada katalog.
10. Hazard, spektra, dan deagregasi
IMT dan periode ulang
Pilih PGA atau SA pada periode yang didukung semua GMM aktif. SA memakai redaman 5%; percepatan dalam g. Tombol tambah periode ulang menyediakan 1-8 target unik, masing-masing 2-100.000 tahun.
Target annual exceedance rate adalah 1 / T. Untuk T = 2.475 tahun, target sekitar 0,000404 per tahun. Annual rate kejadian sumber berbeda dari laju pelampauan gerakan tanah; laju pelampauan sudah melibatkan peluang dari GMM.
- Hazard curve: intensitas versus laju pelampauan. Kurva tidak meningkat saat intensitas bertambah.
- Uniform hazard spectrum: PGA/SA untuk laju pelampauan sama. PGA tercatat pada periode 0 detik.
- Deagregasi: pilih IMT dan target IML atau periode ulang. Tampilan magnitudo-jarak menjumlahkan kontribusi epsilon.
- Metadata/peringatan: telaah asumsi, model, dan kontribusi di luar batas bin.
Spektra null berarti target di luar bagian kurva positif yang dihitung, bukan percepatan nol. Tidak ada ekstrapolasi spektra. Sumber terlalu jauh atau rate kecil dapat menghasilkan hazard nol. Persentase deagregasi merujuk hazard yang berhasil dipulihkan; residu di luar bin dilaporkan terpisah.
Ekspor angka untuk pemeriksaan, bukan hanya mengandalkan grafik. Simpan proyek beserta hasil sehingga sumber, bobot, dan parameter dapat ditelusuri.
11. Pemeriksaan dan pemecahan masalah
| Gejala | Tindakan |
|---|---|
| Bobot tidak berjumlah 1 | Periksa cabang aktif; gunakan normalisasi. Setidaknya satu cabang harus aktif. |
| YC1985 / GR tidak valid | Periksa minimum, Mchar/Mmax efektif, interval, dan keselarasan semua kombinasi cabang. |
| GMM / IMT tidak tersedia | Periksa setting dan dukungan IMT tiap GMM. Benioff memakai slab, megathrust memakai interface. |
| Engine unavailable / 502 | Administrator memeriksa backend, jaringan container, dan BACKEND_URL. Dokumentasi tidak membutuhkan backend. |
| HTTP 503 | Slot upload/perhitungan sedang digunakan. Tunggu sebelum mengirim ulang. |
| HTTP 413 | Request di atas 64 MiB atau limit proxy lebih kecil. Kurangi grid/cabang atau periksa proxy. |
| HTTP 504 | Timeout frontend 600 detik; proxy dapat lebih pendek. Java mungkin masih berjalan walau browser berhenti menunggu. |
| Peta dasar hilang | Periksa internet ke penyedia tile. Tetap tinjau koordinat numerik. |
| Transfer grid gagal | Izinkan IndexedDB pada origin yang sama, atau ekspor Sumber JSON/CSV lalu impor manual. |
Checklist hasil
- Koordinat, depth, dip/rake, dan pasangan trace benar.
- Tidak ada sumber fisik dihitung ganda.
- Definisi rate, slip, a-b, serta pusat/tepi bin konsisten.
- Bobot dan Mmax/Mchar efektif sesuai maksud analis.
- GMM dan IMT sesuai setting dan rentang model.
- Bandingkan model sederhana dengan perhitungan independen.
- Arsipkan input, output, versi aplikasi, dan alasan pemilihan parameter.
12. Deployment Docker / Dokploy
Opsi A: Docker Compose
Direkomendasikan untuk konfigurasi yang tersedia. Gunakan Compose Path ./compose.dokploy.yaml, context root repository, Compose minimal 2.24.4, dan jaringan dokploy-network yang tersedia. Kedua layanan harus tetap berbagi jaringan default proyek.
Pada Domains: host psha.ailgeotek.my.id, service frontend, container port 3000, path /, HTTPS/Let's Encrypt aktif. DNS mengarah ke server. Backend tidak perlu domain publik.
Opsi B: Build Type Dockerfile
Bisa, dengan dua application/service Dokploy terpisah. Dockerfile frontend saja tidak menjalankan Java. Gunakan repository yang sama dan context . untuk kedua build.
| Pengaturan | Backend | Frontend |
|---|---|---|
| Dockerfile Path | Dockerfile.backend | Dockerfile.frontend |
| Docker Context Path | . | . |
| Build Stage | runtime, atau kosong | runtime, atau kosong |
| Port internal | 8080 | 3000 |
| Domain | Tidak dipublikasikan | psha.ailgeotek.my.id + HTTPS |
# Environment backend PORT=8080 JAVA_TOOL_OPTIONS=-XX:MaxRAMPercentage=75.0 -XX:+ExitOnOutOfMemoryError # Environment frontend PORT=3000 HOSTNAME=0.0.0.0 BACKEND_URL=http://NAMA_SERVICE_INTERNAL_BACKEND:8080
Ganti placeholder dengan DNS/service internal backend yang benar. Hubungkan kedua application ke jaringan Docker yang sama. Deploy backend hingga sehat, lalu frontend. Jangan gunakan localhost sebagai alamat backend di container frontend, dan jangan arahkan BACKEND_URL ke domain publik frontend.
Pengaturan Compose tidak otomatis diterapkan pada dua application Dockerfile. Atur kembali jaringan, restart, logging, grace period, serta resource Dokploy. Acuan saat ini: backend 2 GiB/2 CPU, frontend 768 MiB/1 CPU, satu replika masing-masing. Ini bukan jaminan kapasitas grid terbesar; sediakan resource tambahan untuk build dan platform.
- Sertakan source vendor, test fixtures, notice lisensi, dan package lock. Database dan arsip CONUS tidak diperlukan untuk sumber custom.
- Backend sehat di
/actuator/health; cek/api/psha/catalogmelalui frontend untuk memeriksa koneksi. - Body proxy minimal 64 MiB, timeout respons di atas 600 detik, dan API tidak di-cache. Terapkan kontrol akses/rate limiting sesuai kebutuhan; HTTPS bukan pembatas pengguna.
- Jalankan
node scripts/deployment-smoke.mjs https://psha.ailgeotek.my.iddari checkout dengan Node 22.18+ saat engine tidak sibuk. - Uji DNS, TLS, upload, worker, unduhan, dan perhitungan di server. Build/run Docker Linux serta TLS publik belum dapat diverifikasi di workstation tanpa Docker Engine.
13. Batasan dan referensi
| Komponen | Batas implementasi |
|---|---|
| Katalog / grid | 10.000 kejadian; upload katalog 2 MB; 200.000 sel; 20 bin output; request PSHA 64 MiB. |
| Sumber manual | 200 sumber manual/rupture total. Bulk grid tidak dihitung sebagai sumber manual per node. |
| Logic tree | 20 cabang per parameter; 4.096 realisasi per sumber; 20.000 realisasi rupture total; 2.000.000 realisasi node background. |
| Jarak sumber native | Shallow crustal dan active-crust background: 300 km. Benioff dan megathrust: 1.000 km. |
| Model | USGS nshmp-lib, basin depth native, truncation atas 3 sigma. Bukan validasi seluruh model Indonesia atau kesetaraan bitwise Fortran/EZ-FRISK. |
Batas input bukan jaminan semua kombinasi maksimum akan muat dalam memori atau selesai sebelum timeout. Mulai dari model sederhana dan periksa sensitivitas serta konvergensi.
- USGS nshmp-lib: engine dan GMM
- GEM/OpenQuake: distribusi Youngs-Coppersmith 1985
- Dokploy: Build Type Dockerfile
- Dokploy: domain dan jaringan Compose
Rincian repository: docs/API.md, docs/GRIDDED_SEISMICITY.md, docs/VALIDATION.md. Contoh examples/characteristic-logic-tree.json adalah ilustrasi pengujian, bukan rekomendasi model site.