本站提供正體中文版。切換到正體中文本站提供简体中文版。切换到简体中文This site is available in English.View in Englishこのサイトには日本語版があります。日本語で表示이 사이트는 한국어로도 제공됩니다.한국어로 보기Diese Website ist auch auf Deutsch verfügbar.Auf Deutsch ansehenQuesto sito è disponibile anche in italiano.Visualizza in italianoCe site est également disponible en français.Afficher en françaisEste site também está disponível em português.Ver em portuguêsDeze website is ook beschikbaar in het Nederlands.In het Nederlands bekijkenЭтот сайт также доступен на русском языке.Смотреть на русскомयह वेबसाइट हिन्दी में भी उपलब्ध है।हिन्दी में देखेंهذا الموقع متاح أيضًا باللغة العربية.عرض بالعربيةSitus ini juga tersedia dalam bahasa Indonesia.Lihat dalam bahasa IndonesiaBu site Türkçe olarak da mevcut.Türkçe görüntüleTa strona jest dostępna także po polsku.Wyświetl po polskuTrang web này cũng có phiên bản tiếng Việt.Xem bằng tiếng Việtاین وب‌سایت به فارسی هم در دسترس است.مشاهده به فارسی

La guía completa de WBPP: interfaz, másters de calibración y flujo de ejecución

Preprocesado y apilado2021.03Notas tempranas

Este artículo está recopilado a partir de notas tomadas entre 2021 y 2024. Algunas herramientas o flujos de trabajo se han actualizado desde entonces, así que tenlo en cuenta al leer; las interfaces, opciones y comportamientos según la versión que se mencionan aquí (como las versiones 2.1.2 y 2.5) reflejan el estado de aquel momento. En cuanto a los errores y bugs conocidos con los que te topes durante la ejecución, consulta el artículo aparte «Resolución de problemas de WBPP».

WBPP (WeightedBatchPreprocessing) es el script de PixInsight que ejecuta «calibración, registro e integración» de principio a fin de forma totalmente automática, y resulta asombrosamente cómodo. Estos últimos años ha cambiado de versión con frecuencia, y yo he ido escribiendo bastantes notas sueltas al respecto; este artículo las reúne en una explicación bastante completa, dividida en tres niveles: los conceptos fundamentales que apenas cambian de una versión a otra, el flujo de ejecución actual y algunos cambios importantes a lo largo de las versiones de estos años. Sea cual sea la versión que uses, si primero tienes los conceptos bien claros, no cundirá el pánico por mucho que cambie la interfaz.

Concepto fundamental 1: la imagen que WBPP integra es solo una vista previa

Este es el punto que más quiero plantear primero y, a la vez, el que más gente pasa por alto.

Yo mismo caí en la trampa: en una ocasión, tras usar Drizzle Integration, descubrí que los centros de las estrellas (las zonas sobresaturadas) se habían vuelto negros. Al investigarlo, resultó que el culpable era haber usado WBPP para hacer la integración.

Por cómodo que sea WBPP, respecto al máster light que integra automáticamente la postura oficial es rotundamente clara: es solo una cómoda vista previa de «el resultado alcanzable», que deberías descartar en cuanto termines, y nunca debería tratarse como producto final. Reproduzco a continuación el fragmento pertinente de la respuesta oficial en el foro:

The integrated image generated by WBPP is just a convenience preview of the achievable image, but it should always be deleted/ignored, and the integration should always be done manually with the registered frames. This is the only way to obtain an optimal integrated image with full control over the normalization, pixel rejection and noise reduction tasks.

El equipo oficial dijo incluso, medio en broma, que le gustaría repetir esta frase «n+1 veces, donde n ya tiende a infinito»: el máster light que produce WBPP no debería usarse con fines definitivos; es solo una vista previa, y el mejor resultado hay que obtenerlo mediante una Image Integration manual que optimice el rechazo de píxeles y la relación señal-ruido.

Así que mi costumbre es esta: con WBPP llego como mucho hasta el paso de «registrar las estrellas»; la integración de verdad se la devuelvo a una Image Integration manual. El enfoque correcto, desglosado en pasos —calibración (a cargo de WBPP), registro (Star Alignment) e integración (Image Integration)—, añade unos cuantos pasos de más, pero en cuanto algo va mal resulta mucho más fácil averiguar qué eslabón de la cadena se ha roto. Esto acabó convirtiéndose en mi convicción firme. También recomiendo mucho aquellos dos vídeos tutoriales de WBPP, muy detallados, de unos aficionados japoneses de los primeros tiempos, pero hay que añadirles la misma advertencia: toma el resultado de la integración solo como referencia.

