1 Resumen Ejecutivo

Este documento define la estrategia de integracion con los productos de la GEM Foundation (Global Earthquake Model) para la plataforma PSHA Intelligence. Tras un analisis exhaustivo de licencias, capacidades tecnicas y riesgos legales, se adopta una arquitectura hibrida.

Decision Arquitectonica

Arquitectura hibrida: Motor PSHA propio (NumPy/SciPy) para produccion + OpenQuake en Docker para validacion cruzada.

Rationale: Mantiene independencia de licencias AGPL, permite benchmarking riguroso y evita dependencia de un unico motor de calculo.

Hallazgos Clave

  • Solo GAF-DB (Global Active Faults Database) tiene licencia CC BY-SA 4.0, compatible con uso comercial SaaS sin restricciones.
  • Todos los demas productos GEM (Hazard Map, Mosaic, Risk Profiles, Exposure, Vulnerability) son CC BY-NC-SA 4.0 — uso comercial prohibido sin licencia adicional.
  • OpenQuake Engine es AGPL-3.0 — cualquier import openquake activa copyleft. Solo la comunicacion via REST API (Docker container aislado) es segura.
  • GEM tiene una politica de 18 meses tras la cual algunos datasets migran de CC BY-NC-SA a CC BY-SA — monitorizar activamente.
1
Producto libre para SaaS
6
Productos restringidos (NC)
REST
Unica via segura a OQ
2-3%
Umbral de validacion

2 Matriz de Licenciamiento GEM

Analisis completo de los 7 productos principales de GEM Foundation y su viabilidad para uso comercial en la plataforma SaaS.

Atencion Legal: Las licencias CC BY-NC-SA 4.0 prohiben expresamente el uso comercial. Incluir datos derivados de estos productos en reportes vendidos a clientes constituye uso comercial, incluso si los datos se transforman significativamente.
Producto GEM Licencia Uso Comercial SaaS Uso como Input Accion Requerida
GAF-DB (Fallas Activas) CC BY-SA 4.0 SI SI Atribucion en reportes PDF y UI
Global Seismic Hazard Map CC BY-NC-SA 4.0 NO NO Solo validacion interna
OpenQuake Engine AGPL-3.0 Solo REST API N/A Docker container, sin import
Mosaic (34 modelos regionales) CC BY-NC-SA 4.0 NO NO Contactar GEM para licencia comercial
Risk Profiles (190 paises) CC BY-NC-SA 4.0 NO NO PNG solamente, sin datos subyacentes
Global Vulnerability Model CC BY-NC-SA 4.0 NO NO No necesario para Tiers 1-3
Global Exposure Model CC BY-NC-SA 4.0 NO NO Contactar GEM para Tier 0
Nota: GEM ofrece licencias comerciales individuales. Contactar a product@globalquakemodel.org para negociar acceso a Mosaic, Exposure y Risk Profiles. Precio estimado: negociacion caso a caso, tipicamente suscripcion anual.

Resumen de Estrategia por Producto

GAF-DB: Usar libremente | OpenQuake: Solo REST API | Otros: Licencia o evitar

3 Estrategia de Integracion OpenQuake

OpenQuake Engine (AGPL-3.0) es el estandar de facto para PSHA en la industria. Sin embargo, su licencia AGPL impone requisitos de copyleft que afectan directamente a cualquier software que lo importe. A continuacion se analiza la matriz de riesgo AGPL.

Matriz de Riesgo AGPL

Metodo de Integracion Ejemplo Riesgo Copyleft Veredicto
import openquake Importar modulos OQ en nuestro codigo Python COPYLEFT TRIGGERED NO USAR
subprocess.call() Invocar binario OQ como subproceso INCIERTO EVITAR
REST API (Docker) HTTP requests a oq-engine:8800 NO TRIGGERED VIABLE
Validacion interna Comparar outputs sin distribuir OQ NO TRIGGERED SEGURO
CRITICO: Jamas importar modulos de OpenQuake directamente en el codigo de la plataforma. Esto incluye from openquake.hazardlib import *, import openquake.engine, o cualquier referencia directa. El copyleft AGPL se extiende a todo el software que enlaza con codigo AGPL.
Decision: Estrategia 1 — Enfoque Hibrido

