01 Resumen Ejecutivo

El Regional Hazard Explorer es un producto gratuito, sin autenticacion, que permite a cualquier usuario explorar la peligrosidad sismica de una ubicacion geografica. Funciona como puerta de entrada al ecosistema PSHA de Appgile.

0 €
Coste para el usuario
< 3s
Tiempo de respuesta
0
Login requerido
100%
Datos publicos

Propuesta de Valor

El usuario hace clic en un punto del mapa y obtiene instantaneamente:

  • PGA estimado — Aceleracion maxima del suelo (Peak Ground Acceleration) para 475 anios de periodo de retorno
  • Fallas activas cercanas — Distancia y geometria de las fallas del catalogo GEM GAF-DB en un radio de 300 km
  • Sismicidad historica — Terremotos significativos (M ≥ 5) del catalogo USGS FDSN
  • Contexto tectonico — Tipo de regimen tectonico (cortical activo, estable, subduccion)
Decision Clave

Tier 0 usa exclusivamente datos de dominio publico (USGS) y CC BY-SA 4.0 (GEM GAF-DB). No se requiere licencia comercial de GEM para este producto.

El PGA mostrado es una estimacion propia calculada a partir de los datos publicos, NO un valor extraido del GEM Hazard Mosaic (CC BY-NC-SA 4.0).

Rol en el Ecosistema

Tier 0 — Explorer Tier 1 — SSM Geometrico Tier 2 — SSM Completo Tier 3 — PSHA Completo

02 Posicionamiento de Producto

Audiencia Objetivo

Segmento Necesidad Conversion Esperada
Ingenieros estructurales Quick-check de peligrosidad antes de un proyecto Alta → Tier 1-2
Aseguradoras / reaseguradoras Evaluacion rapida de riesgo por ubicacion Alta → Tier 3
Desarrolladores inmobiliarios Due diligence sismica de parcelas Media → Tier 1
Investigadores / academicos Exploracion de datos sismicos globales SEO/Branding
Proteccion civil / gobiernos Visualizacion regional de amenaza Media → Tier 2-3

Diferenciacion vs. Competencia

Caracteristica PSHA Explorer (Tier 0) GEM Hazard Viewer USGS Earthquake Map
PGA por ubicacion Calculo propio GEM Mosaic No
Fallas activas GAF-DB + mapa Solo viewer No
Sismicidad historica USGS catalog No Si
Informe descargable PDF basico No No
Upgrade a PSHA completo 1-click No No
Uso comercial Si NC-SA 4.0 Public Domain
Ventaja competitiva clave: Ninguna plataforma combina fallas activas + sismicidad + PGA estimado + conversion a informe profesional en un unico punto de acceso gratuito.

03 Fuentes de Datos y Licencias

Tier 0 opera exclusivamente con fuentes de datos que permiten uso comercial sin restricciones.

Fuente Datos Licencia Uso en Tier 0 Atribucion
USGS FDSN API Catalogo sismico global Public Domain Sismicidad historica, terremotos significativos USGS Earthquake Hazards Program
GEM GAF-DB Geometria de fallas activas globales CC BY-SA 4.0 Fallas cercanas, trazas en mapa GEM Foundation — Styron & Pagani (2020)
USGS Vs30 Clasificacion de suelo (GeoTIFF) Public Domain Vs30 del sitio para ajuste de PGA USGS
Fuentes PROHIBIDAS en Tier 0: GEM Hazard Mosaic, GEM Risk Profiles, GEM Exposure Model y GEM Vulnerability Model tienen licencia CC BY-NC-SA 4.0 y NO pueden usarse comercialmente. El PGA mostrado en Tier 0 debe ser un calculo propio, no una lectura del Mosaic.

Estrategia de Calculo Propio de PGA

