D/ DJANGO CON CRITERIO

UNIDAD 5 · DATOS Y TIEMPO REAL

Históricos, filtros y decimación

Reduce datos para gráficos sin confundir visualización con cálculo.

Ilustración: Muchos puntos, una vista legible
Muchos puntos, una vista legible

CAPÍTULO 6 · Los datos empiezan a llegar

El histórico crece más rápido que la pantalla

La ingesta puede continuar durante horas y días, pero una gráfica tiene un espacio limitado. Enviar todas las mediciones no garantiza que el usuario comprenda mejor el proceso; puede aumentar el tiempo de respuesta y ocultar lo relevante entre demasiados puntos. La pregunta útil es qué necesita observar en ese momento.

Aplicamos rangos de tiempo, filtros y técnicas de reducción apropiadas para la representación. Conservamos la diferencia entre los datos almacenados y los puntos que se muestran. El acceso sigue partiendo del conjunto autorizado, y las consultas deben poder sostenerse cuando el volumen crece. Las decisiones de paginación y optimización reaparecen bajo otra forma de presentación.

El usuario puede explorar el histórico con mayor claridad. Aun así, su trabajo no siempre termina dentro de SensorHub. Puede necesitar analizar información con otra herramienta o entregar un resultado. Para acompañarlo debemos permitir que los datos salgan con un formato y un alcance tan claros como los que exigimos cuando entraron.

Leer esta parte dentro del relato completo →

DEL RELATO A LA PRÁCTICA

Vamos a desarrollar esta decisión con su mapa, explicación, código y ejercicio.

MIRA · CONECTA · COMPRENDE

Muchos puntos, una vista legible

Muchos puntos, una vista legible1. Histórico: Conserva muestras completas; 2. Filtros: Elige intervalo y sensores; 3. Decimación: Reduce puntos para presentar; 4. Gráfico: Expone tendencia y detalle01HistóricoConserva muestras completas02FiltrosElige intervalo y sensores03DecimaciónReduce puntos para presentar04GráficoExpone tendencia y detalle

Las flechas resumen el recorrido conceptual. Los controles y dependencias se detallan debajo.

Selecciona una pieza para destacar su responsabilidad.

Leer la explicación del mapa
  1. Histórico. Conserva muestras completas
  2. Filtros. Elige intervalo y sensores
  3. Decimación. Reduce puntos para presentar
  4. Gráfico. Expone tendencia y detalle
Descargar gráfico SVG ↓

¿Para qué sirve?

Millones de puntos pueden saturar el navegador. El gráfico necesita una representación útil, no necesariamente cada fila.

El concepto, explicado

Primero limita sensor y rango de fechas. Después reduce los puntos enviados y publica metadata que indique la reducción.

El muestreo uniforme puede perder picos; min/max por ventana o algoritmos de forma preservan otras propiedades. Elige según la pregunta que el gráfico debe responder.

Implementación paso a paso

  1. Valida rango y máximo de días.
  2. Ordena por fecha y desempate.
  3. Elige una estrategia de reducción.
  4. Usa datos originales para cálculos y exportaciones que lo exijan.

Ejemplo en SensorHub

from math import ceil

def sample_uniform(rows, max_points=2000):
    if max_points < 2:
        raise ValueError("max_points debe ser >= 2")
    if len(rows) <= max_points:
        return list(rows)
    step = ceil((len(rows) - 1) / (max_points - 1))
    sampled = list(rows[::step])
    if sampled[-1] is not rows[-1]:
        sampled.append(rows[-1])
    return sampled

Cómo leer el ejemplo

  • Es una implementación pedagógica en memoria, con primer y último punto.
  • El paso con ceil evita factor 1 para 3999 puntos con objetivo 2000.
  • Para grandes volúmenes reduce en SQL o por ventanas sin materializar todas las filas primero.

Error habitual

Garantizar cantidad de puntos no garantiza conservar extremos. No calcules alarmas usando esta muestra.

05 / PRACTICAR

Tu turno

Construye una serie con un pico estrecho entre puntos seleccionados.

Ver solución orientativa

Observa si se pierde el pico y explica por qué una estrategia min/max por ventana sería más apropiada para detectar extremos.

Cómo sabes que funciona

  • Se respeta el límite de salida.
  • La interfaz avisa cuando muestra datos reducidos.

CONTINUAR LA EXPERIENCIA

El siguiente paso del recorrido:

Exportaciones CSV y reportes →Continuar en modo relato