Rejection à l'intégration : choix de l'algorithme et lecture de la Rejection Map
La « rejection » lors de l’intégration consiste à écarter automatiquement, au cours du processus d’empilement de plusieurs images, les valeurs aberrantes qui ne devraient pas s’y trouver — traînées de satellites, taches blanches de rayons cosmiques, pixels chauds résiduels, halos autour des étoiles trop lumineuses, et ainsi de suite. Choisir le bon algorithme de rejection et savoir lire la Rejection Map qu’il produit est la clé pour obtenir une intégration propre. Cet article met en ordre la logique du choix d’un algorithme de rejection, ainsi que la manière exacte de lire ces deux cartes de rejection si souvent ignorées.
La famille des algorithmes de rejection
PixInsight propose plusieurs algorithmes de rejection lors de l’intégration ; la documentation officielle énumère à quel scénario chaque algorithme convient, et elle vaut vraiment la lecture (attention : ce document a été publié il y a déjà un certain temps et ne couvre pas l’algorithme GESD, ajouté par la suite).

On peut les répartir grossièrement en deux catégories :
- La famille Sigma : rejection des valeurs aberrantes fondée sur l’écart-type, par exemple Sigma Clipping, sa version améliorée Winsorized Sigma Clipping, ainsi que Percentile Clipping. Leur principe et leurs mathématiques appartiennent au même système.
- GESD Test : fondé sur le Grubbs’s test, sa théorie et ses mathématiques sont totalement différentes de celles des méthodes basées sur sigma. C’est un algorithme ajouté relativement tard.
GESD vs Sigma : qui l’emporte quand les frames sont peu nombreux ?
J’ai fait la comparaison pour de vrai. Une fois, j’ai pris un jeu de données de seulement 12 frames et j’ai lancé en parallèle GESD Test, Winsorized Sigma Clipping et le Sigma Clipping traditionnel.

Douze frames ne satisfont en réalité pas le nombre de frames recommandé pour GESD ou Winsorized Sigma, et pourtant, dans ce jeu précis, c’est le GESD Test qui a donné le meilleur résultat. Il faut cependant ajouter une remarque en post-scriptum : s’il s’agit de données en couleur et, de surcroît, de frames en nombre insuffisant, il reste plus adapté d’utiliser Winsorized Sigma ou Sigma. Il n’existe donc aucun algorithme « toujours le meilleur » : cela dépend des données.
GESD contre les traînées de satellites faibles
GESD a encore un avantage sur le terrain. Autrefois, quand j’intégrais avec la famille sigma, je tombais souvent sur des traînées de satellites assez faibles qu’il n’y avait pas moyen d’éliminer : même avec 17 frames, il restait après l’intégration une partie de la traînée, et ce genre de traînée faible ne se prête pas à la manual selective rejection (la noircir à la main).

En passant à GESD Test et, après avoir réglé les paramètres de façon appropriée, dilaté (fait croître) la traînée de satellite faible, j’ai réussi à éliminer une traînée extrêmement faible ; et, d’une manière générale, le rapport signal/bruit (S/B) de GESD est plus élevé que celui du Sigma Clipping traditionnel ou du Winsorized Sigma Clipping. (Cela dit, dans la plupart des cas, on ne rencontre pas avec la famille sigma ce genre de problème impossible à éliminer : il s’agit d’un cas limite assez extrême.)
Une arme spéciale : Range Clipping
Outre la rejection statistique des valeurs aberrantes, il existe un autre moyen « de force brute » mais bien pratique — le Range Clipping.

Si vous vous retrouvez avec ces images à la mauvaise calibration des darks qui présentent beaucoup de points noirs (par exemple, présents dans 10 frames et absents dans 5), les algorithmes de rejection ordinaires peinent à supprimer ces points noirs en repérant les valeurs aberrantes. Dans ce cas, vous pouvez utiliser lors de l’intégration le Range Low Clipping pour supprimer de force tout point noir situé en dessous d’un certain seuil. C’est un moyen direct visant un défaut précis, complémentaire de la rejection statistique.

