Rejection bij de integratie: keuze van het algoritme en het lezen van de Rejection Map
De “rejection” bij het integreren is het proces waarbij tijdens het op elkaar stapelen van meerdere beelden automatisch die uitschieters worden verworpen die er niet horen — satellietsporen, witte vlekken van kosmische straling, achtergebleven hete pixels (hot pixels), de opgeblazen halo’s rond te heldere sterren enzovoort. Het juiste rejection-algoritme kiezen en de Rejection Map die het oplevert kunnen lezen, is de sleutel tot een schone integratie. Dit artikel zet de logica op een rij voor het kiezen van een rejection-algoritme, en bovendien hoe u precies die twee rejection-kaarten hoort te lezen die zo vaak over het hoofd worden gezien.
De familie van rejection-algoritmen
PixInsight biedt bij het integreren verscheidene rejection-algoritmen; de officiële documentatie somt op welk algoritme bij welk scenario past en is zeker het lezen waard (let op: dit document is inmiddels al geruime tijd geleden gepubliceerd en behandelt het later toegevoegde GESD-algoritme niet).

Ze zijn grofweg in twee categorieën in te delen:
- De Sigma-familie: rejection van uitschieters op basis van de standaardafwijking, bijvoorbeeld Sigma Clipping, de verbeterde Winsorized Sigma Clipping en Percentile Clipping. Hun principe en wiskunde behoren tot hetzelfde systeem.
- GESD Test: gebaseerd op de Grubbs’s test; de theorie en wiskunde verschillen volledig van die van de op sigma gebaseerde methoden. Het is een algoritme dat relatief laat is toegevoegd.
GESD vs Sigma: wie wint bij weinig frames?
Ik heb de vergelijking echt gemaakt. Een keer nam ik een dataset van slechts 12 frames en liet ik GESD Test, Winsorized Sigma Clipping en het traditionele Sigma Clipping tegelijkertijd draaien.

Twaalf frames voldoen eigenlijk niet aan het aanbevolen aantal frames voor GESD of Winsorized Sigma, en toch gaf GESD Test in deze specifieke set het beste resultaat. Er valt echter een naschrift aan toe te voegen: gaat het om kleurdata en bovendien om te weinig frames, dan is het nog steeds beter om Winsorized Sigma of Sigma te gebruiken. Er bestaat dus geen algoritme dat “altijd het beste” is: het hangt af van de data.
GESD tegen zwakke satellietsporen
GESD heeft nog een praktisch voordeel in het veld. Vroeger, toen ik met de sigma-familie integreerde, stuitte ik vaak op vrij zwakke satellietsporen die eenvoudigweg niet te verwerpen waren: zelfs met 17 frames bleef na de integratie nog een deel van het spoor achter, en dit soort zwak spoor leent zich niet voor manual selective rejection (het met de hand zwart overschilderen).

Na de overstap naar GESD Test en het passend aanpassen van de parameters — inclusief het uitdijen (laten groeien) van het zwakke satellietspoor — lukte het me om een uiterst zwak spoor te verwerpen; en in het algemeen is de signaal-ruisverhouding (S/R) van GESD hoger dan die van het traditionele Sigma Clipping of Winsorized Sigma Clipping. (Dat gezegd hebbende: in de meeste gevallen stuit u met de sigma-familie niet op zo’n onverwijderbaar probleem; het gaat om een vrij extreem randgeval.)
Een speciaal wapen: Range Clipping
Naast de statistische rejection van uitschieters is er nog een “bruut” maar handig middel — Range Clipping.

Als u van die beelden hebt met een slechte dark-kalibratie die veel zwarte punten vertonen (bijvoorbeeld aanwezig in 10 frames en afwezig in 5), dan hebben de gewone rejection-algoritmen moeite om deze zwarte punten te verwijderen door uitschieters op te sporen. In dat geval kunt u tijdens het integreren Range Low Clipping gebruiken om elk zwart punt onder een bepaalde drempel geforceerd te verwijderen. Het is een direct middel dat op een specifiek defect is gericht, complementair aan de statistische rejection.