En lugar de leer valores del GEM Hazard Mosaic (prohibido comercialmente), Tier 0 calcula una estimacion simplificada de PGA usando:

  1. Fallas cercanas (GAF-DB) — Distancia a las fallas activas mas proximas, magnitudes maximas estimadas por longitud de ruptura (Leonard 2014 / WC1994)
  2. GMPE simplificada — Aplicacion de NGA-West2 (promedio ASK14 + BSSA14 + CB14 + CY14) para estimar PGA mediano en roca (Vs30 = 760 m/s)
  3. Ajuste por Vs30 — Amplificacion/deamplificacion segun Vs30 del sitio (USGS GeoTIFF)
  4. Contribucion de sismicidad difusa — Tasa de eventos del catalogo USGS en un radio de 300 km, corregida por completitud
Disclaimer obligatorio: El PGA mostrado en Tier 0 es una estimacion orientativa basada en datos publicos. No sustituye un analisis PSHA profesional. Para resultados con validez tecnica, se recomienda contratar Tier 2 o Tier 3.

Paleta de Colores PGA (Referencia GEM)

Usamos la paleta estandar de 11 bins de PGA que sigue las convenciones del sector:

< 0.01g
Muy bajo
0.01-0.05g
Bajo
0.05-0.10g
Bajo-Mod
0.10-0.15g
Moderado
0.15-0.20g
Mod-Alto
0.20-0.30g
Alto
0.30-0.40g
Alto
0.40-0.50g
Muy alto
0.50-0.70g
Muy alto
0.70-0.90g
Extremo
> 0.90g
Extremo

04 Arquitectura y Componentes UI

Stack Tecnologico

CapaTecnologiaJustificacion
FrameworkNext.js 15 (App Router)SSR para SEO, ISR para cache
MapaMapbox GL JS (dark-v11)Rendimiento WebGL, datos vectoriales, estilo oscuro profesional
EstilosTailwind CSS v4Consistencia con el resto del frontend
ChartsPlotly.js (lightweight)Graficos interactivos, hazard curves futuras
APIFastAPI + asyncRendimiento, tipado, documentacion automatica
CacheRedis + ISRPGA pre-calculado por grid, reduccion de latencia
GeodatosPostGISQueries ST_DWithin eficientes para fallas cercanas

Layout de Pagina

Header Bar
Appgile Logo "Regional Hazard Explorer" Search Bar (geocoding) CTA: "Analisis Profesional"
Mapa Principal (Mapbox dark-v11)
Capa: Fallas activas (GeoJSON / GAF-DB) Capa: Sismos historicos (circulos por magnitud) Capa: PGA heatmap (grid pre-calculado) Click handler → API call
Panel Lateral (Results)
PGA badge + color swatch Fallas cercanas (nombre, distancia, Mmax) Sismos significativos (tabla) Contexto tectonico CTA: "Solicitar Informe Tier 1" CTA: "Descargar PDF Basico"
Footer
Disclaimers & atribuciones Links a Tier 1/2/3 Appgile branding

Componentes Principales

1. Barra de Busqueda (Geocoding)

  • Mapbox Geocoding API para autocompletar direcciones
  • Input: texto libre (ciudad, direccion, coordenadas)
  • Output: lat/lon → centra mapa + dispara query
  • Placeholder: "Buscar ubicacion... (ej: Santiago de Chile, Lima, Mexico DF)"

2. Mapa Interactivo

  • Estilo base: mapbox://styles/mapbox/dark-v11
  • Zoom inicial: 2 (vista mundial)
  • Capas vectoriales:
    • Fallas activas — LineString, color por slip_rate o tectonic_region
    • Sismos historicos — Circle, radio proporcional a magnitud, color por profundidad
    • PGA heatmap — Fill-extrusion o heatmap layer, grid 0.1° pre-calculado
  • Interacciones: Click en punto → popup + panel lateral. Hover en falla → tooltip con nombre y tipo.

3. Panel de Resultados

