Dynamis Associates × Appgile Revisión técnica · v2 post-Carlos 2026-04-19

5BGC PSHA — Revisión de inputs (v2)

Documento actualizado tras el feedback de Carlos del 19-abr-2026: slip rate Marikina WV revisado, Zone 6 y Manila south slab recalibrados, árbol de GMPEs reducido (4 NGA-West2 + ZHAO06 + BCHydro) y UHS extendido a 10 s con procedimiento de dos etapas. Todos los runs con Vs30 = 520 m/s.

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 en el árbol
6
4 NGA-West2 + ZHAO06 + BCHydro
PGA 475y (v2)
0.335 g
Carlos config · Vs30 = 520
PGA 2475y (v2)
0.602 g
Carlos config · Vs30 = 520

00Resumen ejecutivo

Esta es la versión v2 del informe, con todas las correcciones solicitadas por Carlos el 19-abr-2026 ya integradas en el motor. Los números de abajo salen de un run sobre las mismas 41 fuentes PEM1 con los parámetros corregidos, Vs30 = 520 m/s y el árbol de GMPEs acotado.

Correcciones integradas (2026-04-19)
  1. Vs30 = 520 m/s — aplicado a todas las leyes de atenuación en todos los runs del sitio 5BGC (pem1_reference.py + parámetro explícito en el servicio).
  2. Marikina West Valley — slip rate subido 5.1 → 10.0 mm/yr (pem1_reference.py línea 34).
  3. Zone 6a = 5.826, b = 1.0, Mmax = 8.0 (PSHA_PEM1.DAT línea 158).
  4. Manila south slaba = 2.999, b = 0.691, Mmax = 6.85 (PSHA_PEM1.DAT línea 339).
  5. GMPEs corticales — AKKAR14 eliminado; el árbol queda con ASK14, BSSA14, CB14, CY14 al 0.25 c/u. Se elimina el fallback AKKAR14→BSSA14 que duplicaba peso en secreto.
  6. GMPEs subducción — AB03 eliminado; interfaz e intraslab corren con ZHAO06 + BCHydro, 0.5/0.5.
  7. Registry = única fuente de verdad — los DEFAULT_*_WEIGHTS del registro y los defaults del PSHACalculator son ahora coherentes (los segundos leen los primeros, no hay listas paralelas).
  8. UHS extendido a 10 s — procedimiento de dos etapas (Stage 1 ZHAO+BCHydro hasta 5 s, Stage 2 BCHydro solo hasta 10 s, empalme por ratio en T = 5 s). Implementado en PSHACalculator.compute_uhs_extended_10s.

El snapshot de regresión (R-CRISIS + ASK14-único + BCHydro-único, Vs30 = 520 m/s) ha sido recapturado con los nuevos parámetros de fuentes: PGA 475y = 0.37394 g (antes 0.37454, Δ = −0.16%), PGA 2475y = 0.67764 g (sin cambio). La quasi- inmovilidad en RPs altos confirma que el sitio está dominado por la caracterización de Marikina West Valley (dist. 1.1 km) más que por la tasa de Zone 6 o del slab. El árbol Carlos (v2) devuelve PGA 475y = 0.335 g y PGA 2475y = 0.602 g: más bajos porque (i) el árbol cortical reparte peso entre las 4 NGA-West2 y (ii) ZHAO06 entra a la mezcla de subducción con 0.5.

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). Todos los runs de este informe (v2) usan Vs30 = 520 m/s en cortical y en subducción. La UI mantiene 760 m/s como default genérico (roca firme) pero permite al operador fijar 520 para 5BGC en el selector.
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.310.0 Carlos 2026-04-19
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.008.005.8261.00Background Metro Manila · Carlos 2026-04-19
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.006.852.9990.691Malla 3D · Carlos 2026-04-19
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.00.25
BSSA14Boore, Stewart, Seyhan & Atkinson (2014)crustal3.0–8.5300Rjb0–10Z1.00.25
CB14Campbell & Bozorgnia (2014)crustal3.0–8.5300Rrup0–10Z2.50.25
CY14Chiou & Youngs (2014)crustal3.0–8.5300Rrup0–10Z1.00.25
ZHAO06Zhao et al. (2006) — SInter + SSlabinterface / intraslab5.0–8.3300Rrup0–50.5
BCHYDROAbrahamson, Gregor & Addo (2016) — Interface + Intraslabinterface / intraslab5.0–9.5300Rrup0–100.5
✓ Registry ↔ calculator alineados (Carlos 2026-04-19)
  • AKKAR14 eliminado del registro y del árbol por defecto. Antes figuraba con peso 0.2 pero se instanciaba como BooreEtAl2014 (fallback silencioso) — con lo que BSSA14 corría con peso efectivo 0.4. Esa desalineación ya no existe.
  • AB03 eliminado del registro y del árbol de subducción. Tenía el mismo problema (proxy a Zhao06) y Carlos confirma que no aporta al UHS porque su rango de validez (T ≤ 3 s) lo vuelve marginal frente a Zhao/BCHydro.
  • Única fuente de verdad: los pesos viven en gmpe_registry.DEFAULT_*_WEIGHTS. El PSHACalculator los consume via pipeline.services.gmpe_service cuando no hay logic tree explícito en la fuente. Sin listas paralelas.
  • ZHAO06 y BCHYDRO se instancian con la clase correcta (SInter vs. SSlab, Interface vs. Intraslab) según el engine_tec que se pasa al get_gmpe_instance.

