O guia completo do WBPP: interface, masters de calibração e pipeline de execução
Este artigo foi compilado a partir de notas feitas entre 2021 e 2024; algumas ferramentas ou fluxos já foram atualizados, então tenha isso em mente ao ler. Algumas interfaces, opções e comportamentos ligados à versão aqui mencionados (por exemplo, as versões 2.1.2 e 2.5) refletem o estado da época. Quanto aos erros e bugs conhecidos que você pode encontrar durante a execução, veja o artigo separado “Solução de problemas do WBPP”.
O WBPP (WeightedBatchPreprocessing) é o script do PixInsight que executa automaticamente, de ponta a ponta, “calibração, alinhamento e integração”: é de uma comodidade impressionante. Nestes últimos anos ele foi revisado com frequência, e fui escrevendo aos poucos muitas notas dispersas a seu respeito; este artigo as reúne em uma explicação bastante completa, abordada em três níveis: os conceitos centrais que pouco mudam de versão para versão, o fluxo de execução atual e algumas mudanças importantes ao longo das versões desses anos. Não importa qual versão você use: fixe bem primeiro os conceitos e, não importa como a interface mude, você não entrará em pânico.
Conceito central 1: o produto que o WBPP empilha é apenas uma prévia
Este é o ponto que eu mais quero abordar primeiro e também o que a maioria das pessoas ignora.
Eu mesmo caí nessa armadilha: certa vez, depois de usar o Drizzle Integration, percebi que o centro das estrelas (as regiões supersaturadas) tinha ficado preto. Investigando a fundo, o culpado acabou sendo justamente o fato de ter usado o WBPP para fazer a integração.
Por mais prático que o WBPP seja, sobre aquele master light que ele integra automaticamente a posição oficial é bastante clara — trata-se apenas de uma prévia conveniente do “efeito alcançável”, que deve ser descartada assim que você termina, e nunca deve ser tratada como um produto final. Reproduzo abaixo o trecho pertinente da resposta oficial no fórum:
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.
A resposta oficial chegou até a dizer, meio de brincadeira, que gostaria de repetir esta frase “n+1 vezes, sendo que n já se aproxima do infinito”: o master light que o WBPP gera não deve ser usado para fins definitivos, é apenas uma prévia, e o melhor resultado só se obtém por meio de uma Image Integration manual que otimize a rejeição de pixels e a relação sinal-ruído (S/R).
Portanto, o meu hábito é o seguinte: com o WBPP, vou no máximo até a etapa do “alinhamento de estrelas”; a verdadeira integração eu devolvo ao processamento manual da Image Integration. A abordagem ortodoxa, decomposta em procedimentos distintos — calibração (a cargo do WBPP), alinhamento (Star Alignment) e integração (Image Integration) —, exige de fato algumas etapas a mais, mas, assim que algo dá errado, é bem mais fácil descobrir qual elo da corrente se quebrou. Essa também se tornou, mais tarde, a minha convicção firme. Aqueles dois vídeos tutoriais de WBPP muito detalhados feitos nos primeiros tempos por entusiastas japoneses, eu também os recomendo bastante, mas é preciso acrescentar-lhes a mesma ressalva: tome o resultado da integração apenas como referência.
Conceito central 2: distinguir claramente quais arquivos da pasta Master são os produtos finais
Depois de rodar o WBPP por completo, a pasta Master padrão fica repleta de um monte de arquivos, e muitos amigos não conseguem distinguir qual deles é o que realmente querem. Vou explicar aqui:

