Datos, calidad y series · Última actualización: 2026-01-27

Timestamps: UTC, zonas horarias y desfases: señales tempranas

Los timestamps fallan de forma traicionera: primero “solo” te desplazan una hora una gráfica… y cuando te quieres dar cuenta, tienes máximas diarias mal puestas, lluvia diaria partida en dos, y un panel que parece una película de terror 😅

Aquí van señales tempranas (rápidas y muy prácticas) para detectar problemas de UTC/local, cambio de hora y desfases antes de que exploten.

Este artículo forma parte del tema Datos de calidad en WikiMeteo.es, donde priorizamos operar sin autoengaños.

1. Qué entendemos por “señales tempranas”

Son patrones que aparecen antes de que el error sea obvio. No prueban el fallo por sí solos, pero te dicen: “ojo, revisa timestamps YA”.

2. Señales tempranas en un panel (lo que canta a distancia)

2.1 “Último dato” llega bien… pero la cadencia se degrada

  • Señal: el panel dice “último dato hace 30s”, pero la cadencia tiene muchos deltas raros (60s, 120s, 5s, 180s…)
  • Por qué pasa: reconexiones, buffering, reintentos, ingest irregular
  • Riesgo: diarios/estadísticos se vuelven inestables aunque “parezca vivo”

2.2 Aumentan “out-of-order” sin razón clara

  • Señal: aparecen puntos fuera de orden (delta negativo) en días normales
  • Por qué pasa: backfill mal gestionado, reloj saltando, cola de mensajes
  • Riesgo: tus gráficas hacen dientes y tus agregados pisan datos

2.3 Duplicados “a ratos” (no solo en cambio de hora)

  • Señal: timestamps repetidos de forma intermitente
  • Por qué pasa: redondeo al minuto, reenvíos, logger que reintenta sin cambiar timestamp
  • Riesgo: promedios/rachas se inflan o se distorsionan

2.4 El “offset sospechado” es estable

  • Señal: offset cercano a +3600 o +7200 persistente
  • Por qué pasa: UTC/local interpretado al revés (clásico)
  • Riesgo: todo lo diario queda desplazado y “parece” meteorología rara

2.5 La “hora del máximo” se mueve día a día

  • Señal: la hora del máximo diario de radiación (o un proxy) se desplaza lentamente
  • Por qué pasa: drift del reloj del logger/RTC
  • Riesgo: te rompe ventanas y te mete errores silenciosos en extremos

3. Señales tempranas en series temporales (sin panel también se ve)

3.1 “Dientes de sierra” artificiales

  • Señal: un diente raro en una serie “suave” (presión, temperatura estable nocturna) sin explicación física
  • Pista: coincide con timestamps fuera de orden o duplicados

3.2 Bloques planos sospechosos

  • Señal: series con valores iguales durante demasiado tiempo (temperatura clavada, viento clavado)
  • Puede ser: sensor congelado… o pipeline redondeando/repitiendo el último valor con timestamps “bonitos”

3.3 “Saltos de día” raros en diarios

  • Señal: un día “pierde” lluvia y al siguiente “gana” de golpe, o máximas/mínimas raras sin apoyo
  • Puede ser: corte diario mal definido (UTC vs local) o DST aplicado dos veces

3.4 Acumulados que retroceden

  • Señal: acumulado de lluvia diario/mensual baja (retrocede) sin reset esperado
  • Pista: out-of-order + mezcla observedTime/ingestTime + resets del sensor

4. Señales específicas de UTC, DST y desfases

4.1 Firma de cambio de hora (DST)

  • Primavera: aparece un gap de ~3600s
  • Otoño: aparecen duplicados durante una hora

Si guardas en UTC canónico, esto no debería romper nada: el DST vive solo en la UI.

4.2 Eventos solares fuera de sitio

  • Señal: el pico de radiación “parece” a una hora absurda y además es consistente
  • Muy típico: offset fijo por UTC/local

4.3 Desfase entre sensores “acoplados”

  • Señal: lluvia fuerte pero humedad/temperatura/rebote de presión “llega” tarde (o antes)
  • Pista: distintos pipelines o timestamps en distintas fuentes con reglas diferentes

5. Ejemplos rápidos para no confundir meteorología con timestamps

5.1 Lluvia convectiva: pico real vs error

En convectiva hay picos reales muy bestias. Antes de “borrar” un pico, mira esto:

  • ¿Coincide con radar/descargas/vecinas?
  • ¿Hay flags temporales (gaps/out-of-order) en esa ventana?
  • ¿El acumulado sube de forma coherente o hay un salto aislado?

5.2 Viento: racha vs media

Puede parecer desfase y ser solo semántica de ventana (racha = máximo en 10 min). Si el panel temporal está OK, revisa metadatos antes de culpar al reloj.

6. Qué hacer en 5 minutos (respuesta operativa)

  1. Comprueba gaps/duplicados/out-of-order hoy
  2. Verifica si el almacenamiento es UTC canónico (si no, apúntalo como deuda técnica)
  3. Mira la hora del máximo diario (radiación si hay) para detectar offset/drift
  4. Si sospechas drift: revisa NTP/RTC y conectividad
  5. Si sospechas offset: revisa dónde se convierte la zona horaria (ideal: solo en UI)

7. Mini-checklist de señales (para pegar en el panel)

  • Cadencia irregular aunque “último dato” esté bien
  • Out-of-order > 0 sin backfill esperado
  • Duplicados fuera de DST
  • Offset estable ±3600/±7200
  • Hora del máximo diario deriva lentamente (drift)
  • Diarios con saltos raros (lluvia/temperatura) sin apoyo físico

8. Referencias y lecturas recomendadas

  • Met Office
  • WMO
  • NOAA