PSHA Intelligence Platform
Dynamis Associates × Appgile

Flujo de Calculo PSHA

Pipeline completo de Analisis Probabilista de Peligrosidad Sismica.
Desde las coordenadas de entrada hasta las curvas de peligrosidad y el espectro UHS.

Pipeline de Calculo
Cada fase es independiente con retry propio. Haz clic en cualquier fase para ver el detalle.
📍
Entrada
Coordenadas del Sitio
Latitud, longitud, Vs30 (m/s), radio de busqueda (km). El usuario proporciona las coordenadas y el sistema arranca el pipeline completo.
📡
Fase 1
EXTRACT
Obtencion en paralelo de catalogo sismico (USGS), fallas activas (GEM GAF-DB) y Vs30.
📊
Fase 2
ANALYZE
Homogeneizacion Mw, declustering Gardner-Knopoff, completitud Mc, regresion G-R.
Fase 3
VALIDATE
Checks de integridad, consistencia estadistica, cross-reference con perfiles GEM.
🔄
Fase 4
TRANSFORM
Construccion de fuentes sismicas con parametros MFD: tasa de actividad, a-value, b-value, Mmax.
Motor PSHA
Integral Cornell-McGuire
Integracion probabilista: para cada fuente, magnitud y distancia se calcula la probabilidad de excedencia usando GMPEs. Vectorizado con NumPy (~30x speedup).
📈
Salida
Curvas de Peligrosidad
Curva IML vs tasa anual de excedencia. Valores de diseno a 475, 975, 2475 anos.
🌈
Salida
Espectro UHS
Uniform Hazard Spectrum 0-10s. Extension espectral con estrategia Dynamis (BCHydro).
📄
Salida
Informe PDF
PDF con WeasyPrint + resumen ejecutivo IA (Claude API). Contribucion por fuente.

📍 Parametros de Entrada

latitudefloat (-90 a 90)
longitudefloat (-180 a 180)
vs30760 m/s (default)
radius_km300 km (default)
min_magnitude5.0 Mw
return_periods[475, 975, 2475]
// Ejemplo de request POST /api/v1/hazard/psha { "latitude": 14.548, "longitude": 121.047, "vs30": 520, "radius_km": 300 }

📡 Fase EXTRACT — Obtencion de Datos

1

USGS FDSN API Catalogo

Descarga del catalogo sismico historico. Busqueda circular (lat, lon, radius). Eventos M≥5 desde 1900. Retorna GeoJSON con magnitud, profundidad, ubicacion, tipo de magnitud.

URL: earthquake.usgs.gov/fdsnws/event/1/query Params: format=geojson, latitude, longitude, maxradiuskm, minmagnitude=5, starttime=1900-01-01 // CRITICO: sin starttime, USGS solo devuelve 30 dias
2

GEM GAF-DB Fallas

Base de datos global de fallas activas (GEM Foundation, GitHub). Geometrias de fallas con slip_type, slip_rate, dip, rake. Cache de 3 niveles: memoria → disco (30 dias TTL) → red.

// Campos clave por falla: { "slip_type": "Reverse", "slip_rate": "(2.5, 1.0, 4.0)", // (mean, min, max) mm/yr "dip": "(30, 25, 35)", // grados "lower_depth": "25", // km "upper_depth": "0" }
3

Vs30 Sitio

Velocidad de onda de corte en los primeros 30m del suelo. Clasificacion del tipo de suelo (roca, suelo firme, suelo blando). Fuente: USGS Vs30 GeoTIFF raster.

📊 Fase ANALYZE — Procesamiento

1

Deduplicacion Pre-proceso

Eliminacion de duplicados entre catalogos (USGS + ISC). Matching espacio-temporal: Δt ≤ 10s, Δdist ≤ 50 km, ΔM ≤ 0.5. Preferencia: ISC revisado > USGS preliminar.

2

Homogeneizacion a Mw Conversion

Conversion de todas las magnitudes al sistema Mw usando regresiones de Scordilis (2006):

mb → Mw = 0.85·mb + 1.03
Para 3.5 ≤ mb ≤ 6.2
Ms → Mw = 0.67·Ms + 2.07   (Ms ≤ 6.1)
Magnitud de ondas superficiales
ML → Mw = 0.89·ML + 0.58
Magnitud local (Richter)
3