Motor PSHA propio para produccion + OpenQuake Docker container (REST :8800) exclusivamente para validacion cruzada.

Rationale: Separacion total de procesos. Nuestro codigo nunca toca el codigo AGPL. OpenQuake corre en su propio container aislado, comunicacion unicamente via HTTP.

Arquitectura Hibrida

Flujo de Produccion (Motor Propio)
Pipeline Extract Pipeline Analyze Custom PSHA Engine Cornell-McGuire GMPE Library
↓ Coordenadas + SSM ↓
Outputs de Produccion
PDF Reports Hazard Curves UHS NRML XML GeoJSON
↑ Comparar < 2-3% ↓
Flujo de Validacion (OpenQuake Docker)
NRML Export HTTP POST :8800 OQ Engine (AGPL) OQ Results JSON
⚠ Aislamiento total: containers separados, sin imports, solo HTTP

Flujo de Validacion Cruzada

SSM propio Export NRML POST /api/calc/run OQ calcula GET /api/calc/:id/results Comparar ≤ 2-3%
docker-compose.validation.yml
services:
  oq-engine:
    image: openquake/engine:latest
    ports:
      - "8800:8800"
    environment:
      - OQ_CONFIG_FILE=/etc/openquake/openquake.cfg
    volumes:
      - oq-data:/var/lib/openquake
    networks:
      - validation-net    # Red aislada, sin acceso al pipeline
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G

  # Nuestro pipeline NUNCA esta en esta red
  # Comunicacion SOLO via HTTP desde red externa

volumes:
  oq-data:
networks:
  validation-net:
    internal: false
Recomendacion: Obtener opinion legal formal sobre la separacion AGPL + REST API antes de produccion. La interpretacion mayoritaria es que REST API no activa copyleft, pero no existe jurisprudencia definitiva.

4 Formato NRML v0.5

NRML (Natural Risks Markup Language) v0.5 es el formato XML estandar de OpenQuake para definir modelos de fuentes sismicas, arboles logicos y resultados de PSHA. Nuestra plataforma implementa soporte completo de lectura y escritura (round-trip) para interoperabilidad con OpenQuake y otros motores.

Namespace y Estructura

Namespace NRML v0.5
<?xml version="1.0" encoding="UTF-8"?>
<nrml xmlns="http://openquake.org/xmlns/nrml/0.5">
  <sourceModel name="PSHA Platform - SSM">
    <!-- Source definitions -->
  </sourceModel>
</nrml>

Tipos de Fuente Soportados

Tipo de Fuente Elemento NRML Descripcion Uso Tipico
Falla Simple simpleFaultSource Falla definida por traza superficial + dip + profundidad Fallas corticales bien caracterizadas
Falla Compleja complexFaultSource Falla definida por bordes superior e inferior 3D Zonas de subduccion
Fuente de Area areaSource Poligono con sismicidad distribuida uniformemente Zonas de sismicidad difusa (background)
Fuente Puntual pointSource Punto con MFD y geometria de ruptura Fuentes individuales o grid de puntos

Arboles Logicos

El formato NRML define dos tipos de arboles logicos que nuestra plataforma soporta completamente:

  • SSM Logic Tree (ssmLT.xml) — Define alternativas para el modelo de fuentes sismicas: variaciones de geometria, parametros de recurrencia, magnitud maxima.
  • GMPE Logic Tree (gmmLT.xml) — Define las ecuaciones de movimiento del suelo aplicables a cada tipo tectonico: cortical, subduccion, estable.
ssmLT.xml (ejemplo simplificado)
<nrml xmlns="http://openquake.org/xmlns/nrml/0.5">
  <logicTree logicTreeID="lt1">
    <logicTreeBranchSet uncertaintyType="sourceModel"
                         branchSetID="bs1">
      <logicTreeBranch branchID="b1">
        <uncertaintyModel>ssm_lower.xml</uncertaintyModel>
        <uncertaintyWeight>0.2</uncertaintyWeight>
      </logicTreeBranch>
      <logicTreeBranch branchID="b2">
        <uncertaintyModel>ssm_mean.xml</uncertaintyModel>
        <uncertaintyWeight>0.6</uncertaintyWeight>
      </logicTreeBranch>
      <logicTreeBranch branchID="b3">
        <uncertaintyModel>ssm_upper.xml</uncertaintyModel>
        <uncertaintyWeight>0.2</uncertaintyWeight>
      </logicTreeBranch>
    </logicTreeBranchSet>
  </logicTree>