04Árbol lógico (v2)

Versión v2 del árbol: cortical acotado a las 4 NGA-West2 (peso igual) y subducción a ZHAO06 + BCHydro (peso igual). Es el árbol que corre por defecto en el endpoint de producción y el que se refleja en el editor de la UI.

Producción · Carlos v2 (compute_hazard())
Logic tree definitivo
Cortical:
ASK14 × 0.25 + BSSA14 × 0.25 + CB14 × 0.25 + CY14 × 0.25

Interfaz:
ZHAO06 × 0.5 + BCHydro × 0.5

Intraslab:
ZHAO06 × 0.5 + BCHydro × 0.5

σ 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 Resultados v2 sobre 5BGC (Vs30 = 520 m/s, 41 fuentes PEM1 con correcciones Carlos)

Configuración Vs30 PGA 43y (g) PGA 475y (g) PGA 975y (g) PGA 2475y (g)
v2 · Carlos (4-NGA + ZHAO+BCHydro) 520 0.1154 0.3350 0.4384 0.6024
Regresión R-CRISIS (ASK14 + BCHydro) 520 0.1224 0.3739 0.4918 0.6776

Script de reproducción: scripts/rerun_5bgc_carlos_review.py. Test de integridad (no tocar): tests/pipeline/psha/test_manila_regression.py — sigue pasando porque aplica explícitamente la configuración R-CRISIS (ASK14 único + BCHydro único), no los defaults.

4.2 Árbol de ruptura (por fuente)

05Validación y snapshot

El test tests/pipeline/psha/test_manila_regression.py reproduce el snapshot locked (R-CRISIS config) y pasa con los nuevos parámetros:

RP (yr)Snapshot PGA (g)Live engine (g)Test
430.122430.12243PASS
475 (DBE)0.373940.37394PASS
9750.491760.49176PASS
2475 (MCE)0.677640.67764PASS

Snapshot recapturado el 2026-04-19 tras aplicar los parámetros Carlos (Marikina slip 10 mm/yr, Zone 6 a = 5.826 / Mmax = 8, Manila south slab a = 2.999 / b = 0.691 / Mmax = 6.85). La diferencia con el snapshot previo es ≤0.2% excepto en el RP de 43 yr (−3.3%), donde la reducción del slab y el ajuste de Zone 6 tienen más peso relativo.

5.1 Contribuciones por fuente · v2 Carlos (PGA 475y, Vs30 = 520)

#FuenteTectónica%
1Manila trench south EXPinterface27.1%
2Zone 6crustal22.5%
3Marikina valley westcrustal19.8%
4Marikina valley eastcrustal12.3%
5Manila trench southinterface9.1%
6Manila south slabintraslab3.6%
7East Luzon trenchinterface1.6%
8Nakar Westcrustal1.2%
9Guinayangan-Dingalancrustal1.2%
10East Luzon EXPinterface0.7%