Concepto fundamental 2: distingue qué archivos de la carpeta Master son los productos finales

Tras un pase completo de WBPP, la carpeta Master predeterminada acaba con un montón de archivos, y mucha gente no sabe distinguir cuál es el que realmente quiere. Vamos a aclararlo:

Esquema que distingue los distintos archivos de salida de la carpeta Master de WBPP

  • La imagen del recuadro rojo es el máster light ya integrado que buscas.
  • La imagen del recuadro amarillo es la imagen de referencia (Ref) de la Local Normalization, no el máster light; no las confundas.
  • Las imágenes sin recuadro son los másters de calibración, que aquí incluyen el máster flat, el máster bias y el máster dark.

(Dicho esto, y en línea con la sección anterior, este «máster light» sigue teniendo carácter de vista previa de WBPP; si quieres hacerlo bien, deberías volver a integrarlo tú mismo.)

El flujo actual: el programa completo para una cámara de color

WBPP va de un tirón con un solo clic, pero entre bastidores hay en realidad una larga serie de procesos automatizados que se ejecutan en orden. Tomando como ejemplo una cámara de color (OSC), el orden de ejecución completo es el siguiente:

Pantalla que muestra el orden de ejecución completo del programa completo para una cámara de color en WBPP

  1. Calibration File Integration: crear los másters de calibración
  2. Calibration: calibrar los lights
  3. Cosmetic Correction: eliminar píxeles calientes o líneas defectuosas
  4. Debayer: debayering (separar el RGB)
  5. Measurements: medir los lights y asignarles pesos
  6. Reference frame selection: elegir la imagen de referencia para el registro
  7. Plate solving reference frames: hacer plate solving (resolución astrométrica) de las imágenes de referencia
  8. Registration: registrar las estrellas
  9. LN reference generation: generar la imagen de referencia de la Local Normalization
  10. Local Normalization: ejecutar la Local Normalization
  11. Integration: integrar los lights
  12. RGB Combination: recombinar los tres canales RGB

En términos más resumidos, también se puede condensar en ocho pasos: crear los archivos de imagen de calibración → calibración de la imagen → Cosmetic Correction → debayering (separación de los tres canales RGB) → registro de estrellas → Local Normalization → integración de la imagen → combinación de los tres canales RGB.

El flujo de preprocesado para cámara de color en versión resumida

Dos de estos pasos merecen unas palabras más: la separación RGB existe para vencer la dispersión cromática (cuando los bordes de las estrellas parecen tener colores distintos a cada lado), a costa de más tiempo de ejecución; y la Drizzle Integration, si la usas, no está aquí para ampliar la imagen, sino para evitar artefactos, así que solo tiene sentido cuando tienes suficientes frames con dither: por lo general, por debajo de 50 frames puedes prescindir de ella. Como apunte sobre cómo se percibe el tiempo en la práctica: una vez procesé 360 frames de 9 megapíxeles desde la calibración hasta la Drizzle Integration 1x, y aun así tardó más de una hora larga; con más resolución la cosa solo se pone más «emocionante».

Pantalla de ejecución de un pase del programa completo sobre 360 frames de 9 megapíxeles

Los másters de calibración: donde WBPP es listo

WBPP esconde no pocos detalles bien pensados en su manera de tratar los frames de calibración (flats, darks, bias, etc.), suficientes para dedicarles una sección propia.

Lo mejor es reconstruir los frames de calibración desde los archivos originales dentro de WBPP. No poca gente descubre que sus lights tienen problemas tras la calibración, y la causa principal suele ser que aplicaron «archivos Master hechos con otro software u otros procesos» (máster flat/bias/dark). Lo más seguro es meter los archivos originales de calibración en WBPP y dejar que reconstruya los Masters.

¿Pequeñas discrepancias en el tiempo de exposición? Déjaselo a Exposure tolerance. Una vez, un aficionado preguntó en el grupo: tomaba sus darks con el control de señal de Eqmod y, por problemas de latencia, sus darks de 5 segundos podían quedar en realidad entre 4,980 y 5,02 segundos, así que quería pasarse a capturar con NINA. Pues resulta que WBPP ya lo tenía previsto: los frames de calibración dentro de cierta diferencia de tiempo pueden asignarse al mismo grupo, y WBPP hace automáticamente el procesado que corresponde a los frames de calibración de un mismo grupo y los empareja de forma automática con los lights. Ese valor de tolerancia es precisamente la Exposure tolerance.