</nrml>

Implementacion en el Pipeline

Nuestro parser y serializer NRML garantizan round-trip fidelity: un archivo NRML parseado y re-serializado produce un output semanticamente identico al original.

Modulo Ruta Funcion
Parser pipeline/extract/nrml_parser.py Lee NRML v0.5 → objetos Python (dataclasses)
Serializer pipeline/transform/nrml_serializer.py Objetos Python → NRML v0.5 XML valido
NRML XML nrml_parser.py Python Objects nrml_serializer.py NRML XML

5 Biblioteca de GMPEs (Prioridad)

La seleccion de GMPEs (Ground Motion Prediction Equations) sigue las recomendaciones de los informes de referencia de Dynamis y Langan. Se implementan en tres fases, priorizando las ecuaciones con mayor aplicabilidad global.

Fase 1: NGA-West 2 (Estandar Universal)

Las cuatro GMPEs del programa NGA-West 2 son el estandar de la industria para regiones corticales activas. Se asigna peso igual de 0.25 a cada una en el arbol logico.

GMPE Referencia Peso Rango Mw Rango Rrup (km)
ASK14 Abrahamson, Silva & Kamai (2014) 0.25 3.0 - 8.5 0 - 300
BSSA14 Boore, Stewart, Seyhan & Atkinson (2014) 0.25 3.0 - 8.5 0 - 400
CB14 Campbell & Bozorgnia (2014) 0.25 3.3 - 8.5 0 - 300
CY14 Chiou & Youngs (2014) 0.25 3.5 - 8.5 0 - 300

Fase 2: NGA-Sub (Subduccion)

Para zonas de subduccion, las GMPEs del programa NGA-Subduction complementan a NGA-West 2.

GMPE Referencia Aplicabilidad
AG2015 / AG2020 Abrahamson & Gulerce (2015, 2020) Interface + Intraslab
Parker2020 Parker et al. (2020) Interface + Intraslab
Kuehn2020 Kuehn et al. (2020) Interface + Intraslab

Fase 3: Modelos Regionales

GMPE Region Contexto Tectonico
Akkar et al. (2014) Europa y Mediteraneo Cortical activa
Zhao et al. (2006) Japon / Pacifico Subduccion + cortical
Implementacion: Cada GMPE se implementa como una clase Python independiente con interfaz comun (calculate_mean(), calculate_sigma()). Unit tests contra tablas publicadas por los autores. Validacion cruzada contra OpenQuake hazardlib (via REST API).

6 GEM Hazard Mosaic — Datos de Referencia

El GEM Global Seismic Hazard Mosaic es un mapa global de peligrosidad sismica construido a partir de 34 modelos regionales armonizados. Se distribuye como GeoTIFF y es una referencia clave para validacion.

Especificaciones Tecnicas del GeoTIFF

Parametro Valor
Dimensiones 7200 x 3000 pixels
Tipo de dato float64
Resolucion 0.05 grados (~5.5 km en el ecuador)
Variable PGA (g) para periodo de retorno de 475 anos
Cobertura Global (180W-180E, 75S-75N)
Licencia CC BY-NC-SA 4.0

Uso como Benchmark

El Mosaic se utiliza exclusivamente como lookup de PGA de referencia para validar los resultados de nuestro motor propio. No se incluye en ningun output entregado al cliente.

  • Validacion: Comparar PGA calculado por nuestro motor vs. PGA del Mosaic para la misma coordenada.
  • Tolerancia: Discrepancias > 30% activan revision manual (diferencias esperadas por diferencias metodologicas).
  • No produccion: Nunca se entrega el valor del Mosaic al cliente como resultado.

Paleta de Color para Mapbox

Se adopta la escala de 11 bins de PGA definida por GEM para mantener consistencia visual con el estandar de la industria.

