Dynamis Associates × Appgile Revisión técnica 2026-04-19

5BGC PSHA — Revisión de inputs

Geometría y modelo sísmico de las 41 fuentes, leyes de atenuación empleadas, árbol lógico y comparación con la referencia R-CRISIS para el sitio 5BGC, Metro Manila. Documento de trabajo para revisión de Carlos Cónclave CEO.

14.54762° N, 121.04674° E  ·  Vs30 = 520 m/s (medido)  ·  radius 300 km
Fuentes totales
41
7 zonas + 10 subducción + 24 fallas
GMPEs por defecto
8
5 corticales + 3 subducción
PGA 475y (ref)
0.375 g
R-CRISIS + ASK14 + BCHydro
PGA 475y (UI)
0.324 g
−13.6% por logic tree

00Resumen ejecutivo

El motor PSHA corre sobre 41 fuentes del catálogo PEM1 (Dynamis 2025) y reproduce el snapshot locked de 5BGC (PGA 475y = 0.37454 g, PGA 2475y = 0.67766 g) cuando se configura con la receta R-CRISIS (ASK14 cortical + BCHydro subducción, Vs30 = 520 m/s).

La UI de hazard-explorer devuelve valores ~14% más bajos que el snapshot porque aplica un árbol lógico ampliado por defecto (4 GMPEs NGA-West2 + 3 subducción promediados con pesos iguales). Este documento desglosa los inputs reales que se envían al endpoint /api/v1/sources/psha para que puedas validarlos contra el informe Dynamis de referencia.

Tres hallazgos a revisar contigo
  1. Vs30 por defecto es 760 m/s en la UI (roca firme), pero 5BGC está medido en 520 m/s. Impacta −11% en PGA si el operador no lo corrige en el selector.
  2. Árbol lógico: UI usa ASK14+BSSA14+CB14+CY14 al 0.25 c/u para cortical y AB03 0.2 + Zhao06 0.4 + BCHydro 0.4 para subducción. R-CRISIS PEM1 usa ASK14 único + BCHydro único. Diferencia constante de −13.6% en media del logic tree vs ASK14 puro.
  3. AKKAR14 cae a BSSA14: el registro declara AKKAR14 con peso 0.2 pero get_gmpe_instance() lo mapea a BSSA14 porque AKKAR14 aún no está implementado. Resultado: BSSA14 duplica su peso efectivo (0.4 en lugar de 0.2) si el logic tree usa la configuración del registro.

01Sitio y parámetros generales

Emplazamiento
5BGC · Metro Manila
Coordenadas 14.54762° N, 121.04674° E, Bonifacio Global City (Taguig). Lote de referencia del informe Dynamis DYNA2512/N01A.
Condiciones de sitio
Vs30 = 520 m/s
Medido geofísicamente (rama measured de ASK14 Eqs. 24-25, no la ergódica). La UI permite al usuario cambiar el valor; el default sessionStorage es 760 m/s.
Parámetros de cálculo
Cornell-McGuire
Radio de búsqueda 300 km, Mmin = 5.0, integración log-log sobre la rejilla IML. Periodos de retorno calculados: 43, 475, 975, 2475 y UHS a 475 y 2475 años.
Origen de las fuentes
Modelador (single source of truth)
Endpoint POST /api/v1/sources/psha con source_ids[]. Las fuentes se sirven del catálogo del Source Modeler, NO directamente de GEM GAF-DB ni PSHA_PEM1.DAT en ejecución viva.

02Modelo de fuentes sísmicas

El catálogo PEM1 contiene 41 fuentes tras el filtrado de 54 entradas del fichero original PSHA_PEM1.DAT (13 descartadas por parámetros mínimos). La tabla siguiente resume la tipología.

2.1 Resumen por tipo

#TipoMFDRegión tectónicaCountNota
1Zonas de área (Zone 1–7) Truncated G-R Crustal superficial 7 Background seismicity; a y b de catálogo.
2Subducción interfaz Truncated G-R Subduction interface 8 Philippine trench N/S, Manila trench S, East Luzon, Sula Negros (incluye versiones EXP).
3Subducción intraslab Truncated G-R Subduction intraslab 2 Philippine north slab, Manila south slab.
4Fallas características Characteristic Crustal superficial 24 Valle Marikina W/E + 22 fallas activas adicionales con Mchar y slip rate.

2.2 Fallas características (24)

Parámetros tomados de packages/pipeline/pipeline/psha/pem1_reference.py (tabla de referencia Dynamis). Cada falla corre con modelo Characteristic Earthquake (Youngs–Coppersmith 1985): la tasa anual de Mchar se deriva del slip rate vía conservación de momento sísmico, 0 = μ·A·s.

