Sobre o projeto
O Floodcast-Gurugram é um web app de tecnologia cívica para previsão de inundações em Gurugram (Gurgaon), Índia. Ele existe para responder a uma pergunta específica que aplicativos de clima comuns e listas de locais propensos a inundações não respondem: dada a previsão de chuva em tempo real, uma determinada rota irá inundar nas próximas horas, quando exatamente a inundação começa e quando ela termina. Em vez de uma pontuação de risco simples, ele sempre anexa uma janela de tempo a cada veredito.
O que ele faz
- Risco com janela de tempo: a precipitação horária em tempo real é comparada com cada um dos 73 pontos de inundação registrados para calcular quando um ponto inunda e quando limpa, usando faixas de aviso no estilo IMD, além de horários explícitos de início e término.
- Vereditos de rota: dois nomes de locais são resolvidos e hotspots dentro de um buffer de 1,5 km da linha reta entre eles são encontrados; o app relata o pior ponto e a pior janela.
- Linha do tempo horária: os usuários podem avançar pela previsão e observar o mapa, o veredito e o registro serem relidos naquela hora.
- Simulador de chuva: como Gurugram é seca na maior parte do ano, os usuários podem perguntar o que acontece com 20, 35 ou 55 mm/h e observar a resposta do registro através do mesmo mecanismo do veredito em tempo real.
- Relatos de cidadãos: uma foto de câmera, uma fixação de GPS com sua precisão e uma profundidade observada. Os relatos são armazenados primeiro no dispositivo e moderados antes da exibição pública.
- CPCB National AQI: a escala indiana de 0-500 computada a partir de uma média de poluentes de 24 horas, em vez de um índice de 1-5 de fornecedor.
A proveniência dos dados é tratada como um recurso do produto. Dos 73 pontos registrados, 39 são originados: 4 nomeados na lista de hotspots da Zona 1 da MCG, 26 recorrentes em dois ou mais relatórios de notícias independentes de 2022 a 2025, e 9 de fontes institucionais datadas e registradas para a atual temporada de monções. Os 24 restantes são descritos como entradas de lista de observação plausíveis, mas não confirmadas, e 10 são placeholders reconstruídos mantidos apenas para preservar a contagem oficial de 36 pontos da MCG. O README afirma claramente que a expansão do registro diluiu a confiança média em relação aos 36 originais, e que uma aba "What's real" no app expõe as camadas, com o preenchimento do marcador codificando a certeza no mapa. Todas as 73 linhas são sinalizadas como tendo coordenadas não verificadas; um script as audita contra o OpenStreetMap e escreve um relatório, mas nunca edita os dados. A correspondência de rota é explicitamente uma correspondência de corredor em linha reta, não um roteamento curva a curva, e isso é divulgado em cada resposta de rota.
O ciclo de aprendizado
Locais relatados a menos de 500 m um do outro são tratados como um único local. Um local é promovido a um ponto de inundação por direito próprio após 3 relatos em 2 dias separados, extraídos separadamente e nunca mesclados nas 73 linhas pesquisadas. Um limite medido para um ponto é publicado apenas após 2 dias separados com profundidade na altura do joelho ou pior, com mais de 1 mm/h de chuva; o valor publicado é a chuva mais leve já vista a inundar aquele local. O Open-Meteo fornece a precipitação que caiu antes de cada relato aprovado. Contagens relatadas, pares de calibração e limites observados são graváveis apenas por gatilhos de banco de dados, impostos por permissões de coluna, para que um moderador não possa digitar manualmente uma medição.
Arquitetura e stack
O app é um site estático: React 19 com TypeScript, construído com Vite (rolldown) e renderizado com Leaflet, enviado como um PWA offline-first instalável e implantado em hospedagem estática. O registro de hotspots (62 KB de linhas estáticas) é incorporado ao bundle, portanto, o mapa e a lista renderizam antes de qualquer requisição de rede. A pontuação é aritmética pura sobre essas linhas e roda no dispositivo. A única chamada sempre ativa é a do Open-Meteo, que não requer chave de API e permite acesso cross-origin, sendo chamada do próprio IP do visitante; o Nominatim é usado apenas como fallback para locais não presentes no registro. O Supabase é opcional: sem ele, a ferramenta de previsão ainda funciona totalmente e os relatos permanecem no dispositivo. O README documenta uma versão anterior com FastAPI em container, cujo cold start mediu 42,7 segundos e cujas chamadas de previsão eram permanentemente limitadas por taxa, motivando o redesenho totalmente client-side; o bundle total é declarado como cerca de 160 KB gzipped.
Pipeline de dados
Não há modelo treinado. Quatro geradores Python determinísticos com sementes fixas constroem o registro em etapas (36 linhas congeladas na estrutura da MCG, depois 36 para 64, depois 64 para 73), seguidos por uma etapa de exportação que emite o JSON que o app envia e uma verificação de integridade. A integração contínua regenera todas as etapas a cada push e falha se a saída diferir do que foi commitado; os contribuidores são orientados a editar os geradores, não os CSVs. A rede de drenagem publicada pela GMDA (4.701 segmentos de fluxo mapeados, 10 bacias hidrográficas) foi obtida para áreas de captação, mas esses dados são deliberadamente excluídos de qualquer pontuação de risco, e um teste impõe isso. Notavelmente, o README relata que o tamanho médio da bacia não correlaciona com as camadas de severidade, e este resultado negativo é publicado. Nenhuma figura de precisão geral é reivindicada, pois não existe um log de inundação de verdade fundamental; o README relata, em vez disso, uma curva de resposta (10 mm/h não inunda nada, 20 mm/h atinge os 10 chowks piores, 35 mm/h atinge 44 de 73 pontos, 55 mm/h sustentados cobrem todo o registro) e uma taxa de origem de 53 por cento.
Ressalvas para potenciais usuários
Todas as coordenadas são posicionamentos aproximados em vez de posições geocodificadas; os limites começaram como estimativas de engenharia por camada de severidade, não medições, e são substituídos apenas conforme as evidências cidadãs se acumulam; a análise de rota usa um corredor em linha reta em vez de estradas reais; e o registro, embora parcialmente originado, não é um conjunto de dados governamental oficial. Uma demonstração ao vivo, uma licença MIT e documentação de proveniência dedicada acompanham o projeto.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.