Zone 6 sube de 17.3% → 22.5% con los nuevos parámetros (a = 5.826, Mmax = 8). Manila south slab baja a 3.6% tras la recalibración (a = 2.999, Mmax = 6.85).

06UHS extendido a 10 s · procedimiento de dos etapas

ZHAO06 solo está calibrado hasta T = 5 s; BCHydro llega a 10 s. Para cubrir el rango completo sin introducir una discontinuidad en T = 5 s se aplica un cálculo en dos etapas con un empalme por ratio:

Stage 1
PSHA completo · 0 – 5 s
Árbol de GMPEs completo: corteza con las 4 NGA-West2 (0.25 c/u), subducción (interfaz + intraslab) con ZHAO06 + BCHydro (0.5 / 0.5). Este es el UHS de referencia.
Stage 2
Auxiliar · 0 – 10 s
Mismo árbol pero con subducción colapsada a BCHydro solo (peso 1.0). La corteza no cambia — las NGA-West2 ya son válidas hasta 10 s. Este cálculo produce un UHS auxiliar con tail largo.
Empalme
Ratio en T = 5 s
Se calcula k = UHSStage 1(5 s) / UHSStage 2(5 s) y se aplica a Stage 2 en el rango 5 s – 10 s. El UHS final usa Stage 1 para T ≤ 5 s y k · Stage 2 para T > 5 s. Esto preserva la forma BCHydro en el tramo largo y la continuidad en T = 5 s.

6.1 UHS v2 para 5BGC (RP = 475 y 2475 años, Vs30 = 520)

T (s) SA 475y (g) SA 2475y (g) Tramo
0.00 (PGA)0.33500.6031Stage 1
0.050.45730.8241Stage 1
0.100.87371.5776Stage 1
0.201.01081.8373Stage 1 (pico)
0.300.77351.4176Stage 1
0.500.48770.9102Stage 1
1.000.25370.4799Stage 1
2.000.11510.2156Stage 1
3.000.06710.1260Stage 1
5.000.03340.0607Empalme Stage 1 ↔ Stage 2
6.000.00510.0114Stage 2 · k × BCHydro
7.500.00290.0066Stage 2 · k × BCHydro
10.000.00160.0038Stage 2 · k × BCHydro

Implementación: PSHACalculator.compute_uhs_extended_10s (parámetro bridge_period, por defecto 5 s). La tabla anterior es una selección de periodos; el UHS completo se calcula sobre el grid EXTENDED_PERIODS de hazard_curve.py.

07Puntos abiertos tras la revisión Carlos (v2)

✓ Registry ↔ calculator
Resuelto. AKKAR14 y AB03 fuera del registro; los defaults de PSHACalculator leen de gmpe_registry.DEFAULT_*_WEIGHTS via gmpe_service (sin listas paralelas).
✓ UHS 5 s – 10 s
Resuelto con el procedimiento de dos etapas (§ 06).
1. Profundidad intraslab · pendiente desde abril
BCHydro intraslab tiene término f_depth = θ11·(min(h,120)−60). Con la malla 3D de Manila south slab (profundidades 45–238 km) aparece doble conteo si Rrup ya lleva la profundidad. Actualmente se fija hypo_depth = 60 km para neutralizar f_depth. Pregunta abierta: ¿cómo lo resuelve R-CRISIS internamente? El snapshot de regresión y el run v2 pasan, pero la justificación física sigue sin cerrarse.
2. Vs30 default de la UI
La UI arranca con Vs30 = 760 m/s. Para 5BGC se fija 520 manualmente. Propuesta pendiente de decisión: guardar Vs30 por sitio en el modelador, o añadir una advertencia si Vs30 ≥ 720 en zona urbana.
3. ¿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 el benchmark R-CRISIS en segundos. La UI por defecto seguiría mostrando el árbol v2. 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": 520, // 5BGC medido · usar 520, no 760 "fractiles": [10, 50, 90], // percentiles del logic tree "return_periods": [43, 475, 975, 2475] // server default }

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