La configuración de Exposure tolerance (tolerancia de exposición) en WBPP

¿Imágenes tomadas en días distintos? Resuélvelas todas de una vez con Grouping Keywords. Tras una revisión, WBPP incorporó una función de agrupación, de modo que incluso imágenes tomadas en fechas distintas pueden meterse todas juntas y procesarse a la vez, con tal de que las clasifiques en Grouping Keywords mediante una palabra clave (la fecha, por ejemplo). En mi lote de archivos, por ejemplo, los flats eran distintos cada día, y aun así WBPP podía calibrarlos por separado según la fecha de forma automática, sin que yo tuviera que configurar a mano el emparejamiento de lights y flats para cada fecha distinta. Comodísimo.

Usar Grouping Keywords para agrupar y calibrar automáticamente por fecha

¿Solo quieres crear los másters de calibración? No hace falta ni meter lights. Este es un uso que mucha gente desconoce: sin ningún light presente, mete tus darks, bias, flats y flat darks en WBPP, y este, con astucia y siguiendo los pasos correctos, convertirá estos frames de calibración en másters de calibración y los volcará en la carpeta que le indiques, ahorrándote la molestia de fabricarlos a mano con toda clase de procesos distintos.

Cargar solo frames de calibración, sin lights, para que WBPP cree específicamente los másters de calibración

Opciones de la página Light y trucos para acelerar

La página Light de WBPP tiene una fila de opciones que puedes marcar según necesites. Por defecto, todo está sin marcar salvo subframe weighting.

Explicación de las distintas opciones de la página Light de WBPP

Dado que estos pasos se pueden activar o desactivar, surge una pregunta práctica: ¿cuánto tiempo se ahorra desactivando el procesado que no necesitas? Lo probé de verdad con un conjunto de datos de libre descarga procedente del extranjero —372 frames de 16 megapíxeles en total— y, tras quitar el procesado que no necesitaba, fue unas 7 u 8 veces más rápido (25 min 03 s frente a 03 min 30 s), mientras que la calidad de imagen solo se resintió ligeramente: en mi máquina local, alrededor de un 15 % de diferencia, y una vez comprimida y enviada por la red, prácticamente imperceptible. Para cuando vas contrarreloj o solo quieres echar un primer vistazo general, la compensación sale muy a cuenta.

Comparación del tiempo de ejecución antes y después de desactivar parte del procesado

En cuanto a qué pasos consumen más tiempo y cuáles conviene más desactivar, volveré sobre ello en el artículo «Resolución de problemas de WBPP».

Cambios de versión: esto llegó más tarde

WBPP ha añadido bastantes cosas en estos años. Voy a ordenar unos cuantos hitos importantes para que te resulte fácil compararlos con la versión que tengas en la mano:

Unas cuantas cosas de la versión 2.1.2. A partir de esta versión, hay tres puntos que merece la pena señalar: primero, que los lights den problemas tras la calibración suele deberse a que se colaron archivos Master hechos por fuera (ya lo comentamos); segundo, la Dark frame optimization se usa sobre todo cuando las duraciones del light y del dark no coinciden (por ejemplo, un light de 20 minutos con un dark de 30 minutos), da su mejor resultado con exposiciones largas y varios frames, y la opción solo aparece si haces clic en un archivo de light; tercero, quien usa CCD va viendo aparecer defects con el uso, sobre todo column defects (defectos de columna), que antes había que eliminar creando un defect map —algo muy laborioso—, y WBPP incorporó la Linear Pattern Subtraction para ayudar a lidiar con ello.

Opciones relacionadas con WBPP 2.1.2 y la Linear Pattern Subtraction

Execution Monitor (ventana de monitorización de la ejecución). Al actualizar a una versión más reciente, WBPP muestra durante la ejecución una ventana llamada WBPP Execution Monitor que te dice por qué paso va en cada momento y qué trabajos ha hecho, y cuyo contenido incluso puedes desplazar y arrastrar arriba y abajo. En versiones antiguas, aparte de quedarte mirando la console del momento, no había manera alguna de conocer el progreso: solo podías esperar a que todo terminara, o a que se detuviera por un error, para poder comprobar algo mediante la console.

La ventana WBPP Execution Monitor

