PLI-HAZARDTRACK

Riscos climáticos extremos · PLI-SP

    API pública — três camadas de risco

    Feeds abertos para integração externa: risco geológico, risco hidrológico (UAs) e risco de fogo INPE (trechos). Inclui nomenclatura, simbologia (cores por nível) e mapeamento entre aliases da interface e parâmetros da API.

    Feeds abertos para integração externa das três camadas de risco (grupo Riscos associados a eventos climáticos extremos): risco geológico / alias Risco a movimentos de massa, risco hidrológico / alias Risco a inundação (809 UAs, RD + chuva MERGE/INPE) e risco de fogo / alias Risco a incêndios (INPE, ~4.583 trechos rodoviários estaduais). Respostas em GeoJSON (application/geo+json) ou JSON.

    Contrato UA (metadata.api_version = 2): features com atributos nativos de uas_area_estudo + campos calculados (RD, chuva, ICC). Spatial join direto em ua_id. Fogo: produto INPE independente do PPDC (sem RA/ICC/RD).

    Nomenclatura — interface e API

    A interface web usa aliases amistosos (“Risco a…”) nos painéis e popups; a API e os metadados GeoJSON usam identificadores técnicos. Integradores devem consumir os parâmetros abaixo — não os textos exibidos na UI.

    Alias (UI) Nome oficial Parâmetro API Endpoint principal
    Risco a movimentos de massa Risco geológico hazard=geo /api/public/ua-layers?hazard=geo
    Risco a inundação Risco hidrológico hazard=hidro (sinônimos aceitos: hidrologico, inundacao) /api/public/ua-layers?hazard=hidro
    Risco a incêndios Risco de fogo (RF INPE) horizonte=observado|D+1|… /api/public/fire-risk/layers

    Regras para integradores:
    · UAs: sempre filtrar por hazard=geo ou hazard=hidro — não confundir com IDs internos da UI de animação (encosta / inundacao), que são equivalentes semânticos mas distintos do contrato público.
    · Fogo: não passa por /api/public/ua-layers; use o namespace /api/public/fire-risk/*.
    · Em cada feature UA, o campo hazard repete geo ou hidro; hazard_label traz o nome oficial em português.
    · Catálogo canônico de URLs: GET /api/public (ver seção Diretrizes de acesso).

    Simbologia das camadas de risco

    Cores, níveis e espessuras usados no mapa web PLI-HazardTrack. Integradores devem aplicar a mesma convenção ao estilizar o GeoJSON retornado pela API (símbolo = cor de traço sobre LineString de UA ou trecho).

    Campos na API: UAs → inteiro rd (0–4) e rótulo nivel (PPDC); fogo → enum rf_classe (minimo … critico, ou SEM_DADO). Valor contínuo de fogo: rf_valor (0–1).

    Mapa · canto inferior

    Quadros de legenda gerados automaticamente — mesma aparência do mapa quando as três camadas de risco estão ligadas.

    Risco geológico Risco a movimentos de massa

    Paleta verde → amarelo → laranja → vermelho → roxo (canal RDgeo, metodologia REGEA-NIPPON / PPDC).

    Risco hidrológico Risco a inundação

    Paleta verde → azuis → magenta (canal RDhid; nível 4 em magenta para destaque máximo).

    Risco de fogo Risco a incêndios · RF INPE

    Classes discretas do produto INPE (escala contínua rf_valor 0–1 agregada por trecho). Independente dos cinco níveis PPDC do RD.

    Diretrizes de acesso

    Catálogo GET /api/public — JSON com URLs canônicas de todas as camadas, versão (api_version) e bloco auth.
    Método Somente GET (preflight OPTIONS liberado).
    Autenticação Opcional: se o servidor define PUBLIC_API_KEY, exige X-API-Key ou Authorization: Bearer. Sem a variável, o feed fica aberto (desenvolvimento).
    CORS Access-Control-Allow-Origin: * — integradores web podem consumir de outro domínio.
    Cabeçalhos de resposta X-Public-Api-Version, X-Public-Api-Auth (open ou required), Cache-Control: public, max-age=….
    Atualização sugerida UAs: polling ~30 s (metadata.refresh_hint_s). Fogo: polling ~5 min (cache 300 s).

    Três camadas — endpoints e parâmetros

    Nomes como no painel Camadas (grupo Riscos associados a eventos climáticos extremos). UAs usam hazard=geo|hidro na API (não encosta / inundacao do seletor interno de animação).

    Camada (UI) Endpoint Parâmetros Formato
    Risco a movimentos de massa
    Risco geológico
    — hazard=geo (obrigatório para esta camada)
    min_rd=0..4 (opcional)
    at=ISO8601 (opcional, histórico)
    GeoJSON · cache 30 s
    Risco a inundação
    Risco hidrológico
    — hazard=hidro (sinônimos: hidrologico, inundacao)
    min_rd, at (opcionais)
    GeoJSON · cache 30 s
    Risco a incêndios
    Risco de fogo · INPE
    — horizonte=observado (padrão), D+1, D+2, D+3
    classe=minimo|baixo|medio|alto|critico (opcional)
    GeoJSON · cache 300 s

    Parâmetros — Risco geológico e risco hidrológico

    Base: — (ambos os canais, hazard=all). Alertas: — (min_rd=3).

    hazard geo = risco geológico (809 UAs canal geológico); hidro = risco hidrológico (809 UAs canal hidrológico); all = ambos (1618 features, padrão).
    min_rd Inteiro 0–4 — retorna UAs com rd ≥ valor (ex.: 3 = Alerta e Alerta Máximo).
    at Data/hora ISO 8601 UTC — snapshot histórico (ex.: 2023-02-19T12:00:00Z). Reconstrói RD com MERGE observado; WRF não entra no histórico.

    Parâmetros — Risco de fogo (INPE)

    GeoJSON (mapa) — — trechos coloridos por rf_classe.
    Resumo estadual — — contagens por classe, total_trechos, data_referencia, horizontes_disponiveis (~0,5 KB).
    Detalhe de trecho /api/public/fire-risk/trecho/<trecho_id> — mesmos parâmetros horizonte da camada.
    horizonte Igual ao seletor do painel Camadas: observado (padrão), D+1, D+2, D+3.
    classe Filtra features da camada GeoJSON: minimo, baixo, medio, alto, critico.
    Propriedades (feature) trecho_id, rf_classe, rf_valor, rf_p90, rf_media, horizonte, data_referencia, data_alvo, metodologia + DER (rodovia, uba_codigo, residencia_dr, municipio…).

    URL base — Risco geológico (exemplo ao vivo)

    —

    Compatível com Leaflet, Mapbox, QGIS, ArcGIS Online e qualquer cliente HTTP/GeoJSON.

    Outras camadas do mapa (sem API pública dedicada)

    Malha Rodoviária Estadual /api/road-network (GeoJSON interno)
    Regiões monitoradas /api/snapshot → chave regions (uso operacional, não faz parte do contrato /api/public/*).

    Propriedades de cada feature (UA)

    Os nomes em monospace abaixo são os nomes literais entregues no GeoJSON. Convenção: RAGEO/RAHID em CAIXA ALTA porque vêm assim da camada-mãe oficial.

    Identificação ua_id, sigla_rodovia, km_inicial, km_final, extensao_km, escala (25K/10K/1K), tipo (UTB/SR), ordem_no_grupo, subtrecho_der
    Região e malha regiao_id (1..4), regiao_nome, municipio, centroide_lon, centroide_lat, buffer_lateral_m
    DER (operacional) regional, residencia_dr, uba_codigo, uba_nome, jurisdicao, conservado_por
    Risco analisado (RA, estático) Canal geo: RAGEO, icc_geo_thresholds (lista de 4 floats em CPC), trecho_critico_geo (bool).
    Canal hidro: RAHID, icc_hid_thresholds (4 floats em mm/24 h), trecho_critico_hid.
    Risco dinâmico (RD) rd, rd_geo, rd_hid, nivel, hazard (geo = risco geológico; hidro = risco hidrológico), hazard_label
    Chuva e gatilho ac96h_mm, ac24h_mm, ac72h_obs_mm, ac18h_obs_mm, intensity_mmh, cpc, icc_geo, icc_hid, prev24h_mm, prev6h_mm, fonte_chuva (WRF ou OBS_ONLY)
    Estado do monitoramento monitoramento: ativo ou indisponivel (UA sem chuva observada no ciclo). Detalhe operacional em rd_unidades.

    Metadados (metadata)

    O objeto raiz da FeatureCollection inclui: api_version, timestamp_utc, data_status (ok, degraded, loading, no_data), data_source, historical, hazard (geo = risco geológico, hidro = risco hidrológico, ou all), feature_count, total_geo, total_hidro, max_rd, by_level_geo, by_level_hidro, refresh_hint_s e endpoints (URLs canônicas).

    Exemplos de consumo (JavaScript)

    —

    Sem PUBLIC_API_KEY no servidor, omita o bloco headers.

    Endpoints internos (uso da UI / diagnóstico)

    Não fazem parte do contrato /api/public/*, mas são documentados para clientes próximos da operação.

    GET /api/snapshot Snapshot operacional completo (pontos + regiões + summary). Aceita ?at=ISO8601 para consulta histórica.
    GET /api/timeline Série de 96 quadros horários de RD. Aceita ?hazard=geo|hidro.
    GET /api/forecast Previsão WRF por UA (próximas 24 h, fonte CPTEC).
    GET /api/actions Ações operacionais PPDC por nível, do snapshot atual ou ?at=.
    GET /api/progress Snapshot único do progresso do ingest MERGE.
    GET /api/progress/stream Server-Sent Events — empurra atualizações em push em vez de polling. Keepalive a cada 15 s; auto-reconnect via EventSource.
    GET /api/health Liveness/readiness, idade do ingest, contagem de horas válidas.
    POST /api/refresh Força ciclo manual (requer permissão; usado pelo /admin).