Rechazo en la integración: elección del algoritmo y lectura de la Rejection Map
El «rechazo» (rejection) durante la integración es el proceso de descartar automáticamente, mientras se apilan varias imágenes, aquellos valores atípicos que no deberían estar ahí: estelas de satélite, motas blancas de rayos cósmicos, píxeles calientes residuales, los halos de estrellas demasiado brillantes, etcétera. Elegir el algoritmo de rechazo adecuado y saber leer la Rejection Map que produce es la clave para lograr una integración limpia. Este artículo ordena la lógica para elegir un algoritmo de rechazo y, además, cómo hay que leer exactamente esos dos mapas de rechazo que tan a menudo se pasan por alto.
La familia de algoritmos de rechazo
PixInsight ofrece varios algoritmos de rechazo durante la integración; la documentación oficial enumera a qué escenario se adapta cada algoritmo y merece mucho la pena leerla (ten en cuenta que este documento se publicó hace ya bastante tiempo y no cubre el algoritmo GESD, que se añadió más tarde).

A grandes rasgos se pueden dividir en dos categorías:
- La familia Sigma: rechazo de valores atípicos basado en la desviación estándar, por ejemplo Sigma Clipping, la versión mejorada Winsorized Sigma Clipping y Percentile Clipping. Su fundamento y sus matemáticas pertenecen al mismo sistema.
- GESD Test: se basa en el Grubbs’s test; su teoría y sus matemáticas son completamente distintas de las de los métodos basados en sigma. Es un algoritmo que se añadió relativamente tarde.
GESD frente a Sigma: ¿quién gana cuando hay pocos fotogramas?
Lo he comparado de verdad. Una vez tomé un conjunto de datos de solo 12 fotogramas y ejecuté a la vez GESD Test, Winsorized Sigma Clipping y el Sigma Clipping tradicional.

Doce fotogramas no cumplen, en realidad, el número recomendado para GESD ni para Winsorized Sigma y, sin embargo, en este conjunto concreto el GESD Test dio el mejor resultado. Pero conviene añadir una posdata: si se trata de datos en color y, encima, de pocos fotogramas, sigue siendo más adecuado usar Winsorized Sigma o Sigma. Así que no hay ningún algoritmo que sea «siempre el mejor»: depende de los datos.
GESD contra las estelas de satélite tenues
GESD tiene además una ventaja práctica. Antes, al integrar con la familia sigma, me topaba a menudo con estelas de satélite más tenues que no había manera de rechazar: aun con 17 fotogramas, tras la integración quedaba todavía parte de la estela, y este tipo de estela tenue no se presta a la manual selective rejection (pintarla de negro a mano).

Tras cambiar a GESD Test y ajustar adecuadamente los parámetros —además de dilatar (hacer crecer) la estela de satélite tenue—, conseguí rechazar una estela extremadamente tenue; y, en términos generales, la relación señal-ruido (S/N) de GESD es más alta que la del Sigma Clipping tradicional o el Winsorized Sigma Clipping. (Aun así, en la mayoría de los casos no te topas con este problema irresoluble usando la familia sigma; se trata de un caso extremo bastante particular.)
Un arma especial: Range Clipping
Además del rechazo estadístico de valores atípicos, hay otro recurso «a lo bruto» pero muy útil: Range Clipping.

Si tienes de esas imágenes con mala calibración de darks que muestran muchos puntos negros (por ejemplo, presentes en 10 fotogramas y ausentes en 5), a los algoritmos de rechazo normales les cuesta eliminar esos puntos negros a base de detectar valores atípicos. En ese caso puedes usar durante la integración el Range Low Clipping para eliminar por la fuerza todo punto negro que quede por debajo de cierto umbral. Es un recurso directo dirigido a un defecto concreto, complementario del rechazo estadístico.

Leer la Rejection Map
Cuando terminas de integrar con ImageIntegration o WBPP, además de la imagen final se generan dos mapas de rechazo: uno para la dirección de alta luminosidad (rejection high) y otro para la de baja luminosidad (rejection low). La mayoría de la gente ignora directamente estos dos, lo que en realidad desperdicia una información de diagnóstico muy útil.

Por lo general, en rejection low no hay mucho que ver; lo importante está en rejection high: aquí aparecen todas las interferencias que preferirías que «no salieran en la imagen final»: estelas de satélite, los halos de estrellas demasiado brillantes o hinchadas, trazas de objetos cercanos a la Tierra, y también píxeles calientes y motas blancas causadas por rayos cósmicos (los píxeles calientes suelo limpiarlos antes de la integración con Cosmetic Correction, así que aquí no hay muchos).
La forma más práctica de interpretar este mapa es esta: si un píxel que querías rechazar aparece en rejection high, significa que se eliminó con éxito; si no aparece aquí y, en cambio, permanece en la imagen integrada final (por ejemplo, una estela de satélite residual), significa que tus parámetros de rechazo no son suficientes, o que deberías cambiar de algoritmo.
Algunas preguntas frecuentes del tipo «¿descarto este fotograma?»
Una vez entendido el principio anterior, muchas de las dudas que atormentan a los principiantes tienen respuesta.
Una imagen con estrellas hinchadas, ¿la descarto para que no participe en la integración? Salvo que esté desenfocada, normalmente la dejo participar en la integración.

Al examinar rejection high verás que las partes de esas estrellas demasiado grandes o demasiado brillantes ya han sido eliminadas por el rechazo y no participaron en el cálculo de la integración; las estelas de satélites artificiales y los grumos blancos de rayos cósmicos caen igualmente en rejection high. Esta clase de trabajo mejor déjasela al software.
Hay una estela de satélite brillante que atraviesa el objetivo, ¿borro ese fotograma a mano? La respuesta es, de nuevo, que no hace falta.

Cómo hacerlo: si tienes pocos fotogramas, usa un algoritmo con mayor capacidad de rechazo (por ejemplo, la familia Sigma Clipping) y ajusta el parámetro Sigma High algo más estricto (por ejemplo, por debajo de 2,5). En un caso solo tenía 7 fotogramas, uno de los cuales tenía una estela de satélite cruzando el objetivo; cada fotograma importaba para la relación señal-ruido, así que, fijando los parámetros adecuados (sin usar los valores por defecto del software), dejé que el proceso de integración completara el rechazo de forma automática, y la estela rechazada con éxito aparece en rejection high. No desperdicies ni un solo píxel conseguido con tanto esfuerzo.
La excepción de la columna defectuosa: el rechazo no puede salvarla
Por último, añado una excepción que el rechazo no puede salvar: la columna defectuosa (defect column) de un CCD.

La columna defectuosa es demasiado oscura y recorre toda su longitud; empeñarse en eliminarla mediante rechazo cuesta demasiados píxeles buenos y aun así funciona mal. Lo correcto es crear primero un Defect Map para la cámara (tomando como ejemplo el CCD 16803 de «Latte», hay una columna defectuosa evidente en el centro del encuadre, más otras tres poco visibles), cargarlo con el proceso DefectMap y aplicarlo a los lights para reducir mucho el efecto de la columna defectuosa y, luego, dejar que el rechazo de la integración limpie el resto sin esfuerzo. Dicho de otro modo, el rechazo es la cuadrilla de limpieza del final, no una primera línea de defensa todopoderosa: los defectos que requieren una herramienta especializada necesitan, de todos modos, la herramienta adecuada primero.