- A imagem no quadro vermelho é o master light integrado e concluído que você procura.
- A imagem no quadro amarelo é a imagem de referência (Ref) da Local Normalization, e não o master light — não os confunda.
- As imagens sem quadro são os masters de calibração, que aqui incluem o master flat, o master bias e o master dark.
(Dito isso, na continuidade da seção anterior, este “master light” ainda tem a natureza de prévia do WBPP; se você for exigente, o melhor mesmo é reintegrá-lo você mesmo uma vez.)
O fluxo de execução atual: o pacote completo para câmera colorida
O WBPP vai até o fim com um único clique, mas, nos bastidores, trata-se na verdade de uma longa série de procedimentos automatizados executados em ordem. Tomando como exemplo uma câmera colorida (OSC), a ordem de execução completa é a seguinte:

- Calibration File Integration: criar os masters de calibração
- Calibration: calibrar os lights (imagens de luz)
- Cosmetic Correction: remover os pixels quentes (hot pixels) ou as linhas defeituosas
- Debayer: debayerização (separar o RGB)
- Measurements: medir os lights e atribuir-lhes um peso
- Reference frame selection: escolher a imagem de referência para o alinhamento
- Plate solving reference frames: fazer o plate solving (resolução astrométrica) nos frames de referência
- Registration: alinhamento de estrelas
- LN reference generation: gerar a imagem de referência da Local Normalization
- Local Normalization: executar a Local Normalization
- Integration: integrar os lights
- RGB Combination: recombinar os três canais RGB
Em termos mais condensados, também é possível reduzir isso a oito etapas: criação dos arquivos de imagem de calibração → calibração das imagens → Cosmetic Correction → debayerização (separação dos três canais RGB) → alinhamento de estrelas → Local Normalization → integração das imagens → combinação dos três canais RGB.

Dois passos aqui merecem algumas palavras a mais: a separação RGB serve para superar a dispersão cromática (em que as bordas das estrelas parecem ter cores diferentes de cada lado), ao custo de um tempo de execução extra; a Drizzle Integration, se você a utilizar, não tem aqui o objetivo de ampliar a imagem, mas de evitar artefatos, de modo que só faz sentido quando você dispõe de um número suficiente de frames com dither — em geral, abaixo de 50 frames, na verdade dá para não fazer. A propósito, uma palavra sobre a percepção real do tempo: certa vez processei 360 imagens de nove megapixels, da calibração até a Drizzle Integration 1x, e ainda assim levou mais de uma hora; com resolução mais alta, só fica mais “emocionante”.

Os masters de calibração: onde o WBPP é astuto
No tratamento dos frames de calibração (flats, darks, bias, etc.), o WBPP esconde não poucos toques atenciosos, o que merece uma seção à parte.
Os frames de calibração é melhor refazê-los do zero, a partir dos arquivos originais, dentro do WBPP. Muita gente descobre, depois da calibração, que os lights apresentam problemas, e a causa principal costuma ser a aplicação de “arquivos Master feitos por outros softwares ou procedimentos” (master flat/bias/dark). A abordagem mais segura é jogar os arquivos originais de calibração no WBPP e deixá-lo refazer os Master.
Pequenas discrepâncias no tempo de exposição? Deixe isso a cargo do Exposure tolerance. Certa vez um colega perguntou no grupo: ele fotografava seus darks por meio do controle de sinal do Eqmod e, por causa de problemas de latência, seus darks de 5 segundos podiam na verdade cair entre 4,980 e 5,02 segundos, e por isso ele queria passar a fotografar com o NINA. Na verdade, o WBPP já havia pensado nisso: os frames de calibração dentro de uma certa diferença de tempo podem ser designados como um mesmo grupo, e o WBPP faz automaticamente, nos frames de calibração de um mesmo grupo, o processamento devido, pareando-os automaticamente com os lights. Esse valor de tolerância é justamente o Exposure tolerance.

Imagens tiradas em dias diferentes? Resolva todas de uma vez com as Grouping Keywords. Depois de uma revisão, o WBPP ganhou uma função de agrupamento: mesmo imagens tiradas em datas diferentes podem ser jogadas de uma vez e processadas juntas — desde que você as classifique nas Grouping Keywords usando uma palavra-chave (por exemplo, a data). Veja aquele meu conjunto de arquivos: os flats variavam de um dia para o outro, e ainda assim o WBPP conseguia calibrá-los separadamente por data, automaticamente, sem que eu tivesse de configurar manualmente o pareamento de lights e flats para cada data diferente — extremamente prático.

