Sobre el proyecto

Floodcast-Gurugram es una aplicación web de tecnología cívica para la previsión de inundaciones en Gurugram (Gurgaon), India. Existe para responder a una pregunta específica que las aplicaciones meteorológicas comunes y las listas de puntos propensos a inundaciones no resuelven: dado el pronóstico de lluvia en vivo, ¿se inundará una ruta determinada en las próximas horas, exactamente cuándo comienza la inundación y cuándo desaparece? En lugar de una simple puntuación de riesgo, siempre adjunta una ventana de tiempo a cada veredicto. Lo que hace - Riesgo con ventana temporal: la lluvia horaria en vivo se compara con cada uno de los 73 puntos de inundación registrados para calcular cuándo se inunda un punto y cuándo se despeja, utilizando bandas de advertencia estilo IMD más tiempos explícitos de inicio y despeje. - Veredictos de ruta: se resuelven dos nombres de lugares y se encuentran los puntos críticos dentro de un búfer de 1,5 km de la línea recta entre ellos; la aplicación informa el peor punto y la peor ventana temporal. - Línea de tiempo horaria: los usuarios pueden avanzar a través del pronóstico y observar el mapa, el veredicto y el registro actualizados para esa hora. - Simulador de lluvia: dado que Gurugram es seco la mayor parte del año, los usuarios pueden preguntar qué sucede con 20, 35 o 55 mm/h y observar cómo responde el registro a través del mismo motor que el veredicto en vivo. - Reportes ciudadanos: una foto de cámara, una ubicación GPS con su precisión y una profundidad observada. Los reportes se almacenan primero en el dispositivo y se moderan antes de su exhibición pública. - CPCB National AQI: la escala india de 0-500 calculada a partir de una media de contaminantes de 24 horas, en lugar de un índice de proveedor de 1-5. La procedencia de los datos se trata como una característica del producto. De los 73 puntos registrados, 39 tienen fuente: 4 nombrados en la lista de puntos críticos de la Zona 1 de MCG, 26 recurrentes en dos o más reportes de noticias independientes de 2022 a 2025, y 9 de fuentes institucionales fechadas y registradas para la temporada actual de monzones. Los 24 restantes se describen como entradas de lista de vigilancia plausibles pero no confirmadas, y 10 son marcadores de posición reconstruidos mantenidos solo para preservar el recuento oficial de 36 puntos de MCG. El README establece claramente que expandir el registro diluyó la confianza promedio en relación con los 36 originales, y que una pestaña de "What's real" en la aplicación expone los niveles, con el relleno del marcador codificando la certeza en el mapa. Las 73 filas están marcadas como coordenadas no verificadas; un script las audita contra OpenStreetMap y escribe un reporte, pero nunca edita los datos. La coincidencia de rutas es explícitamente una coincidencia de corredor en línea recta, no un enrutamiento giro a giro, y esto se divulga en cada respuesta de ruta. El ciclo de aprendizaje Los lugares reportados dentro de 500 m entre sí se tratan como un solo lugar. Un lugar es promovido a punto de inundación por derecho propio después de 3 reportes en 2 días separados, extraídos independientemente y nunca fusionados en las 73 filas investigadas. Un umbral medido para un punto se publica solo después de 2 días separados con profundidad hasta la rodilla o peor, con más de 1 mm/h de lluvia; la cifra publicada es la lluvia más ligera jamás vista que inundó ese lugar. Open-Meteo suministra la lluvia que cayó antes de cada reporte aprobado. Los recuentos de reportes, los pares de calibración y los umbrales observados son escribibles solo mediante disparadores de base de datos, aplicados por permisos de columna, por lo que un moderador no puede escribir manualmente una medición. Arquitectura y stack La aplicación es un sitio estático: React 19 con TypeScript, construido con Vite (rolldown) y renderizado con Leaflet, distribuido como una PWA instalable y prioritaria para modo offline, y desplegado en hosting estático. El registro de puntos críticos (62 KB de filas estáticas) está integrado en el paquete, por lo que el mapa y la lista se renderizan antes de cualquier solicitud de red. La puntuación es aritmética pura sobre esas filas y se ejecuta en el dispositivo. La única llamada siempre activa es a Open-Meteo, que no requiere clave de API y permite acceso cross-origin, por lo que se llama desde la IP del visitante; Nominatim se usa solo como respaldo para lugares que no están en el registro. Supabase es opcional: sin él, la herramienta de pronóstico sigue funcionando plenamente y los reportes permanecen en el dispositivo. El README documenta una versión previa de FastAPI en un contenedor cuyo arranque en frío medía 42,7 segundos y cuyas llamadas de pronóstico estaban permanentemente limitadas por tasa, lo que motivó el rediseño total hacia el cliente; se indica que el paquete total es de unos 160 KB gzipped. Pipeline de datos No hay un modelo entrenado. Cuatro generadores deterministas de Python con semillas fijas construyen el registro en etapas (36 filas congeladas a la estructura de MCG, luego de 36 a 64, luego de 64 a 73), seguido de un paso de exportación que emite el JSON que envía la aplicación y una verificación de integridad. La integración continua regenera todas las etapas en cada push y falla si el resultado difiere de lo comprometido; se indica a los colaboradores que editen los generadores, no los CSV. La red de drenaje publicada por GMDA (4.701 segmentos de arroyos mapeados, 10 cuencas) se obtuvo para las áreas de captación, pero esos datos se excluyen deliberadamente de cualquier puntuación de riesgo, y una prueba garantiza esto. Notablemente, el README informa que el tamaño mediano de la cuenca no se correlaciona con los niveles de severidad, y este resultado negativo se publica. No se reclama ninguna cifra de precisión general, ya que no existe un registro de inundaciones de verdad fundamental; el README informa en su lugar una curva de respuesta (10 mm/h no inunda nada, 20 mm/h afecta a los 10 chowks peores, 35 mm/h alcanza 44 de 73 puntos, 55 mm/h sostenidos cubren todo el registro) y una tasa de obtención de fuentes del 53 por ciento. Advertencias para futuros usuarios Todas las coordenadas son ubicaciones aproximadas en lugar de posiciones geocodificadas; los umbrales comenzaron como estimaciones de ingeniería por nivel de severidad, no como mediciones, y solo se reemplazan a medida que se acumula la evidencia ciudadana; el análisis de rutas utiliza un corredor de línea recta en lugar de carreteras reales; y el registro, aunque basado en fuentes en parte, no es un conjunto de datos oficial del gobierno. Un demo en vivo, una licencia MIT y documentación de procedencia dedicada acompañan al proyecto.