Declustering — Gardner-Knopoff (1974) Filtrado

Eliminacion de replicas y premonitores. Se conservan solo los eventos principales (mainshocks). Ventanas dependientes de la magnitud:

D = 10(0.1238·M + 0.983) km
Ventana espacial (distancia en km)
T = 10(0.5409·M - 0.547) dias   (M < 6.5)
Ventana temporal
4

Completitud Mc — MAXC Estadistica

Magnitud minima de completitud del catalogo. Metodo Maximum Curvature: moda del histograma + 0.2 de correccion. Solo eventos M ≥ Mc son fiables para la regresion G-R.

5

Regresion Gutenberg-Richter MFD

Ajuste de la relacion magnitud-frecuencia. b-value por maxima verosimilitud (Aki-Utsu 1965):

log10(N) = a - b·M
Relacion lineal en escala logaritmica
b = log10(e) / (Mmean - (Mc - ΔM/2))
Estimacion por maxima verosimilitud, ΔM = 0.1

✅ Fase VALIDATE

1

Integridad de Datos

Verificacion de campos obligatorios, rangos validos, geometrias consistentes. Fallas con longitud > 0 km, profundidades positivas, slip_rate no negativo.

2

Consistencia Estadistica

Validacion de parametros G-R: b-value en rango [0.5, 2.0], minimo 10 eventos sobre Mc, error estandar de b aceptable.

3

Cross-Reference GEM Risk Profiles

Comparacion con los perfiles de riesgo de referencia de GEM Foundation para la region. Deteccion de anomalias o valores fuera de rango.

🔄 Fase TRANSFORM — Construccion de Fuentes

1

Mmax desde longitud de falla — Leonard (2014) Scaling

Mw = a + b·log10(Lkm)
Cortical: a=4.24, b=1.67   |   Subduccion: a=4.94, b=1.39
2

Tasa de actividad desde slip rate — Balance de Momento Momento

Conversion de tasa de deslizamiento geologica a tasa de sismicidad:

0 = μ · A · ṡ
μ=3×1010 Pa, A=L×W (m²), ṡ = slip rate (m/yr)
ν = Ṁ0 / ⟨M0
ν = tasa anual de eventos ≥ mmin
a = log10(ν) + b·mmin
Recuperacion del a-value de Gutenberg-Richter
3

Construccion de SeismicSource

Cada falla se convierte en un objeto SeismicSource con: MFD (TruncatedGR o Characteristic), distancias al sitio, mecanismo focal, regimen tectonico, profundidad, Vs30.

class SeismicSource: source_id: str name: str mfd: TruncatedGR | CharacteristicEarthquake distances: list[SourceDistance] mechanism: "strike_slip" | "normal" | "reverse" tectonic: "crustal" | "interface" | "intraslab" hypo_depth: float # km vs30_override: float

⚙ Motor PSHA — Integral Cornell-McGuire

λ(Y > y) = Σfuentes νi · Σm Σr P[Y > y | m, r] · P(m) · P(r)
λ = tasa anual de excedencia   |   ν = tasa de actividad   |   P[Y>y|m,r] = excedencia GMPE
1

Discretizacion de Magnitud

La MFD de cada fuente se discretiza en bins de ΔM = 0.1. Para TruncatedGR: se calcula P(m) = pdf(mcenter) · ΔM. Para Characteristic: distribucion Gaussiana centrada en Mchar.

2

Evaluacion GMPE

Para cada par (m, r), se evalua el ensemble de GMPEs ponderado segun regimen tectonico. Cada GMPE retorna (ln_μ, ln_σ) y se calcula la probabilidad de excedencia con la distribucion log-normal:

P[Y > y | m, r] = 1 - Φ((ln(y) - ln_μ) / ln_σ)
Φ = CDF normal estandar
3

Acumulacion Vectorizada

Se acumula λ sumando sobre todas las fuentes, magnitudes y distancias. Implementacion vectorizada con NumPy para ~30x speedup vs loops escalares.

4

Interpolacion a Periodo de Retorno

Interpolacion log-log en la curva de peligrosidad para extraer el valor de diseno a un periodo de retorno dado:

λ = 1 / T   →   PoE50 = 1 - e-λ·50
T=475 yr → 10% en 50 yr (DBE)   |   T=2475 yr → 2% en 50 yr (MCE)

📈 Curvas de Peligrosidad

La curva de peligrosidad relaciona niveles de intensidad (PGA en g) con la tasa anual de excedencia. De ella se extraen los valores de diseno:

Periodo de RetornoProbabilidadUso Tipicoλ anual
43 yr50% en 30 yrSLE (Serviceability)0.02326
475 yr10% en 50 yrDBE (Design Basis)0.002105
975 yr5% en 50 yrIntermedio0.001026
2475 yr2% en 50 yrMCE (Max Considered)0.000404
4975 yr1% en 50 yrInfraestructura critica0.000201

🌈 Espectro UHS (Uniform Hazard Spectrum)

Para cada periodo espectral (0–10s), se calcula una curva de peligrosidad completa y se extrae la Sa al periodo de retorno deseado. Estrategia de extension espectral Dynamis:

1

Periodos Extendidos 0–10s

24 periodos: 0.0, 0.01, 0.02, 0.05, 0.075, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.75, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.5, 10.0

2

Cobertura por GMPE

ASK14: 0–3s  |  Zhao 2006: 0–5s  |  BC Hydro 2016: 0–10s
Mas alla de 3.0s se aplica correccion por ratio para mantener coherencia del arbol logico.

📄 Informe PDF

1

Generacion HTML → PDF (WeasyPrint)

Se genera un documento HTML con tablas, mapas y graficos, que luego se convierte a PDF con WeasyPrint. Incluye mapa de fallas, curvas de peligrosidad y tablas de valores de diseno.

2

Resumen Ejecutivo IA (Claude Sonnet)

Un resumen narrativo generado por Claude que interpreta los resultados tecnicos en lenguaje accesible para ingenieros y clientes.

3

Contribucion por Fuente

Desglose del porcentaje de contribucion de cada fuente sismica al PGA de diseno (475 yr). Permite identificar las fuentes dominantes.

Formulas Clave
Las ecuaciones fundamentales del motor PSHA. Haz clic en cada tab para ver la formulacion completa.
log10(N) = a - b·M
N = numero de eventos/ano con magnitud ≥ M
b-value (Aki-Utsu)
b = log10(e) / (M̄ - Mc + ΔM/2)
Error estandar
σb = b / √n
Tasa de actividad
ν = Nevents / Tobs
a-value
a = log10(ν) + b·Mc

Requisito minimo: ≥10 eventos sobre Mc. Bin width ΔM = 0.1 (estandar). El b-value tipico global es ~1.0 (variacion 0.6–1.5 segun regimen tectonico).

λ(Y > y) = Σi νi · ∫∫ P[Y > y | m, r] · fM(m) · fR(r) · dm · dr
Suma sobre todas las fuentes sismicas

Componentes de la integral:

ν

Tasa de actividad

Numero anual de eventos con M ≥ mmin para cada fuente. Derivada de a-value: ν = 10(a - b·mmin)

fM

PDF de magnitud

TruncatedGR: f(m) = β·e-β(m-mmin) / (1 - e-β(mmax-mmin)) donde β = b·ln(10)

fR

PDF de distancia

Discretizacion de la geometria de la fuente en bins de distancia al sitio. Cada bin tiene un peso proporcional a la fraccion de la fuente que representa.

P

Excedencia GMPE

P[Y > y | m, r] = 1 - Φ(z) donde z = (ln(y) - lnμ) / lnσ. La GMPE retorna μ y σ del movimiento del suelo (log-normal).

0 = μ · A · ṡ
Tasa de momento sismico geologico (N·m/yr)
Modulo de rigidez (μ)
3×1010 Pa
Area de falla (A)
L×W
Ancho sismogenico (W)
(Zlower - Zupper) / sin(dip)
Momento medio por evento
M0 = 10(1.5M+9.05)
ν = Ṁ0 / ⟨M0
Tasa anual de eventos = momento geologico / momento medio sismologico
Mw = a + b·log10(Lkm)
Leonard (2014) — Magnitud maxima desde longitud de falla
RegimenabEjemplo: L=100kmEjemplo: L=300km
Cortical4.241.67Mw 7.58Mw 8.37
Subduccion4.941.39Mw 7.72Mw 8.38
D(M) = 10(0.1238·M + 0.983) km
Ventana espacial Gardner-Knopoff
T(M) = 10(0.5409·M - 0.547) dias   (M < 6.5)
Ventana temporal para eventos moderados
T(M) = 10(0.032·M + 2.7389) dias   (M ≥ 6.5)
Ventana temporal para eventos grandes
MagnitudDistancia (km)Tiempo (dias)
Arbol Logico de GMPEs
Ecuaciones de prediccion del movimiento del suelo, agrupadas por regimen tectonico. Haz clic para ver detalles.