Bin Rango PGA (g) Color Nivel de Peligrosidad
1< 0.02#FFFFFFMuy baja
20.02 - 0.04#D4EDFCBaja
30.04 - 0.08#ABDDA4Baja-Moderada
40.08 - 0.12#66C2A5Moderada
50.12 - 0.20#FDAE61Moderada-Alta
60.20 - 0.28#F46D43Alta
70.28 - 0.40#D53E4FAlta
80.40 - 0.56#B71C3DMuy Alta
90.56 - 0.80#9E0142Muy Alta
100.80 - 1.20#67001FExtrema
11> 1.20#330010Extrema
Licencia: CC BY-NC-SA 4.0 — el GeoTIFF del Mosaic solo puede usarse para validacion interna y desarrollo. Si se desea ofrecer un mapa de hazard global en la UI del producto, se debe generar con nuestro propio motor o negociar licencia comercial con GEM.

7 Producto Tier 0 — Explorador Regional

Tier 0 es un nuevo concepto de producto que ofrece un explorador regional de riesgo sismico como puerta de entrada al funnel comercial. Combina datos de contexto (exposicion, riesgo) con nuestros propios calculos PSHA.

Fases de Implementacion

Fase A: Contexto de Exposicion

Datos del GEM Global Exposure Model para contextualizar el entorno construido en la zona de estudio.

  • Stock de edificaciones por tipologia constructiva
  • Costos de reposicion estimados
  • Poblacion expuesta
  • Requiere licencia GEM o fuentes alternativas (censo nacional, OSM)

Fase B: Contexto de Riesgo

Metricas de riesgo sismico regional para dar perspectiva al cliente.

  • Average Annual Loss (AAL) regional
  • Distribucion historica de danos
  • Requiere licencia GEM o computo propio

Fase C: Metricas PSHA Propias

Resultados generados por nuestro motor, sin dependencia de licencias externas.

  • PGA y Sa para periodos de retorno estandar
  • Mapa de fallas activas del entorno (GAF-DB)
  • Catalogo sismico historico filtrado (USGS/ISC)
  • Sin restricciones de licencia
Estrategia Tier 0

Enfoque hibrido: datos de exposicion para contexto (con licencia GEM o alternativas open-source) + metricas PSHA propias para valor tecnico diferenciado.

Estimacion: 2-3 semanas para MVP. El Tier 0 sirve como demo interactiva y herramienta de captacion comercial.

Flujo del Producto

Coordenadas Contexto Exposicion Fallas + Catalogo PGA Rapido Report Regional

8 Arbol Logico (Estructura Estandar)

La estructura del arbol logico sigue las recomendaciones del informe Dynamis para capturar la incertidumbre epistemica en todas las etapas del analisis PSHA.

Fuentes Tipo Falla

Cada falla individual genera un sub-arbol con las siguientes ramas de incertidumbre:

Parametro Ramas Pesos Descripcion
Dip (buzamiento) 3 [0.2, 0.6, 0.2] Bajo, central, alto
Modelo de recurrencia 2 [0.5, 0.5] Gutenberg-Richter / Characteristic
Magnitud maxima (Mmax) 3 [0.2, 0.6, 0.2] -0.2, central, +0.2 unidades Mw
Tasa de deslizamiento (slip rate) 3 [0.2, 0.6, 0.2] Bajo, central, alto
GMPE 4 [0.25, 0.25, 0.25, 0.25] ASK14, BSSA14, CB14, CY14
216
Ramas por falla (3x2x3x3x4)
36
Ramas por area (3x3x4)
[0.2, 0.6, 0.2]
Pesos estandar (bajo, central, alto)

Fuentes Tipo Area (Background)

Las zonas de sismicidad distribuida tienen un arbol logico mas compacto:

Parametro Ramas Pesos Descripcion
Valor b (G-R) 3 [0.2, 0.6, 0.2] b - sigma, b, b + sigma
Magnitud maxima (Mmax) 3 [0.2, 0.6, 0.2] Mmax observada, +0.3, +0.5
GMPE 4 [0.25, 0.25, 0.25, 0.25] NGA-West 2 (4 modelos)
Nota computacional: Para un estudio tipico con ~10 fallas + 3 zonas area, el numero total de ramas del arbol completo es ~10 x 216 + 3 x 36 = 2,268 ramas. Con periodos de retorno multiples y espectro completo, el motor debe ser eficiente en vectorizacion (NumPy) para mantener tiempos de calculo razonables.