#Nombre Dist. 5BGC (km) Dip (°)Dip dir. Mchar Slip (mm/y)
1Marikina West Valley1.175East7.35.1
2Marikina East Valley765East6.61.0
3General Nakar West3665East7.24.0
4General Nakar East50907.11.0
5Lamon Bay57907.615.0
6Palayan-Gen. Tinio69906.62.0
7Guinayangan-Dingalan72907.615.0
8Mauban-Atimonan89906.81.0
9Digdig91907.324.2
10East Zambales10465West7.22.0
11Iba11065East7.32.0
12Lubang Fault North110907.45.0
13San Jose11755South7.13.2
14Lubang Fault South123907.410.0
15Central Mindoro13365East7.45.1
16Bambang-Ma. Aurora135907.12.0
17Aglubang River137907.01.0
18Sibuyan Sea148907.610.0
19Dinalungan-Dipaculao15335West7.84.0
20Pugo15565East7.13.4
21Central Marinduque158906.81.0
22Hapap17445West7.68.0
23Masbate East184907.710.0
24Ambuklao18645East7.615.0

2.3 Zonas de área + subducción (Truncated G-R)

Modelo Gutenberg–Richter truncado, log10(N≥M) = a − b·M. Los valores a, b, Mmin y Mmax se importan de PSHA_PEM1.DAT. Las fuentes interface de subducción con Mmin cercano a Mmax (p. ej. Philippine trench N: 8.65–8.75) representan un tratamiento characteristic-en-GR: la tasa anual se concentra en la vecindad de Mchar, no se extiende desde 5.0.

#NombreRegión MminMmax ab Notas
1Zone 1crustal area5.007.764.0590.80Background N Luzon
2Zone 2crustal area5.007.605.1341.02Background central Luzon
3Zone 3crustal area5.007.153.7780.81Background W Luzon
4Zone 4crustal area5.007.804.9990.90Background Visayas
5Zone 5crustal area5.007.697.2441.43Background Mindoro/Palawan
6Zone 6crustal area5.007.005.1881.00Background Metro Manila (dominante local)
7Zone 7crustal area5.007.305.1901.10Background Quezon
8Philippine trench Ninterface8.658.755.6821.00Characteristic-en-GR, segmento dominante
9Philippine trench N EXPinterface5.007.707.0701.20Segmento expandido (ruptura grande)
10Philippine north slabintraslab5.007.806.4671.06Volumen 3D, BCHydro intraslab
11Manila trench Sinterface8.358.455.5111.00Characteristic-en-GR, subducción W
12Manila trench S EXPinterface5.007.405.5231.02Top contribuyente (26.2% snapshot)
13Manila south slabintraslab5.007.805.5571.04Malla 3D, hypo_depth=60 km (f_depth neutralizado)
14East Luzon trenchinterface8.358.455.3351.00Characteristic-en-GR, segmento rotado
15East Luzon EXPinterface5.007.404.6110.90Extensión cara libre
16Sula Negros trenchinterface8.158.254.9311.00Characteristic-en-GR, segmento Visayas
17Sula Negros N EXPinterface5.007.206.5971.20Segmento expandido sur

2.4 Discretización geométrica

03Leyes de atenuación (GMPEs)

Registro completo en packages/pipeline/pipeline/psha/gmpe_registry.py. Cada falla/zona se asigna a una familia según su tectónica y dentro de esa familia se promedia el logic tree.

IDGMPETectónica MW Rmax R T (s) Basin σ trunc Impl.
ASK14Abrahamson, Silva & Kamai (2014)crustal3.0–8.5300Rrup0–10Z1.0OK
BSSA14Boore, Stewart, Seyhan & Atkinson (2014)crustal3.0–8.5300Rjb0–10Z1.0OK
CB14Campbell & Bozorgnia (2014)crustal3.0–8.5300Rrup0–10Z2.5OK
CY14Chiou & Youngs (2014)crustal3.0–8.5300Rrup0–10Z1.0OK
AKKAR14Akkar, Sandıkkaya & Bommer (2014)crustal4.0–8.0200Rjb0–4Fallback → BSSA14
AB03Atkinson & Boore (2003)interface / intraslab5.0–8.5300Rrup0–3Proxy → Zhao06
ZHAO06Zhao et al. (2006)interface / intraslab5.0–8.3300Rrup0–5OK
BCHYDROAbrahamson, Gregor & Addo (2016)interface / intraslab5.0–9.5300Rrup0–10OK
⚠ Implementación: dos GMPEs registradas no ejecutan su propia ecuación
  • AKKAR14: aparece en el logic tree con peso 0.2 pero se instancia como BooreEtAl2014 (misma métrica Rjb). Efecto: BSSA14 corre con peso efectivo 0.4 en lugar de 0.2 — el promedio cortical queda sesgado hacia Boore.
  • AB03: aparece en el logic tree con peso 0.2 pero se instancia como ZhaoEtAl2006SInter. Efecto: Zhao corre con peso efectivo 0.6 cuando el calculador se llama con los pesos del registro.

Nota: el endpoint de producción (compute_hazard en services/) usa los defaults del PSHACalculatorno los del registro — con 4 GMPEs corticales (0.25 c/u) y 3 subducción (0.2/0.4/0.4). Los dos registros están desincronizados: Carlos debería confirmar cuál es la configuración autorizada.