Só quer fazer os masters de calibração? Não precisa colocar lights. Este é um uso que muita gente desconhece: sem nenhum light presente, jogue no WBPP seus darks, bias, flats e dark flats, e ele, seguindo as etapas corretas, transformará de forma inteligente esses frames de calibração em masters de calibração, exportando-os para a pasta que você indicar — poupando você do trabalho de fabricá-los à mão com toda sorte de procedimentos diferentes.

As opções da página Light e as técnicas de aceleração
A página Light do WBPP tem uma fileira de opções que o usuário pode marcar conforme a necessidade. Por padrão, exceto subframe weighting, todas ficam desmarcadas.

Já que essas etapas podem ser incluídas ou descartadas, surge uma pergunta prática: ao desativar os processamentos de que você não precisa, quanto tempo dá para economizar? Fiz um teste real com um conjunto de dados de download livre vindo do exterior — 372 imagens de dezesseis megapixels no total — e, depois de retirar os processamentos desnecessários, rodou cerca de 7 a 8 vezes mais rápido (25 min 03 s vs. 03 min 30 s), enquanto a qualidade da imagem sofreu apenas uma leve perda — cerca de 15% de diferença na minha máquina local, e praticamente impossível de distinguir depois de comprimida e enviada pela rede. Para as situações em que você está correndo contra um prazo ou só quer dar uma olhada geral primeiro, essa troca compensa bastante.

Quanto a quais etapas consomem mais tempo e quais é mais eficaz desativar, voltarei a isso no artigo “Solução de problemas do WBPP”.
As mudanças de versão: estas surgiram depois
Nestes anos o WBPP acrescentou não poucas coisas; vou recapitular alguns marcos importantes, para facilitar a comparação com a versão que você tem em mãos:
Algumas coisas da versão 2.1.2. A partir desta versão, três pontos merecem atenção: primeiro, os lights apresentarem problemas depois da calibração deve-se, muitas vezes, à mistura de arquivos Master feitos externamente (veja acima); segundo, o Dark frame optimization serve principalmente quando as durações dos lights e dos darks não coincidem (por exemplo, um light de 20 minutos pareado com um dark de 30 minutos), tem como melhor premissa longas exposições e várias imagens, e a opção só aparece quando você clica em um arquivo de light; terceiro, quem usa um CCD vê surgir aos poucos, com o uso, defects, em especial column defects, que antes era preciso remover construindo um defect map, o que consumia muitíssimo tempo, e o WBPP forneceu a Linear Pattern Subtraction para ajudar a lidar com isso.

Execution Monitor (janela de monitoramento da execução). Depois de atualizar para uma versão mais recente, o WBPP faz aparecer, durante a execução, uma janela WBPP Execution Monitor que lhe diz em qual etapa ele está no momento e quais trabalhos realizou; o conteúdo pode até ser rolado e arrastado para cima e para baixo. Nas versões antigas, o usuário, além de encarar o console do momento, não tinha absolutamente nenhum meio de saber o progresso: só podia esperar que tudo terminasse de rodar, ou que parasse em um erro, para enfim conseguir confirmar pelo console.

A função Cache (a partir da versão 2.5). Esta é uma melhoria muito decisiva. Depois de rodar o pacote completo, se você descobrir um erro ou algo que não está à altura das expectativas e mudar certas configurações, será que precisa mesmo rodar tudo de novo? Não. O cache do WBPP faz a triagem: desde que as configurações alteradas não afetem as imagens, ele reutiliza diretamente os resultados em cache da vez anterior; apenas a porção de imagens realmente afetada é reprocessada, de modo que a duração da segunda execução fica drasticamente reduzida.