9 Acciones Prioritarias

Lista priorizada de acciones derivadas de este analisis de integracion GEM.

Prioridad 1 — Inmediato
Implementar atribucion GAF-DB en templates de reportes
Incluir texto de atribucion CC BY-SA 4.0 en todos los reportes PDF, UI del mapa y exports GeoJSON que contengan datos de GAF-DB. Texto sugerido: "Fault data: GEM Global Active Faults Database (Styron & Pagani, 2020). Licensed under CC BY-SA 4.0."
Prioridad 2 — Semana 1
Contactar GEM para licencia comercial
Enviar email a product@globalquakemodel.org solicitando informacion sobre licencias comerciales para Risk Profiles, Exposure Model y Mosaic. Necesario para Tier 0 y posible expansion futura.
Prioridad 3 — Semanas 1-3
Desplegar OpenQuake Docker container
Configurar docker-compose.validation.yml con container OQ aislado en red separada. Verificar que el REST API responde en :8800. Crear script de validacion automatizada.
Prioridad 4 — Meses 1-2
Implementar GMPEs NGA-West 2 en motor custom
Implementar ASK14, BSSA14, CB14 y CY14 con tests unitarios contra tablas publicadas. Validar contra OpenQuake hazardlib via REST API. Tolerancia objetivo: ≤ 0.1% en mediana y sigma.
Prioridad 5 — Mes 2
Obtener opinion legal sobre AGPL + REST API
Consultar abogado especializado en licencias open-source para confirmar que la separacion via REST API/Docker no activa copyleft AGPL. Documentar opinion para compliance.
Prioridad 6 — Continuo
Monitorizar politica de 18 meses de GEM
GEM migra datasets de CC BY-NC-SA 4.0 a CC BY-SA 4.0 tras 18 meses de publicacion. Monitorizar activamente los releases de GEM para detectar cuando Mosaic, Exposure u otros productos se liberen para uso comercial.

10 Roadmap de Implementacion

Cronograma de implementacion alineado con la estrategia de integracion GEM y el desarrollo del motor PSHA propio.

Fase 0 — Semanas 1-3
Infraestructura de Validacion
  • Desplegar OpenQuake Docker container con REST API en :8800
  • Implementar export NRML v0.5 desde nuestro pipeline (nrml_serializer.py)
  • Crear script de validacion automatizada que envie jobs a OQ y compare resultados
  • Establecer pipeline CI con tests de integracion contra OQ
Fase 1 — Meses 1-3
Motor PSHA Custom + 5 GMPEs Core
  • Implementar integral Cornell-McGuire vectorizada (NumPy)
  • Implementar 4 GMPEs NGA-West 2 (ASK14, BSSA14, CB14, CY14) + 1 adicional
  • Implementar arbol logico basico (SSM + GMPE)
  • Validacion cruzada contra OpenQuake: tolerancia ≤ 2-3% en hazard curves
  • Primeros outputs Tier 1 y Tier 2 generados con motor propio
Fase 2 — Meses 3-6
Expansion GMPE + Disaggregation
  • Expandir biblioteca a 15-20 GMPEs (NGA-Sub, regionales)
  • Implementar disaggregacion (M-R-epsilon)
  • Arboles logicos completos con ramas de incertidumbre parametrica
  • UHS (Uniform Hazard Spectra) para multiples periodos de retorno
  • Optimizacion de rendimiento: paralelismo, caching de GMPEs
Fase 3 — Meses 6-9
Tier 3 Completo + Suite de Benchmarking
  • Tier 3 PSHA completo con todas las funcionalidades
  • Suite de benchmarking automatizada: nuestro motor vs. OpenQuake vs. R-CRISIS
  • Objetivo de precision: ≤ 2-3% vs. OQ en todos los escenarios de test
  • Documentacion tecnica de validacion para revision por pares
  • Negociacion de licencia GEM completada (si aplica para Tier 0)
Criterio de Exito

El motor PSHA propio se considera validado cuando produce hazard curves con discrepancia ≤ 2-3% respecto a OpenQuake para un conjunto de al menos 10 escenarios de referencia que cubran diferentes contextos tectonicos (cortical, subduccion, estable).