Registro completo de criterios, umbrales y decisiones aplicadas al procesar los datos de la estación ERNO (RUOA), para que cualquier persona con formación en estadística de calidad del aire o monitoreo atmosférico pueda auditar, reproducir o cuestionar cada resultado mostrado en el visor público.
Los datos provienen de la estación ERNO (campus de la Universidad de Sonora, Hermosillo, Sonora; 29.0814° N, 110.9706° O,
154 msnm), operada por el Instituto de Geología de la UNAM como parte de la Red Universitaria de Observatorios Atmosféricos (RUOA). Se descargan los
archivos CSV mensuales que la RUOA publica para esta estación, tanto a nivel horario como a nivel por minuto,
sin ninguna modificación de los valores reportados por el equipo — el parser (RUOAParser.php) solo
mapea columnas por nombre de encabezado y convierte tipos, nunca altera un valor ni una bandera.
Se mantienen dos tablas independientes:
| Tabla | Granularidad | Uso |
|---|---|---|
erno_calidad_aire_horario | 1 fila/hora | Todas las gráficas, promedios, NowCast y el índice AIRE Y SALUD de esta página. |
erno_calidad_aire_minuto | 1 fila/minuto | Solo para auditoría forense (sección 4) — nunca alimenta directamente ninguna gráfica ni promedio. |
Cada lectura trae un valor numérico y una bandera de calidad propia de la RUOA:
OK (confiable), BDL (bajo el límite de detección), OR (fuera de rango del
instrumento) u OS (equipo fuera de servicio). Ninguna bandera se reinterpreta ni se sustituye por
cero o por la mitad del límite de detección — un dato sin bandera OK simplemente no entra al
promedio en modo Limpio.
Bruto: valor tal cual, sin filtrar por bandera. Es literalmente lo que reportó el
dataloguer de la estación, incluyendo lecturas que la propia RUOA marcó como no confiables.
Limpio: CASE WHEN bandera = 'OK' THEN valor ELSE NULL END, y adicionalmente
NULL si la hora está en la lista de excepciones manuales (sección 4-5). Es el modo por default del
visor público y el único que alimenta el índice AIRE Y SALUD / NowCast.
La expresión SQL exacta vive en agregados.php::erno_valor_expr() y se reutiliza sin variación en
absolutamente todos los cálculos de la página (series, boxplot descontinuado, calendario, correlación, NowCast) —
no hay una versión distinta del filtro para cada gráfica.
Un promedio calculado sobre muy pocas horas no representa el periodo que dice representar. Caso documentado: el promedio de PM2.5 de agosto 2019 salía de 3 horas de 744 posibles (0.4% del mes) — esas 3 horas resultaron ser reales (ver sección 5), pero el problema de fondo — un puñado de datos disfrazado de promedio mensual — se repite en más de 60 meses distintos a lo largo del histórico, sobre todo en SO2 (completitud general ≈15%).
Regla aplicada (ERNO_HORAS_MINIMAS_CONFIABLE = 72, en agregados.php):
cualquier mes con menos de 72 horas válidas (≈3 días) se trata como NULL — igual que un mes sin
ningún dato — en vez de mostrar un promedio numéricamente "sólido" que no lo es. Esto se aplica de forma
idéntica a la serie mensual, el mapa de calor mes×año, el promedio por mes-calendario, y en consecuencia a los
"datos curiosos" (año/mes con más contaminación) que se derivan de esos mismos números.
Adicionalmente, un año necesita al menos 3 meses confiables (no solo 1) para poder competir por
"año con más/menos contaminación" — evita la misma trampa estadística a escala anual (ver
index.php::MESES_MINIMOS_PARA_COMPARAR_ANIOS).
La bandera OK de la RUOA certifica que un valor está dentro del rango operativo esperado del
instrumento — no certifica que la trayectoria del valor sea físicamente plausible. Un sensor puede fallar
de forma que produzca números individualmente "razonables" pero que, vistos minuto a minuto, muestran un patrón
que el aire real nunca produce (valor clavado en el mismo número por muchos minutos seguidos, seguido de una
rampa perfectamente lineal; o un canal saturado reportando cientos o miles de unidades fuera de cualquier física
atmosférica posible). Esta sección documenta cómo se detectan esos casos.
Hermosillo no tiene ninguna fuente conocida que explique cruzar los siguientes techos — no hay una crisis
histórica de ozono como la Ciudad de México de los años 90, no hay fundidoras de SO2 junto a la estación, etc.
Por lo tanto, toda hora OK que cruce el techo se excluye del modo Limpio, sin necesidad de
evidencia adicional:
| Contaminante | Techo (excluye si se supera) | Horas excluidas |
|---|---|---|
| Ozono (O₃) | 150 ppb | 55 |
| Dióxido de Azufre (SO₂) | 50 ppb | 26 |
| Dióxido de Nitrógeno (NO₂) | 100 ppb | 22 |
| Óxido de Nitrógeno (NO) | 200 ppb | 320 |
| Monóxido de Carbono (CO) | 15 ppm | 3 |
Hermosillo sí tiene tormentas de polvo reales (documentadas hasta ~490 µg/m³ de PM10 en esta misma base de
datos) y puede recibir humo de incendios forestales cercanos, así que un valor horario alto no es, de
entrada, sospechoso. Para PM10 y PM2.5 candidatos (PM10 > 300 µg/m³ u PM25 > 150 µg/m³ en una hora
OK) se revisan los 5,548,409 registros por minuto de esa hora
contra cuatro criterios; basta con que se cumpla uno para excluir la hora:
| # | Criterio | Umbral exacto | Justificación |
|---|---|---|---|
| a | Valor negativo del propio canal | cualquier minuto < 0 en esa hora | Una concentración negativa es físicamente imposible bajo cualquier circunstancia. |
| b | Salto imposible entre minutos | PM10: >200 µg/m³/min · PM25: >150 µg/m³/min | La difusión atmosférica no permite ese cambio en 60 segundos; sí es típico de un instrumento recalibrando o reiniciando. |
| c | Falla generalizada del equipo | ≥50% de los minutos con mayoría de los otros 6 canales en OR/OS | Cuando casi todos los canales caen a la vez, es la estación completa fallando, no un evento atmosférico selectivo. |
| d | Canal "hermano" (PM10↔PM2.5) en magnitud extrema | <-50 o >600 en ≥25% de los minutos de la hora | PM10 y PM2.5 comparten equipo físico; que uno reporte una magnitud imposible mientras el otro "sube" es evidencia fuerte de falla cruzada, incluso sin saltos grandes en el propio canal candidato. |
El criterio (d) se agregó en una segunda ronda de auditoría, después de encontrar que el criterio (b)+(c) por sí solos no detectaban fallas que suben de forma gradual (no de un salto) mientras solo un canal hermano (no la mayoría de los 6) se rompe. Casos que sustentan este criterio:
OK todo el tiempo — un patrón consistente con una tormenta de
polvo real. La bandera PM2.5 (su hermano) mostraba valores negativos moderados (~-24) en la misma ventana, pero
de magnitud demasiado pequeña para cruzar el umbral (d); se interpretó como una falla menor y aislada del
sensor PM2.5, no evidencia contra el PM10 candidato.
Total: 487 horas excluidas de
91,742 horas en la base (0.531%).
Esta lista se lee en vivo de excepciones_calidad.php — nunca es una copia fija, así que siempre
coincide exactamente con lo que hace el sitio en este momento.
Implementada exactamente como la define el numeral 5.2.5.3 y el Anexo A de la NOM-172-SEMARNAT-2023 (DOF 25/01/2024) — el método que en Estados Unidos se conoce como NowCast (EPA-OAQPS). Solo se calcula para PM10 y PM2.5, que es para lo que la norma lo define; O3/NO2/SO2 usan promedio de una hora y CO un promedio móvil de 8 horas (Tabla 3 de la NOM), no NowCast.
Donde i=1 es la hora más reciente y i=12 la más antigua de la ventana;
W = max(0.5, w) con w = 1 - (Cmax - Cmin)/Cmax calculado sobre las horas válidas de la
ventana; y FA (factor de ajuste) = 0.694 para PM2.5, 0.714 para PM10 — un factor que la primera
implementación de esta página omitió por error (ver bitácora, sección 9) y que se corrigió tras revisar el PDF
oficial de la norma proporcionado para esta auditoría.
Requisito de completitud (único que exige la norma): datos para al menos 2 de las 3 horas más recientes de la ventana de 12. No se exige un mínimo de 8 de 12 horas — ese requisito pertenece a la versión original de EPA y se quitó de esta implementación al no encontrarse en el texto de la NOM-172-SEMARNAT-2023.
Categoría diaria: se asigna con el NowCast máximo del día, no un promedio. Corrección (revisión técnica interna): una versión anterior de este documento atribuía este criterio a la Tabla 3 de la norma ("Máximo de los promedios... registrados en el día") — esa frase existe en la Tabla 3, pero aplica a CO/O3/NO2/ SO2, no a partículas. La fila de PM10/PM2.5 en esa misma tabla especifica "Promedio de 24 horas" como reporte diario oficial, y el numeral 5.3 de la norma es explícito: "el nivel de riesgo a la salud... con respecto a PM10 y PM2.5 está referido al promedio de 24 horas, el promedio móvil ponderado de 12 horas [NowCast] es una aproximación a éste y al final del día pueden no empatar exactamente... se usa con un carácter preventivo para informar de manera oportuna". Es decir: el NowCast máximo diario que usa este visor es un indicador preventivo y complementario propio de ASGA (refleja el peor momento del día, útil para decisiones de salud en tiempo real), no una transcripción del estadístico oficial de 24 horas que la norma usa para el reporte diario formal de partículas — ambos son legítimos, pero no son el mismo número y no deben confundirse.
Con las 12 concentraciones de PM2.5 del ejemplo oficial (50, 80, 75, 90, 82, 53, 64, 74, 21, 10, 16, 13 µg/m³,
de la hora más antigua a la más reciente): rango = 90-10 = 80, w = 1-80/90 = 0.11 ≤ 0.5 → W = 0.5. Suma
ponderada = 34.8193, suma de pesos = 1.9995 → promedio = 17.4139. Con FA = 0.694: 17.4139 × 0.694 = 12.09 →
redondea a 12 µg/m³, idéntico al resultado publicado en el Anexo A del PDF oficial. Esta implementación
reproduce ese resultado exacto (ver agregados.php::erno_calcular_nowcast()).
Tablas 4-9 de la NOM-172-SEMARNAT-2023. Los contaminantes en ppm de la norma (O3, NO2, SO2) se muestran aquí convertidos a ppb (×1000) para coincidir con las unidades que usa el resto de esta página; CO y las partículas ya usan las mismas unidades en ambos lados. PM10/PM2.5 usan la columna de la norma vigente "a partir de enero de 2026". El NO no tiene banda propia — la norma solo clasifica NO2 entre los óxidos de nitrógeno.
| Categoría | Color oficial (RGB) | O3 (ppb, 1h) | NO2 (ppb, 1h) | SO2 (ppb, 1h) | CO (ppm, 8h móvil) | PM10 (µg/m³, NowCast) | PM2.5 (µg/m³, NowCast) |
|---|---|---|---|---|---|---|---|
| Buena | #00E400 | <58 | <53 | <35 | <5.00 | <45 | <15 |
| Aceptable | #FFFF00 | 58-90 | 53-106 | 35-75 | 5.00-9.00 | 45-50 | 15-25 |
| Mala | #FF7E00 | 90-135 | 106-160 | 75-185 | 9.00-12.00 | 50-132 | 25-79 |
| Muy mala | #FF0000 | 135-175 | 160-213 | 185-304 | 12.00-16.00 | 132-213 | 79-130 |
| Extremadamente mala | #8F3F97 | >175 | >213 | >304 | >16.00 | >213 | >130 |
Todas las visualizaciones de index.php se construyen a partir de las mismas reglas descritas en
las secciones 1-7 (mismo filtro de modo, mismo umbral de completitud, mismas exclusiones). Esta sección
documenta la operación estadística exacta detrás de cada una, para que se pueda distinguir qué tipo de
estadístico se está observando en cada caso.
Media aritmética simple de las concentraciones horarias válidas, agrupadas por mes calendario (año-mes). Un mes solo se grafica si tiene al menos 72 horas válidas (sección 3); si no, el punto queda vacío, sin interpolación. Es una media no ponderada por hora del día ni por día de la semana: si dentro de un mes el equipo solo registró horas de la tarde, el promedio de ese mes reflejaría únicamente esas horas. Esta sensibilidad al patrón de muestreo horario dentro del mes es precisamente la limitación que NowCast (sección 6) está diseñado para mitigar en el caso de partículas, al ponderar por recencia dentro de una ventana fija de 12 horas en vez de promediar de forma indiscriminada un mes completo.
Se agrupan todas las horas válidas del periodo seleccionado por su hora del día (0 a 23), sin importar en qué
fecha ocurrieron, y se calcula la media aritmética de cada grupo. Es un ciclo diurno compuesto
(composite diurnal cycle), técnica estándar en climatología atmosférica para aislar el patrón
intradiario promedio — asociado a fuentes con ciclo solar o antropogénico bien establecido, como la
fotoquímica del ozono (que requiere radiación solar) o el tráfico vehicular en horas pico — separándolo de la
variabilidad día a día. No se aplica el umbral de 72 horas a cada hora individual porque, para periodos largos
(p. ej. el histórico completo), cada punto agrupa del orden de miles de observaciones; para periodos cortos
(un mes específico) el tamaño de muestra detrás de cada hora puede ser bajo, y queda disponible como
horas_validas en la respuesta de la API para quien necesite auditarlo.
Misma operación que 8.2, agrupando por día de la semana en vez de por hora. Permite explorar si existe un patrón asociado a la actividad semanal (menor tránsito vehicular los fines de semana, por ejemplo), análogo al weekend effect documentado en la literatura de calidad del aire para ozono y óxidos de nitrógeno en zonas urbanas (Blanchard & Tanenbaum, 2003; Marr & Harley, 2002). Esta página únicamente reporta la media observada por día de la semana en Hermosillo; no se afirma ni se descarta que el mecanismo químico descrito en esa literatura aplique aquí sin un análisis dedicado adicional.
Es la misma serie mensual de 8.1, reproyectada en una cuadrícula año (fila) × mes (columna). La escala de color es secuencial y se normaliza de forma lineal entre 0 y el valor máximo observado dentro del periodo actualmente seleccionado — no es una escala fija entre contaminantes ni entre periodos. En consecuencia, el color de una celda solo es comparable contra otras celdas de la misma vista; para comparar magnitudes entre contaminantes o periodos distintos debe usarse el valor numérico mostrado, no el color.
Año con más/menos: media aritmética de los promedios mensuales confiables de ese año (no de las horas individuales); un año requiere al menos 3 meses confiables para entrar a la comparación (sección 3), evitando que un año con cobertura mínima domine el extremo por tener, casualmente, un mes con concentraciones altas.
Mes del año más recurrente: el mes calendario (enero a diciembre) con la media aritmética más alta, calculada sobre todas las horas válidas de ese mes calendario a través de todos los años del histórico — un ciclo estacional compuesto (composite seasonal cycle), análogo a 8.2 pero con agrupación mensual en vez de horaria.
Día de la semana y hora del día: el valor máximo de las series 8.3 y 8.2, respectivamente.
Ver sección 6 para la fórmula. El desglose "días por categoría, mes a mes" es un conteo de frecuencias: para cada día del periodo se calcula su NowCast máximo (sección 6), se clasifica según las bandas de la sección 7, y se tabula cuántos días de cada categoría hay por mes calendario — un histograma categórico apilado, no una medida de tendencia central.
Esta sección cruza el histórico de ERNO (modo limpio) con datos reales de precipitación y temperatura de la
estación climatológica CONAGUA-SMN 26066 "Palo Verde" (Hermosillo, 29.08°N -110.90°O), públicos y sin
registro en smn.conagua.gob.mx, guardados en la tabla clima_diario. Cobertura
utilizada: 2016-2025 (2012-2015 no está disponible en esa estación).
| Patrón | Cómo se calcula |
|---|---|
| Temporada de lluvias vs. seca | Promedio de PM10/PM2.5 en jul-sep (monzón de Sonora) contra el resto del año, ambos en modo limpio. Prueba t de Welch sobre promedios diarios. |
| El día que llueve | Promedio diario de PM10/PM2.5 en fechas con ≥5mm de lluvia registrada ese día vs. fechas con 0mm. Prueba t de Welch sobre promedios diarios. |
| Calor y ozono | Correlación de Pearson entre temperatura máxima diaria y O3 promedio diario. |
| Fechas festivas | Promedio de PM10/PM2.5 en Año Nuevo (31 dic/1 ene), Independencia (15-16 sep) y Navidad (24-25 dic) contra el promedio del resto del mismo mes (mismos años) — no contra el promedio general del año. Prueba t de Welch sobre promedios diarios. Ver desglose completo abajo. |
La significancia estadística se calcula contra el valor crítico real de la distribución t de Student
según los grados de libertad de cada prueba (función asga_t_critico() en
includes/estadistica_asga.php, vía la función beta incompleta regularizada) — no una aproximación
normal fija. Una versión anterior de este archivo usaba |t|>1.96 fijo, descrito entonces (incorrectamente)
como "más conservador" que el valor exacto; una revisión técnica interna encontró que es al revés: el valor
crítico real de Student siempre es mayor a 1.96 para n finito (2.78 en df=4, 2.26 en df=9, converge a 1.96 solo
cuando n→∞), así que el umbral fijo era más permisivo de lo que su propio comentario afirmaba, y podía marcar
como "significativo" algún resultado de muestra chica que no lo era — ver el caso concreto en la sección 9.2.
Un punto de rigor adicional: la prueba t se calcula siempre sobre promedios diarios, nunca sobre horas
individuales sueltas. Las 24 lecturas de
un mismo día están fuertemente autocorrelacionadas (si a las 8am hay polvo, es muy probable que a las 9am
también) — tratar cada hora como una observación independiente infla artificialmente el tamaño de muestra "n" y
puede marcar como "significativo" algo que en realidad no lo es. Esta corrección se aplicó tras una revisión:
la primera versión de "Fechas festivas" comparaba horas contra el promedio general del año y usaba n en cientos
de horas, lo que sobrestimaba la significancia de varias diferencias. Estos son patrones agregados sobre el
histórico completo, no pronósticos ni relaciones de causalidad comprobada: correlación no implica causa, y una
sola estación meteorológica no captura microclimas dentro de Hermosillo.
Dos confusores adicionales, señalados en una revisión técnica interna: (1) "Temporada de lluvias vs. seca" atribuye la caída de PM10 al lavado por lluvia, pero el grupo "seca" agrupa invierno (inversión térmica, ver 9.2) y primavera — temporada de quema de rastrojo/gavilla post-cosecha en el Valle del Yaqui y la Costa de Hermosillo, una fuente de PM10/PM2.5 documentada y sancionada en la región — sin distinguir entre ambas causas de por qué "seca" sale más contaminada. (2) "Calor y ozono" correlaciona temperatura máxima diaria contra el promedio de O3 de 24 horas; la norma evalúa O3 oficialmente por promedio de 1 hora (Tabla 6) y el pico fotoquímico que responde al calor es vespertino, así que promediar el día completo diluye la señal — es posible que la correlación real (contra el máximo horario diario) sea más fuerte que el r=0.226 aquí mostrado.
El hallazgo de esta comparación es que PM10 baja de forma significativa en días de lluvia (−30.9%) pero PM2.5 no (+4.4%, no significativo, n=44 días de lluvia vs. 1,611 secos). Esto no es solo "ruido estadístico" — es consistente con investigación específica sobre el origen de las PM2.5 en Hermosillo. La Dra. Diana Meza-Figueroa (Departamento de Geología, Universidad de Sonora) documenta que buena parte del PM2.5 de la ciudad no es polvo mineral suelto (el que domina el PM10 y que la lluvia sí arrastra con eficacia), sino compuestos de otro origen: "compuestos provenientes de material de pintura en vehículos, catalizadores de los carros" y "plaguicidas —con polvos muy finos— de los campos agrícolas de la Costa de Hermosillo" que el viento transporta hacia la ciudad (UNISON, Vinculación y Extensión, UNISON, Dirección de Comunicación). Además, señala que "hay una incidencia de partículas PM2.5 todo el año en Hermosillo" — es decir, un componente crónico y no puramente estacional/superficial. Fuentes de combustión vehicular y polvo agrícola transportado por viento desde fuera de la ciudad no se comportan como el polvo local resuspendido por tráfico y viento: no dependen tanto de si llovió anoche en Hermosillo, así que no sorprende que la lluvia local no las reduzca con la misma eficacia que al PM10. Un hallazgo independiente y reciente de la Universidad de Sonora (Domínguez Hurtado, Cirett Galán y Torres Peralta, 2025, EPISTEMUS 19(38), DOI: 10.36790/epistemus.v19i38.410) usando una red de sensores distinta (REMAH) en la zona noroeste de Hermosillo, encuentra que "las concentraciones más elevadas de [PM2.5] ocurren predominantemente durante las estaciones de otoño e invierno" — consistente con nuestro propio hallazgo de que el aire se limpia en temporada de lluvias (jul-sep) pero de forma más marcada en PM10 que en PM2.5, y con el confusor de inversión térmica invernal descrito en la sección 9.2.
Año Nuevo, Navidad e Independencia se seleccionaron por su tradición de pirotecnia/fogatas en México, pero el resultado real de los datos es más matizado que "las fechas festivas contaminan más" — por eso se documenta aquí con el detalle completo en vez de solo la conclusión en la página pública.
| Fecha | Contaminante | Promedio fecha vs. resto del mes | Diferencia | ¿Significativo? |
|---|---|---|---|---|
| Año Nuevo | PM2.5 | 16.9 vs. 16.1 µg/m³ (n=15 días) | +5.0% | No |
| Año Nuevo | PM10 | 39.1 vs. 48.7 µg/m³ (n=20 días) | −19.7% | Sí (baja) |
| Navidad | PM2.5 | 22.5 vs. 16.9 µg/m³ (n=10 días) | +33.1% | No* |
| Navidad | PM10 | 44.9 vs. 51.1 µg/m³ (n=18 días) | −12.1% | No |
| Independencia | PM2.5 | 10.5 vs. 10.6 µg/m³ (n=10 días) | −0.9% | No |
| Independencia | PM10 | 28.0 vs. 27.2 µg/m³ (n=18 días) | +2.9% | No |
* Navidad/PM2.5 pasaba esta prueba en una versión anterior de este documento, que usaba un valor crítico fijo
de |t|>1.96 para decidir significancia. Una revisión técnica interna encontró que ese umbral fijo es válido
solo cuando n→∞ — para n=10 (Navidad) el valor crítico real de Student es ≈2.24, no 1.96, y el estadístico
observado (t≈2.07) queda por debajo de ese valor real. estadistica_asga.php ahora calcula el valor
crítico exacto según los grados de libertad de cada prueba en vez de una aproximación fija — ver el detalle en
la introducción de esta sección 9.
Con esa corrección, ningún resultado de PM2.5 en fecha festiva pasa la prueba estadística — ni siquiera el +33.1% de Navidad, que sigue siendo el más grande numéricamente pero no alcanza el umbral con solo 10 días de muestra repartidos en ~12 años. Esto no significa que la pirotecnia no tenga efecto en Hermosillo: la Comisión Ambiental de la Megalópolis (CAMe) atribuye explícitamente los picos de PM2.5 de fin de año en el Valle de México a "pirotecnia, quema de materiales y combustibles" (gob.mx/comisionambiental) — un mecanismo real y documentado, aunque esa cifra es de otra cuenca (Valle de México, no Hermosillo). Significa que, con la muestra disponible aquí, esta base de datos específica no tiene poder estadístico suficiente para confirmarlo por sí sola; con más años de datos ese mismo patrón podría, en principio, volverse significativo.
El único resultado que sí es estadísticamente sólido en esta comparación es que Año Nuevo tiene PM10 más bajo (−19.7%, significativo, n=20 días) — lo contrario de lo que predeciría un aumento de movilidad/tráfico: hay menos polvo grueso resuspendido, consistente con menos actividad vial y de construcción en día festivo. Esto es evidencia en contra de que la movilidad/mayor gente en la calle sea el motor principal de cualquier posible aumento de PM2.5 en estas fechas: si hubiera más autos circulando esperaríamos también más PM10, no menos.
Confusor climático — inversión térmica invernal. Año Nuevo y Navidad caen en la temporada fría y seca de
Sonora (temperatura mínima nocturna promedio ≈6°C en la estación 26066, contra ≈22°C en septiembre). En cuencas
desérticas, las noches despejadas y frías de invierno favorecen la inversión térmica — una capa de aire
cálido que actúa como tapa e impide que el aire frío y denso cerca del suelo se mezcle verticalmente,
concentrando los contaminantes cerca de la superficie independientemente de cuánto se queme esa noche. Este
fenómeno está documentado para Hermosillo en específico en invierno
(El Imparcial, feb. 2022)
y es un mecanismo atmosférico general bien descrito en la literatura
(Copernicus/CAMS,
Utah State University).
No se cuenta con datos de viento ni presión en clima_diario para calcular directamente la fuerza
de la inversión de cada noche — la temperatura mínima y el rango térmico diario (diferencia entre máxima y
mínima, otro proxy estándar de cielo despejado/aire calmo) son los únicos indicadores disponibles, y se
reportan en la tabla de arriba como contexto, no como prueba cuantitativa de inversión. Esta es la razón por la
que el grupo de control de cada fecha festiva es el resto del mismo mes (mismo régimen climático/
estacional) y no el promedio del año completo: así la diferencia medida ya excluye el efecto de temporada y
aísla lo que es propio de ese día específico.
Independencia (15-16 sep) no muestra cambios en ningún contaminante, lo cual es consistente con caer en pleno monzón de Sonora — atmósfera húmeda e inestable, sin inversión térmica, mejor dispersión — y con no tener en Hermosillo una tradición de fogatas/pirotecnia doméstica comparable a Año Nuevo o Navidad.
En resumen: los datos no permiten separar por completo pirotecnia, movilidad e inversión térmica como causas — ninguna base de datos de PM agregado sola lo permite. Con la prueba estadística correcta aplicada consistentemente, ningún aumento de PM2.5 en fecha festiva es estadísticamente significativo con la muestra disponible (10 a 20 días por fecha) — Navidad (+33.1%) es el más grande numéricamente pero no pasa el umbral. Lo único sólido es que PM10 baja en Año Nuevo, consistente con menos tráfico/construcción ese día. El patrón general (temporada fría/seca con niveles más altos, monzón con niveles más bajos) sigue siendo coherente con inversión térmica como factor de fondo en las fechas de invierno — pero esta sección ya no afirma un efecto adicional de combustión confirmado encima de eso.
erno_calidad_aire_minuto.| Fecha | Cambio |
|---|---|
| 2026-08-03 | Auditoría inicial: umbral de completitud n≥72h; exclusión de gases por techo físico (O3/SO2/NO2/NO/CO); exclusión de partículas por criterios (a)-(c); caso PM2.5 agosto 2019 investigado a mano. |
| 2026-08-03 | NowCast implementado (primera versión, sin factor de ajuste). |
| 2026-08-03 | Corrección contra NOM-172-SEMARNAT-2023 (PDF oficial proporcionado): se agrega el factor de ajuste (FA=0.694/0.714, faltante) y se corrige el requisito de completitud (2 de 3 horas recientes, no 8 de 12). Bandas de categorización reemplazadas por las 5 oficiales (Tablas 4-9 de la norma) con colores RGB exactos (Tabla 11). |
| 2026-08-03 | Segunda ronda de auditoría de partículas: se agrega el criterio (d) — canal hermano PM10↔PM2.5 en magnitud extrema — tras encontrar una inversión estadística (más días "Extremadamente mala" que "Muy mala") tras el máximo de NowCast de 5 días. Confirmados 2024-10-04, 2015-07-02 y 2022-02-09 como fallas de equipo adicionales. |
| 2026-08-03 | Visor de datos crudos (tabla de solo lectura, sin descarga) y esta memoria de cálculo agregados. |
| 2026-08-04 | Se agrega la sección 8 (metodología estadística de cada gráfica del visor público). Verificado a mano el caso restante de PM10 2015-07-23 (PM2.5 llegó a 1,549 µg/m³ marcado "Fuera de rango" en la misma ventana, confirma la exclusión). Corregido el desbordamiento horizontal de las tablas de este documento en pantallas angostas. |
| 2026-08-06 | Se agrega la sección 9 (Patrones y Tendencias): correlación con clima real de la estación CONAGUA-SMN 26066. Hallazgo: PM2.5 sube +99.9% en Año Nuevo y +78.2% en Navidad (pirotecnia); PM10 baja 38.8% en temporada de lluvias (lavado atmosférico); correlación temperatura-ozono r=0.226, débil pero significativa. |
| 2026-08-04 | Corrección metodológica de "Fechas festivas": se detectó pseudoreplicación (la prueba t corría sobre horas individuales autocorrelacionadas en vez de promedios diarios independientes, inflando la significancia) y un grupo de control mal definido (promedio del año completo en vez del resto del mismo mes, que mezclaba el efecto de temporada con el de la fecha). Recalculado con promedios diarios y control same-month: el hallazgo real que sobrevive la prueba estadística es solo PM2.5 +33.1% en Navidad; Año Nuevo (+5.0%, n=15 días) e Independencia no son estadísticamente significativos. Se agrega la sección 9.2 con el desglose completo, la cita de CAMe (gob.mx/comisionambiental) para el mecanismo de pirotecnia, y el confusor de inversión térmica invernal (El Imparcial 2022; Copernicus/CAMS; USU) usando temperatura mínima y rango térmico como proxy, dado que no hay datos de viento/presión disponibles. |
| 2026-08-04 | Se agrega la sección 9.1: explicación mecanística de por qué PM2.5 no baja con la lluvia como PM10, citando investigación específica de Hermosillo de la Dra. Diana Meza-Figueroa (UNISON, Depto. de Geología) sobre el origen del PM2.5 local (pintura vehicular, catalizadores, agroquímicos de la Costa de Hermosillo transportados por viento, exposición crónica todo el año) y un hallazgo independiente de estacionalidad otoño-invierno publicado en EPISTEMUS 19(38) 2025 (Domínguez Hurtado, Cirett Galán y Torres Peralta, DOI 10.36790/epistemus.v19i38.410). |
| 2026-08-06 | Corrección estadística en includes/estadistica_asga.php: reemplazado el umbral fijo |t|>1.96 (descrito antes, por error, como "más conservador") por el valor crítico real de Student según grados de libertad, calculado con la función beta incompleta regularizada (Lanczos + fracción continua, sin dependencias externas). Efecto directo en esta página: el caso PM2.5/Navidad (t≈2.07, df≈9.58, crítico real≈2.24) deja de ser significativo — se corrigieron la tabla y la narrativa de la sección 9.2 y el resumen ejecutivo de la tarjeta pública en consecuencia. Ningún otro resultado del sitio cambió de signo (los casos con n grande, como lluvia_seca o temp-ozono, son robustos a esta corrección por tener grados de libertad altos donde el valor crítico converge a ~1.96 de todas formas). |
| 2026-08-05 | Revisión técnica interna de la sección 9 (Patrones y Tendencias): corregida la cita normativa de "Categoría diaria" en la sección 6 — la frase de la Tabla 3 citada ahí aplica a CO/O3/NO2/SO2, no a PM10/PM2.5 (que la norma reporta oficialmente por promedio de 24h); se reetiqueta el NowCast-máximo diario como indicador preventivo complementario propio de ASGA, no como transcripción de la norma. Se documentan además dos confusores no mencionados antes: quema agrícola estacional (Valle del Yaqui/Costa de Hermosillo) como causa adicional posible de la comparación lluvias-vs-seca, y el uso de promedio diario de O3 (en vez del máximo horario oficial) en la correlación calor-ozono, que puede estar subestimando esa correlación. |