O script reproduzível na pasta log. Depois de executado, o WBPP mais recente guarda na pasta log um log detalhado e um script de execução. Uma vez lido o script com o Script Editor do PI, compilado e executado, aparece um Process Container contendo todos os ícones de processo do submenu Pipeline da janela principal do WBPP, cada um dos quais pode ser aberto individualmente no PI. Isso é extremamente prático para o debug — se, por exemplo, você quiser descobrir por que a Cosmetic Correction não foi executada corretamente ou não teve efeito, pode abrir aquela etapa a partir daqui e verificar se é um problema de parâmetros ou um bug do programa. Outro uso: quem não é familiarizado com o pré-processamento pode, por esse meio, extrair cada etapa procedural e cada parâmetro que o WBPP usou, para servir de modelo de referência quando for executar tudo à mão por conta própria.

O primeiro passo ao abrir o WBPP não é, na verdade, carregar arquivos
Por fim, voltemos ao ponto mais elementar — e, ainda assim, o mais fácil de errar. O primeiro passo depois de abrir o WBPP não é se apressar em “carregar os arquivos de lights, darks, flats e bias”.
O WBPP é um dos poucos scripts que conservam o conteúdo do último uso. Se você já o usou antes, todas as configurações ainda estão lá. Portanto, o primeiro passo deve ser limpar a lista de arquivos; quanto a apagar ou não os demais parâmetros junto, isso depende da sua necessidade.
E o segundo passo se esquece com facilidade, e muitos vídeos tutoriais também não o mencionam — pressionar Purge Cache. Falei acima do benefício do cache (a partir da versão 2.5): quando você altera apenas parte dos parâmetros, o WBPP roda somente os pontos alterados e reutiliza o cache para o resto. Mas, ao contrário, quando você já fez uma execução e não precisa mais desse conteúdo em cache, é preciso apagá-lo por completo, caso contrário, ao executar arquivos novos, a duplicação do conteúdo em cache pode provocar erros imprevisíveis.

Configurações prévias de ambiente para usuários de Windows
Se você roda o WBPP no Windows, há duas configurações de ambiente que é melhor deixar prontas logo de início: elas lhe pouparão um monte de erros incompreensíveis mais adiante (para as mensagens de erro e o diagnóstico correspondentes, veja em detalhe “Solução de problemas do WBPP”):
Ativar o suporte a caminhos longos. Depois de certa atualização, o WBPP no Windows passou a exibir com frequência um aviso de caminho longo, dizendo que não conseguia gerar um caminho com mais de 256 caracteres. Já me aconteceu de, por causa de um caminho longo demais, os arquivos produzidos pelo WBPP saírem danificados (porque o arquivo não podia ser salvo). A solução é procurar regedit na barra de tarefas para abrir o Editor do Registro, encontrar o local correspondente e mudar o valor de LongPathsEnabled para 1; depois de reiniciar o PixInsight, esse aviso não voltará a aparecer.

Evitar caminhos com caracteres não ASCII (por exemplo, chineses). Esta é também a razão pela qual não recomendo usar caracteres não ASCII, como os chineses, nos caminhos de arquivo. No Windows, se o programa de abertura padrão for o PI, basta dar um duplo clique em um arquivo cujo caminho contenha caracteres não ASCII para que apareça uma mensagem de erro: aqueles caracteres ilegíveis não são outra coisa senão o texto chinês. A alternativa é: sem alterar o caminho, arraste diretamente o arquivo para dentro do PI, e ele abrirá.

Juntando tudo o que foi dito acima, o quadro completo do WBPP fica mais ou menos claro: ele é um poderoso motor de pré-processamento automatizado, mas você precisa lembrar que o seu produto de integração é apenas uma prévia, saber como agrupar a calibração, como aproveitar bem o cache, além do que apagar e qual ambiente configurar antes de começar. Com os conceitos certos, o resto é só uma questão de prática.