▲ Cortical (Active Shallow Crust) — NGA-West2

Peso: 0.25
ASK14
Abrahamson, Silva & Kamai (2014)
Distancia: Rrup
Periodos: PGA, 0.01–3.0s
Features: Hanging-wall, site response lineal/no-lineal
Sigma: Aleatorica (evento) + epistemica (modelo)
Peso: 0.25
BSSA14
Boore, Stewart, Seyhan & Atkinson (2014)
Distancia: Rjb (Joyner-Boore)
Periodos: PGA, rango espectral completo
Features: Basin depth correction
Peso: 0.25
CB14
Campbell & Bozorgnia (2014)
Distancia: Rrup
Periodos: PGA, hasta 3.0s
Features: Depth to top of rupture, basin term
Peso: 0.25
CY14
Chiou & Youngs (2014)
Distancia: Rrup
Periodos: PGA, rango espectral completo
Features: Directivity, depth correction

▼ Subduccion Interface

Peso: 0.5
Zhao 2006 SInter
Zhao et al. (2006) — Interface
Periodos: PGA, 0.05–5.0s
Validacion: Japon, cascadia
Sigma truncation: 3σ (PEM1)
Peso: 0.5
BC Hydro 2016 Interface
Abrahamson et al. (2016)
Periodos: PGA, 0.01–10.0s
Clave: Extension a periodos largos para UHS completo
Features: Backarc term, sigma truncation

⚫ Subduccion Intraslab

Peso: 0.5
Zhao 2006 SSlab
Zhao et al. (2006) — Intraslab
Periodos: PGA, 0.05–5.0s
Features: Forearc/backarc depth correction
Profundidad tipica: 40–60 km
Peso: 0.5
BC Hydro 2016 Intraslab
Abrahamson et al. (2016)
Periodos: PGA, 0.01–10.0s
Features: Backarc flag, depth scaling
Sigma truncation: 3σ (R-CRISIS PEM1)
Ejemplos Interactivos
Casos reales del pipeline. Haz clic para expandir y ver inputs/outputs detallados.
🌏

Metro Manila (PEM1)

PSHA Completo
Parametros de Entrada
lat14.548°N
lon121.047°E
vs30520 m/s
modeloPEM1 (54 fuentes)
Resultados
PeriodoPGA (g)Uso
475 yr0.482 gDBE
975 yr0.634 gIntermedio
2475 yr0.783 gMCE
Fuentes Dominantes
FuenteContribucionTectonico
Manila Trench Interface42.3%Interface
Marikina Fault18.7%Crustal
Philippine Fault (Luzon)12.1%Crustal
East Luzon Trough9.4%Intraslab
📏

Scaling Mmax (Leonard)

Calculo
Ejemplo: Falla de 150 km (cortical)
L150 km
tipoCortical
a4.24
b1.67
Calculo paso a paso
Mw = 4.24 + 1.67 × log10(150) Mw = 4.24 + 1.67 × 2.176 Mw = 4.24 + 3.634 Mw = 7.87
Tabla de referencia
L (km)Mw CorticalMw Subduccion
507.077.30
1007.587.72
2008.088.14
5008.758.69

Balance de Momento

Calculo
Falla ejemplo
slip_rate2.5 mm/yr
L200 km
W15 km
b-value1.0
Mmax8.08
Mmin5.0
Calculo
// 1. Momento geologico A = 200 × 15 × 106 = 3.0×109 m² ṡ = 2.5×10-3 m/yr Ṁ0 = 3×1010 × 3×109 × 2.5×10-3 0 = 2.25×1017 N·m/yr // 2. Momento medio por evento (truncated G-R) ⟨M0⟩ ≈ 1.12×1016 N·m // 3. Tasa de actividad ν = 2.25×1017 / 1.12×1016 ν ≈ 20.1 eventos/yr (M ≥ 5.0) // 4. a-value a = log10(20.1) + 1.0 × 5.0 a = 6.30
🔥

