monitor-condiciones / README.md
JoseAndresLopez's picture
Subir aplicacion
4ab46a7 verified
|
Raw History Blame Contribute Delete
3.29 kB
---
title: Condiciones de Observación
emoji: 🛰️
colorFrom: gray
colorTo: green
sdk: static
pinned: false
license: mit
---
# 🛰️ Monitor de condiciones de observación — con datos reales
App **PWA que analiza telemetría meteorológica real de observatorios** para decidir,
de un vistazo desde el móvil, si las condiciones son aptas para observar o hay que
**cerrar la cúpula**. Reconoce las columnas del CSV automáticamente, así que
funciona con exportaciones de distintas fuentes.
Corre entera en el navegador (Python vía Pyodide/WebAssembly): no hay backend, el
análisis (pandas/numpy) se ejecuta en tu dispositivo sobre el CSV que subas.
## Datos reales
Pensada para datos públicos de observatorio:
- **ESO — Base de datos ambiental** (La Silla / Paranal): humedad, viento,
temperatura, punto de rocío y presión, descargables desde los formularios de
archivo de ESO. La Silla se actualiza casi en tiempo real.
- **Observatorio del Roque de los Muchachos (La Palma)** — donde está el GTC: las
estaciones meteo del TNG, ING, NOT y MAGIC publican condiciones del sitio.
Solo se usan variables **públicas**. La corriente de motor o el error de seguimiento
son telemetría interna de cada telescopio y no se incluyen. El día de mañana, dentro
del GTC, se re-apunta a su propia telemetría.
## Cómo usar datos reales
1. Descarga un CSV de ESO (formularios de *Ambient Conditions*) o del ORM.
2. En la app, pulsa **Subir CSV**. Las columnas se reconocen solas (humedad, viento,
temperatura, punto de rocío, presión), en inglés o español, y el viento se
convierte a m/s si viene en km/h.
3. Incluye una **muestra** en formato tipo ESO (con una entrada de niebla) para
probarla al instante sin descargar nada.
## Qué evalúa
- **Humedad** por encima del límite → cerrar la cúpula.
- **Viento** por encima del límite operativo (~18 m/s, referencia ESO) → cerrar o
reorientar a sotavento.
- **Margen sobre el punto de rocío** (temperatura − rocío): si es muy pequeño, hay
riesgo de **condensación** en la óptica → cerrar.
- **Tendencias:** estima en cuántas horas se cruzará cada límite si la cosa sigue así.
## Ejecutar en local (versión servidor, con FastAPI real)
El proyecto también incluye el backend FastAPI clásico (fuera de esta carpeta, en la
raíz del proyecto):
```bash
uv sync
uv run uvicorn main:app --reload --port 7860 # http://localhost:7860
uv run python test_conditions.py # valida el núcleo
```
## Estructura de esta carpeta (versión estática desplegada)
```
index.html Frontend PWA (tema oscuro por estado)
logic.py Misma lógica que main.py, adaptada sin FastAPI
conditions_core.py Mapeo de columnas, límites, tendencias y triaje
static/
app.js, styles.css Cliente: carga Pyodide y pinta el panel
icons/ Iconos
manifest.json, sw.js PWA (instalable, offline)
data/
muestra_condiciones.csv Muestra en formato tipo ESO (con niebla)
```
## Diseño
Estética de **sala de control nocturna**: fondo casi negro (como la luz roja de los
observatorios) y color por estado —apto (verde), precaución (ámbar), no apto (rojo)—
que tiñe la cabecera como un panel, con un latido sutil solo cuando es crítico.