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.
openquake.hazardlib — la implementación
de referencia mantenida por GEM — a precisión de
float:
- GMPEs: ASK14 / BSSA14 / CB14 / CY14 / ZHAO06
(SInter+SSlab) / BCHydro (Interface+Intraslab) — median Δlnμ
≤ 0.017 sobre 735 escenarios (M, R, Vs30, T) vs OpenQuake.
Oráculo en
scripts/oracle_gmpes_vs_oq.py. - Curva de peligro: mismo resultado a ≤1%
sobre todo el rango IML (0.001–2 g) vs
calc_hazard_curvesde OpenQuake en un caso de fuente puntual controlado (scripts/oracle_hazard_vs_oq.py). - El snapshot de regresión R-CRISIS se mantuvo pasando tras
re-capturar los valores. El golden snapshot de 5BGC con el
árbol Carlos v2 ahora converge a
PGA 475y = 0.304 gyPGA 2475y = 0.543 g— un ~10% menor que las cifras pre-calibración por el sesgo de BCHydro + MFD truncado.
- 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). - Marikina West Valley — slip rate subido
5.1 → 10.0 mm/yr(pem1_reference.pylínea 34). - Zone 6 —
a = 5.826,b = 1.0,Mmax = 8.0(PSHA_PEM1.DATlínea 158). - Manila south slab —
a = 2.999,b = 0.691,Mmax = 6.85(PSHA_PEM1.DATlínea 339). - 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.
- GMPEs subducción — AB03 eliminado; interfaz e intraslab corren con ZHAO06 + BCHydro, 0.5/0.5.
- Registry = única fuente de verdad — los
DEFAULT_*_WEIGHTSdel registro y los defaults delPSHACalculatorson ahora coherentes (los segundos leen los primeros, no hay listas paralelas). - 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
14.54762° N, 121.04674° E, Bonifacio Global City
(Taguig). Lote de referencia del informe Dynamis DYNA2512/N01A.
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.
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.
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
| # | Tipo | MFD | Región tectónica | Count | Nota |
|---|---|---|---|---|---|
| 1 | Zonas de área (Zone 1–7) | Truncated G-R | Crustal superficial | 7 | Background seismicity; a y b de catálogo. |
| 2 | Subducción interfaz | Truncated G-R | Subduction interface | 8 | Philippine trench N/S, Manila trench S, East Luzon, Sula Negros (incluye versiones EXP). |
| 3 | Subducción intraslab | Truncated G-R | Subduction intraslab | 2 | Philippine north slab, Manila south slab. |
| 4 | Fallas 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) |
|---|---|---|---|---|---|---|
| 1 | Marikina West Valley | 1.1 | 75 | East | 7.3 | 10.0 Carlos 2026-04-19 |
| 2 | Marikina East Valley | 7 | 65 | East | 6.6 | 1.0 |
| 3 | General Nakar West | 36 | 65 | East | 7.2 | 4.0 |
| 4 | General Nakar East | 50 | 90 | – | 7.1 | 1.0 |
| 5 | Lamon Bay | 57 | 90 | – | 7.6 | 15.0 |
| 6 | Palayan-Gen. Tinio | 69 | 90 | – | 6.6 | 2.0 |
| 7 | Guinayangan-Dingalan | 72 | 90 | – | 7.6 | 15.0 |
| 8 | Mauban-Atimonan | 89 | 90 | – | 6.8 | 1.0 |
| 9 | Digdig | 91 | 90 | – | 7.3 | 24.2 |
| 10 | East Zambales | 104 | 65 | West | 7.2 | 2.0 |
| 11 | Iba | 110 | 65 | East | 7.3 | 2.0 |
| 12 | Lubang Fault North | 110 | 90 | – | 7.4 | 5.0 |
| 13 | San Jose | 117 | 55 | South | 7.1 | 3.2 |
| 14 | Lubang Fault South | 123 | 90 | – | 7.4 | 10.0 |
| 15 | Central Mindoro | 133 | 65 | East | 7.4 | 5.1 |
| 16 | Bambang-Ma. Aurora | 135 | 90 | – | 7.1 | 2.0 |
| 17 | Aglubang River | 137 | 90 | – | 7.0 | 1.0 |
| 18 | Sibuyan Sea | 148 | 90 | – | 7.6 | 10.0 |
| 19 | Dinalungan-Dipaculao | 153 | 35 | West | 7.8 | 4.0 |
| 20 | Pugo | 155 | 65 | East | 7.1 | 3.4 |
| 21 | Central Marinduque | 158 | 90 | – | 6.8 | 1.0 |
| 22 | Hapap | 174 | 45 | West | 7.6 | 8.0 |
| 23 | Masbate East | 184 | 90 | – | 7.7 | 10.0 |
| 24 | Ambuklao | 186 | 45 | East | 7.6 | 15.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.
| # | Nombre | Región | Mmin | Mmax | a | b | Notas |
|---|---|---|---|---|---|---|---|
| 1 | Zone 1 | crustal area | 5.00 | 7.76 | 4.059 | 0.80 | Background N Luzon |
| 2 | Zone 2 | crustal area | 5.00 | 7.60 | 5.134 | 1.02 | Background central Luzon |
| 3 | Zone 3 | crustal area | 5.00 | 7.15 | 3.778 | 0.81 | Background W Luzon |
| 4 | Zone 4 | crustal area | 5.00 | 7.80 | 4.999 | 0.90 | Background Visayas |
| 5 | Zone 5 | crustal area | 5.00 | 7.69 | 7.244 | 1.43 | Background Mindoro/Palawan |
| 6 | Zone 6 | crustal area | 5.00 | 8.00 | 5.826 | 1.00 | Background Metro Manila · Carlos 2026-04-19 |
| 7 | Zone 7 | crustal area | 5.00 | 7.30 | 5.190 | 1.10 | Background Quezon |
| 8 | Philippine trench N | interface | 8.65 | 8.75 | 5.682 | 1.00 | Characteristic-en-GR, segmento dominante |
| 9 | Philippine trench N EXP | interface | 5.00 | 7.70 | 7.070 | 1.20 | Segmento expandido (ruptura grande) |
| 10 | Philippine north slab | intraslab | 5.00 | 7.80 | 6.467 | 1.06 | Volumen 3D, BCHydro intraslab |
| 11 | Manila trench S | interface | 8.35 | 8.45 | 5.511 | 1.00 | Characteristic-en-GR, subducción W |
| 12 | Manila trench S EXP | interface | 5.00 | 7.40 | 5.523 | 1.02 | Top contribuyente (26.2% snapshot) |
| 13 | Manila south slab | intraslab | 5.00 | 6.85 | 2.999 | 0.691 | Malla 3D · Carlos 2026-04-19 |
| 14 | East Luzon trench | interface | 8.35 | 8.45 | 5.335 | 1.00 | Characteristic-en-GR, segmento rotado |
| 15 | East Luzon EXP | interface | 5.00 | 7.40 | 4.611 | 0.90 | Extensión cara libre |
| 16 | Sula Negros trench | interface | 8.15 | 8.25 | 4.931 | 1.00 | Characteristic-en-GR, segmento Visayas |
| 17 | Sula Negros N EXP | interface | 5.00 | 7.20 | 6.597 | 1.20 | Segmento expandido sur |
2.4 Discretización geométrica
- Fallas planas (crustal): plano rectangular definido por trace + dip + dip direction + profundidades (top/bottom). Ruptura flotante (uniform rupture position, midpoint rule) para cada bin MW — validado con PEER 2010/106 Set 1+2+3 al 100%.
- Fuentes de área: polígono 2D; subdivisión en celdas de ~5 km, profundidad uniforme (ver §6).
- Slabs de subducción: malla 3D triangulada (7–10 km de arista, Rrup 3D exacta). Manila south slab → 7 680 triángulos, profundidades 45–238 km.
- Interfaz de subducción: mismo tratamiento que fallas planas pero con buzamientos someros (15–25°) y áreas de ruptura grandes.
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.
| ID | GMPE | Tectónica | MW | Rmax | R | T (s) | Basin | σ trunc | Impl. |
|---|---|---|---|---|---|---|---|---|---|
| ASK14 | Abrahamson, Silva & Kamai (2014) | crustal | 3.0–8.5 | 300 | Rrup | 0–10 | Z1.0 ✓ | 3σ | 0.25 |
| BSSA14 | Boore, Stewart, Seyhan & Atkinson (2014) | crustal | 3.0–8.5 | 300 | Rjb | 0–10 | Z1.0 ✓ | 3σ | 0.25 |
| CB14 | Campbell & Bozorgnia (2014) | crustal | 3.0–8.5 | 300 | Rrup | 0–10 | Z2.5 ✓ | 3σ | 0.25 |
| CY14 | Chiou & Youngs (2014) | crustal | 3.0–8.5 | 300 | Rrup | 0–10 | Z1.0 ✓ | 3σ | 0.25 |
| ZHAO06 | Zhao et al. (2006) — SInter + SSlab | interface / intraslab | 5.0–8.3 | 300 | Rrup | 0–5 | — | 3σ | 0.5 |
| BCHYDRO | Abrahamson, Gregor & Addo (2016) — Interface + Intraslab | interface / intraslab | 5.0–9.5 | 300 | Rrup | 0–10 | — | 3σ | 0.5 |
- 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. ElPSHACalculatorlos consume viapipeline.services.gmpe_servicecuando 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_tecque se pasa alget_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.
compute_hazard())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)
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) |
|---|---|---|---|---|---|
| v3 · Carlos + OQ-calibrado (4-NGA + ZHAO+BCHydro) | 520 | 0.0951 | 0.4141 | 0.6117 | 0.9080 |
| Regresión R-CRISIS (ASK14 + BCHydro, OQ-calibrado) | 520 | 0.0932 | 0.4255 | 0.6398 | 0.9583 |
| v2 · Carlos (GMPE calibrado, Rrup aún con chord-approx) | 520 | 0.1068 | 0.3043 | 0.3966 | 0.5434 |
| v1 · Pre-calibración (BCHydro + Rrup chord) | 520 | 0.1154 | 0.3350 | 0.4384 | 0.6024 |
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)
- Characteristic: distribución delta en Mchar con tasa derivada de slip rate (Youngs-Coppersmith). Posición de ruptura: uniform, midpoint rule (validado PEER 2010).
- Truncated G-R: bineado en pasos de 0.1 MW entre
Mmin = 5.0yMmaxdel catálogo. - Distancias finitas: ruptura área
A(M) = 10M−4km², anchoW = min(A/L, seismogenic_thickness). Longitudes L(M) según escala de Wells & Coppersmith 1994.
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 |
|---|---|---|---|
| 43 | 0.12243 | 0.12243 | PASS |
| 475 (DBE) | 0.37394 | 0.37394 | PASS |
| 975 | 0.49176 | 0.49176 | PASS |
| 2475 (MCE) | 0.67764 | 0.67764 | PASS |
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)
| # | Fuente | Tectónica | % |
|---|---|---|---|
| 1 | Manila trench south EXP | interface | 27.1% |
| 2 | Zone 6 | crustal | 22.5% |
| 3 | Marikina valley west | crustal | 19.8% |
| 4 | Marikina valley east | crustal | 12.3% |
| 5 | Manila trench south | interface | 9.1% |
| 6 | Manila south slab | intraslab | 3.6% |
| 7 | East Luzon trench | interface | 1.6% |
| 8 | Nakar West | crustal | 1.2% |
| 9 | Guinayangan-Dingalan | crustal | 1.2% |
| 10 | East Luzon EXP | interface | 0.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:
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.3350 | 0.6031 | Stage 1 |
| 0.05 | 0.4573 | 0.8241 | Stage 1 |
| 0.10 | 0.8737 | 1.5776 | Stage 1 |
| 0.20 | 1.0108 | 1.8373 | Stage 1 (pico) |
| 0.30 | 0.7735 | 1.4176 | Stage 1 |
| 0.50 | 0.4877 | 0.9102 | Stage 1 |
| 1.00 | 0.2537 | 0.4799 | Stage 1 |
| 2.00 | 0.1151 | 0.2156 | Stage 1 |
| 3.00 | 0.0671 | 0.1260 | Stage 1 |
| 5.00 | 0.0334 | 0.0607 | Empalme Stage 1 ↔ Stage 2 |
| 6.00 | 0.0051 | 0.0114 | Stage 2 · k × BCHydro |
| 7.50 | 0.0029 | 0.0066 | Stage 2 · k × BCHydro |
| 10.00 | 0.0016 | 0.0038 | Stage 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)
PSHACalculator leen de
gmpe_registry.DEFAULT_*_WEIGHTS via
gmpe_service (sin listas paralelas).
scripts/oracle_gmpes_vs_oq.py) — las 6 GMPEs activas
del árbol Carlos v2 reproducen OpenQuake a ≤0.02 ln-units sobre
735 escenarios (M, R, Vs30, T).
Oráculo end-to-end sobre fuente real PEM1 (
scripts/oracle_pem1_marikina_vs_oq.py) — se ejecuta
Marikina West Valley (characteristic Mw 7.3, slip 10
mm/yr, dip 75° E) en ambos motores con idéntica geometría,
MFD y GMPE. Resultado:
PGA 475y = 0.2028 g (OQ) vs 0.2032 g (nuestro, Δ=+0.22%),
PGA 2475y = 0.9165 g (OQ) vs 0.9174 g (nuestro, Δ=+0.10%).
La curva completa de peligro coincide a <0.3% en todo el rango
de IML (0.001–2 g).
Bugs corregidos en la calibración: (a) tabla θ12 de BCHydro + constantes θ4/ C1/θ10 del intraslab, (b) término Sa1180 lineal de ASK14, (c) coeficientes anelásticos de CY14 para T>0.02s, (d) referencia a1100 y fórmula σ de CB14, (e) tasa total del MFD truncado (
ν = 10^(a−b·Mmin) −
10^(a−b·Mmax)),
(f) floating rupture sobre trazas poligonales multi-segmento
(antes colapsaba al chord entre los extremos, sobre-estimando Rrup
de Marikina WV por un factor ~3×),
(g) fallback de mag_distances al magnitude-bin más cercano
(antes caía silenciosamente a la lista base de todas las posiciones).
complexFaultSource (malla 3D irregular para las
interfaces subducción), pointSource (sismicidad
griddeada crustal) y nonParametricSeismicSource
(ruptures precomputadas en HDF5 para slabs). Además se
requieren dos GMPEs adicionales que OQ Philippines usa:
ZhaoEtAl2006Asc (Zhao cortical) y
BooreEtAl2014LowQ (BSSA14 baja-Q). Con eso el
motor podrá validarse end-to-end contra el mosaic.
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.
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.
AApéndice · Fichero de cálculo
Inputs reales enviados por la UI al endpoint POST /api/v1/sources/psha:
Defaults del servidor adicionales (no enviados explícitamente):
uhs_return_periods = [475, 2475](hardcoded en router)use_logic_tree: auto (true si el catálogo tiene variabilidad paramétrica)Mmin = 5.0,radius_km = 300iml_values = DEFAULT_IML_PGA(rejilla log-spaced 0.001 g – 5 g)