De Rejection Map lezen
Wanneer u klaar bent met integreren met ImageIntegration of WBPP, worden naast het eindbeeld ook twee rejection-kaarten gegenereerd: één voor de richting van hoge helderheid (rejection high) en één voor de richting van lage helderheid (rejection low). De meeste mensen negeren deze twee gewoonweg — wat in feite zeer nuttige diagnostische informatie verspilt.

Meestal valt er in rejection low niet veel te zien; wat telt is rejection high: hier verschijnt alle storing die u liever “niet in het eindbeeld” zou zien — satellietsporen, de halo’s van te heldere of opgeblazen sterren, sporen van aardnabije objecten, en verder hete pixels en witte vlekken veroorzaakt door kosmische straling (de hete pixels ruim ik doorgaans al vóór de integratie op met Cosmetic Correction, dus veel zijn het er hier niet).
De meest praktische manier om deze kaart te lezen, is: als een pixel die u wilde verwerpen in rejection high verschijnt, betekent dat dat hij met succes is verwijderd; verschijnt hij hier niet en blijft hij in plaats daarvan in het geïntegreerde eindbeeld staan (bijvoorbeeld een achtergebleven satellietspoor), dan betekent dat dat uw rejection-parameters niet sterk genoeg zijn, of dat u van algoritme zou moeten wisselen.
Enkele veelvoorkomende vragen van het type “moet ik dit frame eruit gooien?”
Zodra u het bovenstaande principe hebt begrepen, krijgen veel van de dingen waarover beginners piekeren een helder antwoord.
Een beeld met opgeblazen sterren — moet ik het eruit gooien zodat het niet aan de integratie deelneemt? Tenzij het onscherp is, laat ik het meestal aan de integratie deelnemen.

Bekijkt u de rejection-high-kaart, dan zult u zien dat die te grote of te heldere delen van de sterren al door de rejection zijn verwijderd en niet aan de integratieberekening hebben deelgenomen; kunstmatige satellietsporen en witte klodders van kosmische straling belanden eveneens in rejection high. Dit soort werk laat u het beste aan de software over.
Er loopt een helder satellietspoor dwars door het doel — moet ik dat frame met de hand verwijderen? Het antwoord is wederom: dat hoeft niet.

Hoe u dat doet: als u weinig frames hebt, gebruikt u een algoritme met een sterker rejection-vermogen (bijvoorbeeld de Sigma Clipping-familie) en stelt u de parameter Sigma High wat strenger in (bijvoorbeeld onder 2.5). In één voorbeeld had ik maar 7 frames, waarvan er één een satellietspoor dwars over het doel had; elk frame telde voor de signaal-ruisverhouding, dus door de juiste parameters in te stellen (niet de standaardwaarden van de software) liet ik het integratieproces de rejection automatisch voltooien, en het met succes verwijderde spoor verschijnt in rejection high. Verspil geen enkele met moeite verworven pixel.
De uitzondering van de defecte kolom: rejection kan haar niet redden
Tot slot voeg ik nog een uitzondering toe die de rejection niet kan redden — de defecte kolom (defect column) van een CCD.

De defecte kolom is te donker en loopt bovendien over de hele lengte (van het beeld); haar koste wat kost met rejection willen verwijderen kost te veel goede pixels en werkt desondanks slecht. De juiste aanpak is om eerst een Defect Map voor de camera te maken (neem de 16803-CCD van “Latte” als voorbeeld: er is één duidelijke defecte kolom in het midden van het beeld, plus drie minder opvallende), die met het DefectMap-proces te laden en op de lights toe te passen om de invloed van de defecte kolom sterk te verminderen, en vervolgens de rejection van de integratie moeiteloos op te laten ruimen wat er overblijft. Met andere woorden: de rejection is de schoonmaakploeg die pas op het eind ten tonele verschijnt, geen almachtige eerste verdedigingslinie — defecten die met een gespecialiseerd gereedschap moeten worden aangepakt, hebben toch eerst het juiste gereedschap nodig.