Declustering (G-K 1974)

Filtrado
Catalogo ejemplo (simplificado)
EventoMwFechaDist. a E1Resultado
E1 (mainshock)7.02020-01-15Mainshock
E2 (aftershock)5.22020-01-1635 kmEliminado
E3 (aftershock)4.82020-02-1080 kmEliminado
E4 (independiente)5.52020-06-20250 kmMainshock
Ventanas para M=7.0
D(7.0) = 10(0.1238×7.0 + 0.983) = 102.5 km T(7.0) = 10(0.032×7.0 + 2.7389) = 763 dias E2: dist=35km < 102.5, Δt=1d < 763 → AFTERSHOCK E3: dist=80km < 102.5, Δt=26d < 763 → AFTERSHOCK E4: dist=250km > 102.5 → MAINSHOCK
📈

Regresion Gutenberg-Richter

Estadistica
Datos del catalogo (post-declustering)
N eventos247
T obs120 anos
Mc (MAXC)5.2
M mean5.68
Calculo b-value (Aki-Utsu)
b = log10(e) / (Mmean - (Mc - ΔM/2)) b = 0.4343 / (5.68 - (5.2 - 0.05)) b = 0.4343 / 0.53 b = 0.819 σb = 0.819 / √247 = 0.052 ν = 247 / 120 = 2.058 eventos/yr a = log10(2.058) + 0.819 × 5.2 a = 4.573
📊

Excedencia GMPE (ASK14)

Motor
Parametros
M7.0
Rrup50 km
Vs30520 m/s
PeriodoPGA (T=0)
Calculo de excedencia
// ASK14 retorna: ln_μ = -1.85 // ln(median PGA) ln_σ = 0.65 // log-normal sigma // Median PGA: PGAmedian = e-1.85 = 0.157 g // Prob. de exceder 0.3g: z = (ln(0.3) - (-1.85)) / 0.65 z = (-1.204 + 1.85) / 0.65 = 0.994 P[PGA > 0.3g] = 1 - Φ(0.994) P = 0.160 (16.0%)
Calculadoras Interactivas
Prueba los calculos clave del pipeline directamente en el navegador.

📏 Mmax desde Longitud de Falla (Leonard 2014)

Calcula la magnitud maxima esperada a partir de la longitud de la falla

Magnitud Maxima (Mw)
8.08
Momento Sismico M0
1.58×1021 N·m
Formula aplicada
Mw = 4.24 + 1.67 × log10(200)

⚡ Tasa de Actividad (Balance de Momento)

Convierte slip rate geologico a tasa de sismicidad anual

Momento geologico (Ṁ0)
2.25×1017 N·m/yr
Tasa anual (ν)
~20 ev/yr (M≥5.0)
a-value (G-R)
6.30

📈 Periodo de Retorno ↔ Probabilidad de Excedencia

Convierte entre periodo de retorno y probabilidad de excedencia en un intervalo de tiempo

Tasa anual (λ)
0.002105 /yr
Probabilidad de excedencia
10.0% en 50 yr
Clasificacion
DBE — Design Basis Earthquake

🔥 Ventanas de Declustering (Gardner-Knopoff)

Calcula las ventanas espacio-temporales para una magnitud dada

Ventana espacial
102.5 km
Ventana temporal
763 dias
Equivalente en anos
2.09 anos
Parametros del Sistema
Constantes y valores por defecto del motor de calculo.
b-value default1.0
Mc default5.0 Mw
Vs30 referencia760 m/s
Max fuentes PSHA30
Buffer falla5.0 km
IML range (PGA)0.001–2.0 g
IML range (Sa)0.001–8.0 g
Mag bin width0.1 Mw
Shear modulus (μ)3×1010 Pa
GAF-DB cache TTL30 dias
Dedup Δt≤10 s
Dedup Δdist≤50 km
Dedup ΔM≤0.5
Sigma trunc (crustal)0 (sin trunc)
Sigma trunc (subduc.)
Dist. minima GMPE1 km (floor)