04Árbol lógico

Hay dos configuraciones en coexistencia en el código base. Solo la primera afecta al valor mostrado en la UI.

Producción (UI · compute_hazard())
Logic tree ampliado
Cortical:
ASK14 × 0.25 + BSSA14 × 0.25 + CB14 × 0.25 + CY14 × 0.25

Interfaz:
AB03 × 0.2 + Zhao06 × 0.4 + BCHydro × 0.4

Intraslab:
BCHydro × 1.0

σ trunc: 0 (cortical), 3σ (subducción)
R-CRISIS PEM1 (test de regresión)
Una GMPE por tectónica
Cortical:
ASK14 × 1.0

Interfaz:
BCHydro × 1.0

Intraslab:
BCHydro × 1.0

σ trunc: 0 (cortical), 3σ (subducción)

4.1 Efecto numérico del logic tree (5BGC, mismas 41 fuentes PEM1)

Configuración Vs30 PGA 475y (g) PGA 2475y (g) Δ vs ref
R-CRISIS (ASK14 + BCHydro)5200.37450.6777baseline
R-CRISIS (ASK14 + BCHydro)7600.33220.6147−11.3%
UI logic tree5200.32360.5855−13.6%
UI logic tree7600.28210.5227−24.7%

Script de reproducción: scripts/diag_5bgc_gmpe_delta.py. Mismas fuentes PEM1.DAT; solo varían Vs30 y logic tree.

4.2 Árbol de ruptura (por fuente)

05Validación y snapshot

El test tests/pipeline/psha/test_manila_regression.py reproduce el snapshot locked y pasa actualmente (verificado 2026-04-19):

RP (yr)Snapshot PGA (g)Live engine (g)Test
430.126610.12661PASS
475 (DBE)0.374540.37454PASS
9750.491990.49199PASS
2475 (MCE)0.677660.67766PASS

5.1 Contribuciones por fuente (snapshot 475y)

#FuenteTectónica%
1Manila trench south EXPinterface26.2%
2Marikina valley westcrustal23.7%
3Zone 6crustal17.3%
4Marikina valley eastcrustal13.6%
5Manila trench southinterface10.4%
6East Luzon trenchinterface2.3%
7Guinayangan-Dingalancrustal2.0%
8Nakar Westcrustal1.9%
9East Luzon EXPinterface0.8%
10Lamon baycrustal0.4%

06Puntos abiertos para tu revisión

1. Vs30 default de la UI
La UI arranca con Vs30 = 760 m/s (roca firme). Para 5BGC es 520 m/s medido. El selector lo permite cambiar pero el operador debe acordarse. Propuesta: guardar Vs30 por sitio en el modelador, o añadir una advertencia si Vs30 ≥ 720 en zona urbana.
2. Desalineación registry ↔ calculator
gmpe_registry.py declara pesos corticales con 5 GMPEs (incluido AKKAR14, no implementado → BSSA14 duplica peso). El PSHACalculator de producción usa otros defaults (4 GMPEs, 0.25 c/u). Propuesta: elegir un único sitio de verdad para los pesos del logic tree y borrar el otro. Implementar AKKAR14 nativo (Rjb, sin basin) cuando sea prioridad.
3. AB03 proxy → Zhao06
En el registro AB03 mapea a Zhao06 porque AB03 nativo aún no está implementado. Efecto similar al anterior: Zhao06 duplica peso en el mix de interfaz. Propuesta: implementar AB03 nativo (ecuaciones 3-4, sin basin, tabla de coefs directamente del paper) para cumplir con la etiqueta del registro.
4. Profundidad intraslab
BCHydro intraslab tiene término f_depth = θ11·(min(h,120)−60). Con la malla 3D de Manila south slab (depths 45–238 km) aparece doble conteo si Rrup ya lleva la profundidad. Actualmente se pinea hypo_depth = 60 km para neutralizar f_depth. Pregunta abierta desde Apr 10: ¿cómo lo resuelve R-CRISIS internamente? El snapshot actual pasa, pero la explicación física sigue sin cerrarse.
5. ¿Añadimos toggle "R-CRISIS mode" en la UI?
Un botón que fije cortical = ASK14 único + subducción = BCHydro único permitiría comparar 1:1 contra tu benchmark en segundos. La UI por defecto seguiría mostrando el árbol completo (mejor práctica científica). Estimación: 2h de trabajo.

AApéndice · Fichero de cálculo

Inputs reales enviados por la UI al endpoint POST /api/v1/sources/psha:

{ "source_ids": [ /* 41 UUIDs del catálogo modelador */ ], "latitude": 14.54762, "longitude": 121.04674, "vs30": 760, // default UI — corregir a 520 para 5BGC "fractiles": [10, 50, 90], // percentiles del logic tree "return_periods": [43, 475, 975, 2475] // server default }

Defaults del servidor adicionales (no enviados explícitamente):