Al hacer clic en el mapa, el panel lateral muestra:

  • PGA Card: Valor grande (ej. 0.24g) con swatch de color de la paleta, clasificacion textual ("Alto"), disclaimer de estimacion
  • Fallas Cercanas: Lista ordenada por distancia, con nombre, tipo (strike-slip, reverse, etc.), distancia en km, Mmax estimado
  • Sismicidad: Top 10 terremotos mas significativos en 300 km, con magnitud, fecha, profundidad, distancia
  • Contexto: Tipo tectonico, Vs30 del sitio, numero de fallas en radio
  • CTAs: Botones prominentes para upgrade a Tier 1+ y descarga de PDF basico

4. PDF Basico (Descargable)

  • 1-2 paginas generadas via WeasyPrint en servidor
  • Contenido: ubicacion, PGA estimado, fallas cercanas, disclaimers
  • Marca de agua: "Estimacion preliminar — appgile.com/psha"
  • Gate opcional: Requerir email para descargar (lead capture)

05 Modelo de Datos

Tablas Principales

PostgreSQL + PostGIS
-- Fallas activas (cache de GAF-DB, actualizado mensualmente)
CREATE TABLE active_faults (
    id              SERIAL PRIMARY KEY,
    gaf_id          TEXT UNIQUE NOT NULL,
    name            TEXT,
    fault_type      TEXT,       -- strike-slip, reverse, normal, subduction
    slip_rate_min   FLOAT,
    slip_rate_max   FLOAT,
    dip_min         FLOAT,
    dip_max         FLOAT,
    rake            FLOAT,
    lower_depth     FLOAT,
    upper_depth     FLOAT,
    tectonic_region TEXT,
    geometry        GEOMETRY(MultiLineString, 4326) NOT NULL,
    updated_at      TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_faults_geom ON active_faults USING GIST(geometry);

-- Grid de PGA pre-calculado (resolucion 0.1 grado)
CREATE TABLE pga_grid (
    id              SERIAL PRIMARY KEY,
    lat             FLOAT NOT NULL,
    lon             FLOAT NOT NULL,
    pga_475         FLOAT,     -- PGA en g, TR=475 anios
    pga_2475        FLOAT,     -- PGA en g, TR=2475 anios
    vs30            FLOAT,
    tectonic_region TEXT,
    n_faults_300km  INTEGER,
    computed_at     TIMESTAMPTZ DEFAULT NOW(),
    UNIQUE(lat, lon)
);
CREATE INDEX idx_pga_grid_coords ON pga_grid(lat, lon);

-- Cache de consultas de sismicidad (USGS responses)
CREATE TABLE seismicity_cache (
    id              SERIAL PRIMARY KEY,
    lat_center      FLOAT NOT NULL,
    lon_center      FLOAT NOT NULL,
    radius_km       FLOAT DEFAULT 300,
    min_mag         FLOAT DEFAULT 5.0,
    event_count     INTEGER,
    data_json       JSONB NOT NULL,
    fetched_at      TIMESTAMPTZ DEFAULT NOW(),
    expires_at      TIMESTAMPTZ DEFAULT NOW() + INTERVAL '7 days'
);

Volumenes Estimados

TablaRegistrosTamano est.Actualizacion
active_faults~13,500~50 MB (con geometria)Mensual (GitHub sync)
pga_grid~6.5M (0.1° global)~500 MBUnica + incremental
seismicity_cacheVariable (por demanda)~100 MBTTL 7 dias
Optimizacion del grid PGA: En la fase inicial, el grid puede limitarse a zonas de alta sismicidad (latitudes 40°S - 60°N, excluyendo oceanos) reduciendo a ~2M puntos. Las zonas de PGA < 0.01g se marcan como "Muy bajo" sin calculo detallado.

Tipos TypeScript (Frontend)

types.ts
interface HazardPreview {
  lat: number;
  lon: number;
  pga_475: number;           // PGA en g (TR=475 anios)
  pga_2475: number | null;   // PGA en g (TR=2475 anios)
  pga_class: string;         // "Muy bajo" | "Bajo" | ... | "Extremo"
  pga_color: string;         // hex color de la paleta
  vs30: number;
  tectonic_region: string;
  n_faults_300km: number;
}

interface NearbyFault {
  gaf_id: string;
  name: string | null;
  fault_type: string;
  distance_km: number;
  slip_rate: string;         // "0.1-1.0 mm/yr"
  dip: string;               // "45-60"
  tectonic_region: string;
  geometry: GeoJSON.Feature;  // para pintar en mapa
}

interface HistoricEarthquake {
  usgs_id: string;
  magnitude: number;
  mag_type: string;
  date: string;              // ISO 8601
  depth_km: number;
  distance_km: number;
  location: string;          // descripcion textual USGS
  lat: number;
  lon: number;
}

interface ExplorerResponse {
  hazard: HazardPreview;
  faults: NearbyFault[];
  earthquakes: HistoricEarthquake[];
  attribution: string[];
  disclaimer: string;
}

06 API Endpoints

Endpoints REST

MetodoRutaDescripcionAuthCache
GET /api/v1/explore Consulta completa para un punto Ninguna Redis 1h + ISR 24h
GET /api/v1/explore/pga Solo PGA para un punto (lightweight) Ninguna Redis 24h
GET /api/v1/explore/faults Fallas cercanas con geometria Ninguna Redis 7d
GET /api/v1/explore/seismicity Sismicidad historica Ninguna Redis 24h
POST /api/v1/explore/pdf Generar PDF basico Rate limit Redis 1h
GET /api/v1/explore/tiles/{z}/{x}/{y} Vector tiles de PGA grid Ninguna CDN 24h

Endpoint Principal: /api/v1/explore

Request
GET /api/v1/explore?lat=-33.45&lon=-70.66&radius=300
Accept: application/json
Response (200 OK)
{
  "hazard": {
    "lat": -33.45,
    "lon": -70.66,
    "pga_475": 0.42,
    "pga_2475": 0.78,
    "pga_class": "Muy alto",
    "pga_color": "#FD8D3C",
    "vs30": 362,
    "tectonic_region": "Subduction Interface",
    "n_faults_300km": 8
  },
  "faults": [
    {
      "gaf_id": "CLFS_001",
      "name": "San Ramon Fault",
      "fault_type": "reverse",
      "distance_km": 12.3,
      "slip_rate": "0.1-0.5 mm/yr",
      "dip": "45-70",
      "tectonic_region": "Active Shallow Crust"
    }
  ],
  "earthquakes": [
    {
      "usgs_id": "us20003k7a",
      "magnitude": 8.3,
      "mag_type": "mww",
      "date": "2015-09-16T22:54:33Z",
      "depth_km": 22.4,
      "distance_km": 240,
      "location": "48km W of Illapel, Chile"
    }
  ],
  "attribution": [
    "USGS Earthquake Hazards Program",
    "GEM Foundation - Global Active Faults Database (Styron & Pagani, 2020)"
  ],
  "disclaimer": "Estimacion orientativa basada en datos publicos..."
}

Rate Limiting

EndpointLimiteVentanaClave
/api/v1/explore60 requests1 minutoIP address
/api/v1/explore/pdf5 requests1 horaIP address
/api/v1/explore/tiles/*Sin limiteCDN cached

07 Flujo de Conversion

El objetivo principal de Tier 0 es convertir visitantes anonimos en leads cualificados y, eventualmente, en clientes de Tier 1-3.

Funnel de Conversion

1
Descubrimiento (SEO / Social / Referral)
Google: "seismic hazard [ciudad]", "PGA map [pais]", "earthquake risk [ubicacion]"
2
Exploracion del Mapa
Navegar el mapa, hacer clic en puntos, ver PGA y fallas
3
Engagement con Resultados
Leer panel de resultados, ver fallas cercanas, sismicidad historica
4
Descarga de PDF Basico
Email gate: captura de lead a cambio del PDF de estimacion
5
Solicitud de Tier 1+
Click en "Solicitar Analisis Profesional" → registro + seleccion de tier
6
Conversion a Cliente
Pago y ejecucion del proyecto PSHA

Puntos de Captura de Lead

TriggerAccionDato CapturadoPrioridad
Descarga de PDF Modal con formulario de email Email + ubicacion consultada P0
Click "Solicitar Informe" Redireccion a registro con pre-fill de ubicacion Email + nombre + ubicacion + tier deseado P0
5+ consultas en sesion Banner suave: "Crea tu cuenta para guardar consultas" Email (opcional) P1
Share / embed result Link permanente con parametros de ubicacion Analytics: UTM tracking P2

SEO Strategy

  • URL con parametros: /explore?lat=-33.45&lon=-70.66 → SSR con meta tags dinamicos
  • Meta tags: <title>Seismic Hazard in Santiago, Chile | PGA: 0.42g | PSHA Explorer</title>
  • Paginas estaticas por ciudad: Pre-generar /explore/santiago-chile, /explore/lima-peru, etc. (top 200 ciudades en zonas sismicas)
  • Schema.org: Structured data para Google con tipo Dataset + Place
  • Idiomas: Espanol (primario) + Ingles (secundario) para alcance global
Meta de Conversion

Objetivo: 3-5% de visitantes Tier 0 solicitan un informe de pago (Tier 1+). Con 10,000 visitas/mes, eso representa 300-500 leads cualificados mensuales.

08 Implementacion y Roadmap

Fases de Desarrollo

Semana 1-2
Fase A: Datos Base
  • Importar GAF-DB a PostGIS (active_faults table)
  • Configurar sync mensual de GAF-DB desde GitHub
  • Implementar endpoint /api/v1/explore/faults (query ST_DWithin)
  • Conectar USGS FDSN API con cache Redis (TTL 24h)
  • Endpoint /api/v1/explore/seismicity
Semana 3-4
Fase B: Motor PGA Simplificado
  • Implementar GMPEs NGA-West2 (ASK14, BSSA14, CB14, CY14)
  • Calculo de Mmax por longitud de ruptura (Leonard 2014)
  • Pre-calculo de grid PGA 0.1° para zonas sismicas prioritarias
  • Endpoint /api/v1/explore/pga
  • Integracion de Vs30 desde USGS GeoTIFF
Semana 5-6
Fase C: Frontend Explorer
  • Pagina /explore con mapa Mapbox full-screen
  • Capas de fallas, sismos y PGA heatmap
  • Panel lateral de resultados con CTAs
  • Barra de busqueda con geocoding
  • Responsive: funcional en mobile
Semana 7-8
Fase D: Conversion + SEO
  • Generacion de PDF basico (WeasyPrint)
  • Email gate para descarga de PDF
  • Pre-generacion de paginas por ciudad (SSG/ISR)
  • Meta tags dinamicos, Schema.org
  • Analytics: Mixpanel/Plausible para tracking de funnel
Semana 9-10
Fase E: Validacion + Launch
  • Validar PGA propio vs. GEM Mosaic (discrepancia aceptable < 30% para Tier 0)
  • Testing de carga: 100 req/s sostenido
  • QA en mobile, accesibilidad WCAG AA
  • Soft launch con 10 ciudades piloto
  • Iteracion basada en feedback

Estimacion de Esfuerzo

10
Semanas totales
2
Desarrolladores
1
Ingeniero sismico (revision)
5
Fases incrementales

09 Decisiones Tecnicas

DT-01: PGA Propio vs. GEM Mosaic

Calcular PGA propio usando GMPEs + datos publicos, en lugar de leer valores del GEM Hazard Mosaic.

Razon: GEM Mosaic tiene licencia CC BY-NC-SA 4.0 que prohibe uso comercial. Aunque Tier 0 es gratuito, forma parte del funnel comercial de la plataforma. Ademas, el calculo propio nos da control total y posibilidad de mejora incremental.
DT-02: Grid Pre-calculado vs. On-the-fly

Pre-calcular un grid de PGA a 0.1° de resolucion e interpolar para puntos intermedios, en lugar de calcular PGA on-the-fly para cada request.

Razon: Un calculo PSHA simplificado toma ~2-5 segundos incluyendo queries a PostGIS. Pre-calcular el grid y servir desde cache permite respuestas < 100ms. El grid se recalcula al actualizar las fuentes de datos (mensualmente).
DT-03: Sin Autenticacion para Explorer

El explorador es 100% publico, sin login. Solo se requiere email para descargar el PDF basico.

Razon: Maximizar alcance SEO y minimizar friccion. Un login obligatorio reduciria el trafico organico un 80-90%. La captura de email en el PDF es suficiente para lead qualification.
DT-04: NGA-West2 como GMPE Base

Usar el promedio ponderado de ASK14, BSSA14, CB14 y CY14 (pesos iguales: 0.25) para corteza activa. Zhao et al. (2006) para subduccion.

Razon: NGA-West2 es el estandar de la industria para corteza activa. Los 4 modelos principales cubren el rango de epistemia sin necesidad de logic tree complejo para Tier 0. Zhao (2006) es el estandar para subduccion.
DT-05: Disclaimer Permanente

Incluir disclaimer visible en toda interaccion: "Estimacion orientativa. No sustituye un analisis PSHA profesional."

Razon: Proteccion legal obligatoria. El PGA de Tier 0 es una estimacion simplificada que puede diferir hasta un 30% del valor PSHA completo. El disclaimer refuerza la necesidad de upgrade a Tier 2-3 para uso profesional.

Resumen de Decisiones

IDDecisionAlternativa DescartadaImpacto
DT-01PGA propio (GMPEs + datos publicos)GEM Mosaic readoutCritico
DT-02Grid pre-calculado 0.1°Calculo on-the-flyPerformance
DT-03Sin login para explorerLogin obligatorioConversion
DT-04NGA-West2 (4 modelos, pesos iguales)GMPE unicoPrecision
DT-05Disclaimer permanenteSolo en PDFLegal

10 Riesgos y Mitigaciones

Riesgo Probabilidad Impacto Mitigacion
PGA propio difiere > 30% del GEM Mosaic Media Alto Validar contra 50+ puntos de referencia. Calibrar GMPEs por region. Si discrepancia es sistematica, aplicar factores de correccion regionales.
USGS FDSN API no disponible Media Medio Cache Redis con TTL largo (7 dias). Fallback a datos ISC cacheados. Mostrar datos cacheados con timestamp de ultima actualizacion.
Coste de Mapbox excesivo Baja Medio Free tier de Mapbox: 50K cargas de mapa/mes. Monitorizar uso. Si excede, migrar a MapLibre GL JS (open-source) con tiles de Protomaps.
GEM cambia licencia de GAF-DB Baja Alto GAF-DB publicado en GitHub bajo CC BY-SA 4.0. Descargar y cachear localmente. Si cambia licencia, la version descargada sigue siendo valida. Alternativa: compilar catalogo propio de fallas desde publicaciones academicas.
Baja conversion Tier 0 → Tier 1+ Media Medio A/B testing de CTAs. Ajustar el "teaser" de informacion gratuita vs. de pago. Agregar mas valor en Tier 0 gradualmente (ej: mini-grafico de hazard curve).
Uso del PGA de Tier 0 como referencia profesional Media Alto Disclaimer prominente y permanente. Marca de agua en PDF. Limitar precision mostrada (redondear a 0.01g). Incluir rango de incertidumbre.
Pre-calculo de grid PGA lento Media Bajo Calcular por regiones prioritarias (Latam, Mediterraneo, SE Asia primero). Usar workers paralelos con Celery. Grid inicial: solo zonas con PGA > 0.01g.

Metricas de Exito

< 3s
Tiempo de respuesta P95
3-5%
Conversion a Tier 1+
< 30%
Discrepancia PGA vs. GEM
10K+
Visitas organicas/mes
Criterio Go/No-Go: Si la discrepancia media de PGA entre nuestro calculo y el GEM Mosaic excede el 40% tras la fase de validacion, se pausa el lanzamiento publico y se revisa la metodologia de calculo antes de continuar.