La función Cache (caché) (a partir de la versión 2.5). Esta es una mejora clave. Tras un pase del programa completo, si encuentras un error o algo que no está a la altura de lo esperado y cambias algunos ajustes, ¿de verdad hay que volver a ejecutarlo todo entero? No hace falta. La caché de WBPP lo resuelve: mientras los ajustes que cambiaste no afecten a las imágenes, reutiliza sin más los resultados en caché de la vez anterior; solo se reprocesa la parte de las imágenes que de verdad se ve afectada, con lo que el tiempo de la segunda ejecución se acorta drásticamente.

Explicación de la función de caché de WBPP

El script reproducible de la carpeta log. La versión más reciente de WBPP, tras ejecutarse, conserva en la carpeta log un registro (log) detallado y el script de ejecución. Cuando lees el script con el Script Editor de PI, lo compilas y lo ejecutas, aparece un Process Container que contiene todos los iconos de proceso del submenú Pipeline de la ventana principal de WBPP, y cada uno se puede abrir por separado en PI. Esto es comodísimo para depurar: por ejemplo, si quieres averiguar por qué la Cosmetic Correction no se ejecutó correctamente o no surtió efecto, puedes abrir ese paso desde aquí y comprobar si es cuestión de parámetros o un bug del programa. Otro uso: quien no esté familiarizado con el preprocesado puede leerse por este método cada proceso y parámetro que usó WBPP, y tomarlo como plantilla de referencia para hacerlo a mano por su cuenta.

Usar el Script Editor para leer el script de ejecución de WBPP y reproducir el Process Container

El primer paso al abrir WBPP no es, en realidad, cargar archivos

Por último, volvamos a lo más básico y, a la vez, lo más fácil de hacer mal. El primer paso tras abrir WBPP no es lanzarse a «cargar los archivos de light, dark, flat y bias».

WBPP es uno de los pocos scripts que conserva el contenido del último uso. Si lo has usado antes, todos los ajustes siguen ahí. Por eso, el primer paso debería ser vaciar la lista de archivos; si además conviene borrar los otros parámetros, dependerá de lo que necesites.

Y el segundo paso se pasa por alto con facilidad, y muchos vídeos tutoriales tampoco lo mencionan: pulsar Purge Cache. Antes comenté la ventaja de la caché (a partir de la versión 2.5): cuando solo cambias algunos parámetros, WBPP ejecuta únicamente lo que cambió y reutiliza la caché para el resto. Pero, a la inversa, cuando ya has hecho un pase y ese contenido en caché ya no te hace falta, tienes que borrarlo todo; de lo contrario, al ejecutar archivos nuevos pueden surgir errores impredecibles por culpa de contenido de caché duplicado.

Tras abrir WBPP, primero vaciar la lista de archivos y luego pulsar Purge Cache

Ajustes previos del entorno para usuarios de Windows

Si ejecutas WBPP en Windows, hay dos ajustes de entorno que conviene dejar resueltos desde el principio, y que te ahorrarán un montón de errores desconcertantes más adelante (para los mensajes de error y el diagnóstico relacionados, consulta «Resolución de problemas de WBPP»):

Activa la compatibilidad con rutas largas. Tras cierta actualización, WBPP en Windows saltaba a menudo con avisos de ruta larga, diciendo que no podía generar una ruta de más de 256 caracteres. A mí mismo, por una ruta demasiado larga, se me quedaron corruptos los archivos de salida de WBPP (porque no se podían guardar). La solución es buscar regedit en la barra de tareas para abrir el Editor del Registro, localizar la ubicación correspondiente y cambiar el valor de LongPathsEnabled a 1; tras reiniciar PixInsight, ese aviso ya no vuelve a aparecer.

El aviso de ruta larga de Windows y la configuración de LongPathsEnabled en regedit

Evita las rutas con caracteres no ASCII (por ejemplo, chinos). Esta es también la razón por la que no recomiendo usar caracteres chinos en las rutas de archivo. En Windows, si el programa predeterminado para abrir un archivo es PI, con solo hacer doble clic en un archivo con una ruta que contenga caracteres chinos salta un mensaje de error, y esos caracteres ilegibles que ves son, en realidad, el texto en chino. La alternativa es: sin cambiar la ruta, arrastra directamente el archivo hasta PI y así se abrirá.

El error ilegible que muestra PixInsight al abrir un archivo con una ruta en chino


Juntando todo lo anterior, el panorama completo de WBPP queda más o menos claro: es un potente motor de preprocesado automatizado, pero tienes que recordar que su resultado de integración es solo una vista previa, saber cómo agrupar la calibración, cómo sacarle partido a la caché y qué borrar y qué entorno configurar antes de empezar. Con los conceptos bien asentados, lo demás es solo cuestión de práctica.