Rejection na integração: escolha do algoritmo e leitura da Rejection Map
A “rejection” durante a integração é o processo de descartar automaticamente, enquanto se empilham várias imagens, os valores atípicos que não deveriam estar ali — trilhas de satélite, manchas brancas de raios cósmicos, pixels quentes residuais, os halos ao redor de estrelas brilhantes demais e assim por diante. Escolher o algoritmo de rejection certo e saber ler a Rejection Map que ele produz é a chave para obter uma integração limpa. Este artigo organiza a lógica para escolher um algoritmo de rejection e, além disso, como se deve ler exatamente esses dois mapas de rejection tão frequentemente ignorados.
A família dos algoritmos de rejection
O PixInsight oferece vários algoritmos de rejection durante a integração; a documentação oficial lista a qual cenário cada algoritmo se adapta e vale muito a pena lê-la (atenção: este documento foi publicado já há um bom tempo e não cobre o algoritmo GESD, acrescentado posteriormente).

De modo geral, podem ser divididos em duas categorias:
- A família Sigma: rejeição de valores atípicos baseada no desvio padrão, por exemplo Sigma Clipping, a versão aprimorada Winsorized Sigma Clipping e Percentile Clipping. Seu princípio e sua matemática pertencem ao mesmo sistema.
- GESD Test: baseado no Grubbs’s test, sua teoria e sua matemática são completamente diferentes das dos métodos baseados em sigma. É um algoritmo acrescentado relativamente tarde.
GESD vs Sigma: quem vence quando há poucos frames?
Fiz a comparação de verdade. Certa vez peguei um conjunto de dados de apenas 12 frames e rodei em paralelo o GESD Test, o Winsorized Sigma Clipping e o Sigma Clipping tradicional.

Doze frames, na verdade, não atendem ao número de frames recomendado para o GESD nem para o Winsorized Sigma, mas neste conjunto específico foi o GESD Test que deu o melhor resultado. Convém, porém, acrescentar uma observação em pós-escrito: se forem dados coloridos e, ainda por cima, com frames insuficientes, continua sendo mais adequado usar o Winsorized Sigma ou o Sigma. Portanto, não existe algoritmo que seja “sempre o melhor”: depende dos dados.
GESD contra as trilhas de satélite fracas
O GESD tem ainda uma vantagem no campo. Antigamente, quando eu integrava com a família sigma, esbarrava com frequência em trilhas de satélite mais fracas que não havia como eliminar: mesmo com 17 frames, depois da integração ainda restava parte da trilha, e esse tipo de trilha fraca não se presta à manual selective rejection (pintá-la de preto à mão).

Passando para o GESD Test e, depois de ajustar adequadamente os parâmetros, dilatar (fazer crescer) a trilha de satélite fraca, consegui eliminar uma trilha extremamente fraca; e, de modo geral, a relação sinal-ruído (S/R) do GESD é mais alta que a do Sigma Clipping tradicional ou do Winsorized Sigma Clipping. (Dito isso, na maioria dos casos não se esbarra nesse tipo de problema impossível de eliminar com a família sigma: trata-se de um caso limite bastante extremo.)
Uma arma especial: Range Clipping
Além da rejeição estatística de valores atípicos, há ainda um recurso “de força bruta”, mas prático — o Range Clipping.

Se você tiver aquelas imagens com má calibração dos darks que apresentam muitos pontos pretos (por exemplo, presentes em 10 frames e ausentes em 5), os algoritmos de rejection comuns têm dificuldade de remover esses pontos pretos identificando valores atípicos. Nesse caso, você pode usar durante a integração o Range Low Clipping para remover à força todo ponto preto que fique abaixo de certo limiar. É um recurso direto voltado para um defeito específico, complementar à rejection estatística.

Ler a Rejection Map
Quando você termina a integração com o ImageIntegration ou com o WBPP, além da imagem final são gerados dois mapas de rejection: um para a direção de alta luminosidade (rejection high) e outro para a de baixa luminosidade (rejection low). A maioria das pessoas simplesmente ignora esses dois — o que, na verdade, desperdiça informações de diagnóstico muito úteis.

Em geral, não há muito o que ver em rejection low; o que importa é o rejection high: é aqui que aparecem todas as interferências que você preferiria “não ver na imagem final” — trilhas de satélite, os halos de estrelas brilhantes demais ou inchadas, trilhas de objetos próximos à Terra, além de pixels quentes e manchas brancas causadas por raios cósmicos (os pixels quentes eu costumo limpar antes da integração com o Cosmetic Correction, por isso não há muitos aqui).
A forma mais prática de interpretar este mapa é a seguinte: se um pixel que você queria rejeitar aparece em rejection high, significa que ele foi removido com sucesso; se ele não aparece aqui e, em vez disso, permanece na imagem integrada final (por exemplo, uma trilha de satélite residual), significa que seus parâmetros de rejection não são suficientes, ou que você deveria mudar de algoritmo.
Algumas dúvidas frequentes do tipo “devo descartar este frame?”
Uma vez compreendido o princípio acima, muitas das aflições dos iniciantes ganham resposta.
Uma imagem com estrelas inchadas — devo descartá-la para que não participe da integração? A não ser que esteja fora de foco, normalmente eu a deixo participar da integração.

Ao examinar o rejection high, você verá que aquelas porções de estrelas grandes demais ou brilhantes demais já foram removidas pela rejection e não participaram do cálculo da integração; as trilhas de satélites artificiais e os aglomerados brancos de raios cósmicos também caem, do mesmo modo, em rejection high. É melhor deixar esse tipo de trabalho para o software.
Há uma trilha de satélite brilhante que atravessa o alvo de ponta a ponta — devo apagar esse frame à mão? A resposta é, novamente, que não é preciso.

Como fazer: se você tem poucos frames, use um algoritmo com maior capacidade de rejection (por exemplo, a família Sigma Clipping) e ajuste o parâmetro Sigma High um pouco mais rigoroso (por exemplo, abaixo de 2,5). Num exemplo, eu tinha apenas 7 frames, um dos quais com uma trilha de satélite atravessando o alvo; cada frame importava para a relação sinal-ruído, então, definindo os parâmetros adequados (sem usar os valores padrão do software), deixei o processo de integração concluir a rejection automaticamente, e a trilha eliminada com sucesso aparece em rejection high. Não desperdice um único pixel conquistado com tanto esforço.
A exceção da coluna defeituosa: a rejection não pode salvá-la
Por fim, acrescento uma exceção que a rejection não pode salvar — a coluna defeituosa (defect column) de um CCD.

A coluna defeituosa é escura demais e, ainda por cima, percorre todo o comprimento (do quadro); insistir em removê-la à força com a rejection custa bons pixels demais e, mesmo assim, funciona mal. O modo correto é criar primeiro uma Defect Map para a câmera (tomando como exemplo o CCD 16803 do “Latte”, há uma coluna defeituosa evidente no centro do enquadramento, mais outras três pouco visíveis), carregá-la com o processo DefectMap e aplicá-la sobre os lights para reduzir bastante o efeito da coluna defeituosa e, depois, deixar que a rejection da integração limpe sem esforço o que restou. Em outras palavras, a rejection é a equipe de limpeza que entra em cena no fim, não uma onipotente primeira linha de defesa — os defeitos que exigem uma ferramenta dedicada precisam, mesmo assim, primeiro da ferramenta certa.