Lire la Rejection Map
Lorsque vous terminez une intégration avec ImageIntegration ou WBPP, outre l’image finie, deux cartes de rejection sont générées : une pour la direction des hautes luminosités (rejection high) et une pour la direction des basses luminosités (rejection low). La plupart des gens ignorent tout simplement ces deux cartes — ce qui, en réalité, gâche une information de diagnostic très utile.

D’ordinaire, il n’y a pas grand-chose à voir dans rejection low ; ce qui compte, c’est rejection high : c’est là qu’apparaissent toutes les interférences que vous préféreriez « ne pas voir dans l’image finie » — traînées de satellites, halos des étoiles trop lumineuses ou boursouflées, traînées d’objets géocroiseurs, ainsi que pixels chauds et taches blanches dues aux rayons cosmiques (les pixels chauds, je les nettoie généralement avant l’intégration avec Cosmetic Correction, il n’y en a donc pas beaucoup ici).
La façon la plus pratique d’interpréter cette carte est la suivante : si un pixel que vous vouliez rejeter apparaît dans rejection high, cela signifie qu’il a été éliminé avec succès ; s’il n’apparaît pas ici mais subsiste dans l’image intégrée finie (par exemple une traînée de satellite résiduelle), cela signifie que vos paramètres de rejection ne sont pas assez stricts, ou que vous devriez changer d’algorithme.
Quelques questions fréquentes du type « faut-il écarter ce frame ? »
Une fois le principe ci-dessus compris, bien des tourments des débutants trouvent une réponse.
Une image aux étoiles boursouflées, faut-il l’écarter pour qu’elle ne participe pas à l’intégration ? À moins qu’elle ne soit floue (mise au point ratée), je la laisse en général participer à l’intégration.

En examinant rejection high, vous constaterez que les portions démesurées ou trop lumineuses de ces étoiles ont déjà été supprimées par la rejection et n’ont pas participé au calcul de l’intégration ; les traînées de satellites artificiels et les amas blancs de rayons cosmiques tombent eux aussi dans rejection high. Ce genre de travail, autant le laisser au logiciel.
Il y a une traînée de satellite brillante qui traverse la cible de part en part, faut-il supprimer ce frame à la main ? La réponse est là encore : ce n’est pas nécessaire.

Voici comment faire : si vous avez peu de frames, utilisez un algorithme doté d’une plus grande capacité de rejection (par exemple la famille Sigma Clipping) et réglez le paramètre Sigma High un peu plus strictement (par exemple en dessous de 2,5). Dans un exemple, je n’avais que 7 frames, dont l’un avait une traînée de satellite en travers de la cible ; chaque frame comptait pour le rapport signal/bruit, aussi, en réglant les paramètres appropriés (sans utiliser les valeurs par défaut du logiciel), j’ai laissé le processus d’intégration mener la rejection à bien de façon automatique, et la traînée éliminée avec succès apparaît dans rejection high. Ne gâchez pas un seul pixel durement gagné.
L’exception de la colonne défectueuse : la rejection n’y peut rien
Pour finir, j’ajoute une exception que la rejection ne peut pas sauver — la colonne défectueuse (defect column) d’un CCD.

La colonne défectueuse est trop sombre et, de plus, court sur toute sa longueur ; vouloir l’éliminer à tout prix par la rejection coûte trop de bons pixels tout en donnant un piètre résultat. La bonne méthode consiste à créer d’abord une Defect Map pour l’appareil (en prenant l’exemple du CCD 16803 de « Latte », il y a une colonne défectueuse évidente au centre du cadre, plus trois autres peu visibles), à la charger avec le processus DefectMap et à l’appliquer sur les images brutes pour réduire fortement l’effet de la colonne défectueuse, puis à laisser la rejection de l’intégration nettoyer sans effort ce qui reste. Autrement dit, la rejection est l’équipe de nettoyage qui intervient à la fin, non une première ligne de défense toute-puissante — les défauts qui appellent un outil dédié ont tout de même besoin, d’abord, du bon outil.