Activity › Forums › Astrotechniek › Methoden en Technieken › Meten van field curvature (beeldveldwelving) en tilt (kanteling)
- This topic has 27 replies, 3 voices, and was last updated 6 years, 3 months ago by
han.k.
-
AuthorPosts
-
January 25, 2020 at 21:00 #22829
han.kParticipantVelen kennen waarschijnlijk CCDinspector. Dit programma meet de field curvature/beeldveldwelving en tilt/beeldkanteling door de verschillen in FWHM ofwel HFD waarden van de de verschillende gebieden in het beeld. Dit lukt met een enkele opname en alleen als het beeld in het centrum perfect in focus is.
Met deze mail wil ik een ander experimentele methode voorstellen die geïmplementeerd is in het programma ASTAP.
Ik neem aan dat CCDinspecter de beeldveldwelving berekent door ((A / B) -1) * 100%. Waarbij B de gemiddelde fwhm / hfd van het midden van de opname en A van de buitengebieden van de opname is. Dit werkt alleen als de opname voor het centrum pefect in focus is. Is het beeld niet in focus dan klopt de meting totaal niet. bovendien heet de off-axis aberratie ook een invloed. Het zou beter zijn als de beeldveldwelving gemeten wordt al C en uitgedrukt in stappen van de focuser.
Om het focuspunt te vinden van een aantal gebieden van de sensor is het nodig om een aantal opnames te maken en van de gemeten hfd’s een V-curve/grafiek op te bouwen of met “curve fitting” het focus punt te vinden.
Dit idee is nu geïmplementeerd in het gratis programma ASTAP, tabblad “inspector”.
Om dit idee te toetsten zoek ik gebruikers die dit will testen met hun systeem.
De rest nu in het Engels:
Fotos:
- 1) Factors A,B, C explained
- 2) Graph of the focus curves of 100mm APO astrograph, focal length 580 mm. Plotted are hfd values of median=all, the center of the image, outer area and the image split in four parts:
- 3) In the program, the data is presented as a table which can be selected and copied to the clipboard:
The usage is as follows:
- Prepare a series of short exposure images with different focuser positions and a lot of stars. Exposure time a few seconds. Move for each image the focuser a small step but only in one way to prevent backlash problems. Images with stars having an hfd above 12-14 will not be analysed correctly since this was historically not implemented.
- Browse with ASTAP to the images.
- Press analyse
- Optional: Select all rows by ctrl+a, copy with ctrl+c and paste to your favorite spreadsheet.
- Press curve fitting for report on best focus point for each image area.
This is experimental. I’m interested in more test images. If anybody can assist, make them as indicated below.
Han
Attachments:
You must be logged in to view attached files.January 25, 2020 at 21:57 #22834
InFINNityDeckParticipantHoi Han,
Erg interessant, mooi dat dit in nu ASTAP zit. Momenteel is mijn C11 even weg voor onderhoud, maar zodra mijn observatorium weer operationeel is (hopelijk over een week of 3-4) en het weer meewerkt, zal ik wat foto’s produceren. Ben erg benieuwd naar het resultaat.
Nicolàs
https://www.dehilster.info/astronomy
In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.
January 25, 2020 at 22:34 #22836
han.kParticipantHallo Nicolàs,
Het principe is gelijk aan een autofocus routine in programmas. Wat ik ook moet vermelden is dat de stap grootte constant moet zijn. Hier in het Engels een korte toelichting:
Han
For the images to analyse in the “inspector tab”, please use a fixed focuser step since for all curve offsets the same weight factor is used in curve fitting routine. It is possible to make more then one exposure per focuser position but do the same for all focuser positions.
For example if your focuser is focused around position 1007 and the range to reach hfd=12 on both sides is 900-1100 do the following:
move to 800 {to remove backlash}
move to 900 and make image of 5 or 10 seconds exposure
move to 910 and make image
move to 920 and make image
..
..
..
move to 1100 and make image
This makes 20 steps but probably 10 steps or even less will do. The direction is not important. You could also do 1100 to 900. You should also be able to mix the test series. The detection doesn’t work above hfd=12 since it was designed for the alignment & solver and not finding the focus point.
January 26, 2020 at 10:34 #22855
InFINNityDeckParticipantHoi Han,
ik lees dat jij curve fitting gebruikt. Onlangs heb ik meegewerkt aan het verbeteren van de autofocus-routine van SGP. Mijn bijdrage daar was vooral het robuust detecteren en verwijderen van uitschieters, het testen van algoritmes en het leveren van data. Er was op dat moment al gekozen voor een kwadratische best-fit (dus een parabool). Zolang de stapgrootte klein genoeg is, zodat de Y-waarden niet te groot worden, is de parabolische fit een redelijke benadering. Net als jouw routine leveren autofocus-routines grafieken die bij grotere afstand vanaf best focus lineair worden en daarom beter gefit kunnen worden met een hyperbolische fit zoals beschreven door Carsten van Lost Infinity (inclusief source code).
Uiteraard ben ik dus benieuwd welke methode jij gevolgd hebt. :-)
Nicolàs
https://www.dehilster.info/astronomy
In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.
January 26, 2020 at 11:36 #22863
han.kParticipantHallo Nicolàs,
The focussering curve fitting heb ik voor CCDCiel ontwikkeld en gaat uit van een hyperbool. De totale fout wordt bepaald door de bekende RMS methode dus de fout in het kwadraat, het dan middelen en dan de wortel nemen. Dan is het een kwestie van schuiven met de hyperbool parameters.
Over de beste benadering is onlangs nog flink gediscuteerd op Cloudynights, maar ik heb de beste resultaten met een hyperbool. Dat was ook de conclusie van de Focusmax ontwikkelaars. Het hangt natuurlijk ook af hoe goed je hfd meting van de sterren werkt. Is de hfd meting niet goed dan wordt je V-curve ook anders. Ik vermoed dat de voortstanders van een parabool fit een slechtere hfd meting hebben.
De kwaliteit van de curve fit kan je testen. Alle data is te kopiëren in Excel en de hyperbool parameters word gegeven in de oplossing (focus, a, b). Dan krijg je zo iets in Excel (voor mijn 100 APO astrograph) als bijgevoegd. Wat opvalt is dat de curve fit voor het centrum perfect is. Voor de buitengebieden is de hyperbool smaller en gaat de curve fit bij het focus lager. Voor het focus punt van de buitengebieden ligt de gemeten hfd net iets hoger dan voor het centrum wat licht in de lijn van de verwachting. Voor de volledigheid bijgevoegd een van de Excel files waarin je de gemeten data kan kopiëren.
Het uiteindelijke ASTAP rapport ziet er dan zo uit:
13:22:39 median Focus=35972 a=1,23909 b=143,37264 _____________ lowest error=0,01187 iteration_cycles=4 13:22:39 center Focus=35925 a=1,87688 b=212,46136 _____________ lowest error=0,00540 iteration_cycles=4 13:22:39 outer ring Focus=36028 a=0,30912 b= 37,90557 offset= 103 lowest error=0,02590 iteration_cycles=6 13:22:39 bottom left Focus=36000 a=1,47225 b=169,40969 offset= 75 lowest error=0,01023 iteration_cycles=2 13:22:39 bottom right Focus=35825 a=1,52325 b=167,86880 offset= -100 lowest error=0,00695 iteration_cycles=2 13:22:40 top left Focus=36094 a=1,39523 b=159,90826 offset= 169 lowest error=0,00958 iteration_cycles=4 13:22:40 top right Focus=35934 a=1,74906 b=200,38594 offset= 9 lowest error=0,00777 iteration_cycles=4
My focuser makes about 1500 steps per mm, so the found differences up to 169 steps are very small a little more then 0.1 mm or 0.004 inch
E.a is natuurlijk in ontwikkeling
Han
De gemeten waarden zijn blauw. De curve-fit data is rose
Attachments:
You must be logged in to view attached files.January 26, 2020 at 12:12 #22865
han.kParticipantHet artikel van Carsten van Lost Infinity (inclusief source code). is interessant. De factor d gebruik ik niet. Wel negeer ik de hyperbool onder de laagste gemeten hfd waarde. Daar overheerst de seeing. Toen ik het algorithm in 2018 ontwikkelde zocht ik naar de differentieel van een hyperbool maar kon die niet vinden. Uiteindelijk was het relatief gemakkelijk een routine te schrijven door gebruik te maken van sinh() en cosh() functies voor de hyperbool. Hiermee kon ik ook de inverse functie van de hyperbool beschrijven. Code is beschikbaar bij CCDCiel en ASTAP.
Na de discusssie op CloudyNights doet het programma Nina iets soortgelijks.
January 26, 2020 at 13:54 #22871
InFINNityDeckParticipantDank voor de link naar het CN-draadje. Mocht je het interessant vinden: het vinden van uitschieters is in de focusroutine van SGP geregeld met een Mean Absolute Deviation. Deze is bijzonder robuust, vooral als het om kleine steekproeven gaat. Ik heb dit jaren geleden al eens toegepast in een applicatie voor automatische beeldverwerking bij waterpasinstrumenten.
Nicolàs
https://www.dehilster.info/astronomy
In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.
January 26, 2020 at 15:35 #22873
han.kParticipantDat artikel over Mean Absolute Deviation is zware kost. Ik ben van huis een electrical engineer en geen wiskundige. De post op het SGP forum was interessant. Nietemin de gekozen parabool is minder geschikt zeker voor de hoge hfd waarden. Het voordeel van de parabool is dat je de differentiaal functie kan bepalen en gebruiken in het curve fitten.
E.a. heeft me er toe aangezet nog eens naar de curve fit routine te kijken. De least square fout die ik in de iteratief loop zo klein mogelijk probeer te maken is gebaseerd op de delta hfd dus de y as. Dat is volgens Wikipedia een algebraic fit. Waarschijnlijk is een geometric fit beter. Ik kan ook de fout in x dus focuser positie bepalen. Deze kan ik aanvullend meenemen en mogelijk een betere fit bepalen. Advies of hulp kan ik daarbij gebruiken. :) De code staat hier
Han
January 26, 2020 at 16:25 #22874
InFINNityDeckParticipantIk zie nu dat ik een schrijffout maakte, ik bedoelde de Median Absolute Deviation, die wijkt iets af van de Mean Absolute Deviation, en is nog een stuk robuuster. Normaal gesproken worden uitschieters bepaald door het gemiddelde en standaardafwijking van een serie waarnemingen te berekenen. Vervolgens wordt aangenomen dat iedere waarneming die plus en min [kappa x standaardafwijking] van het gemiddelde afzit, een uitschieter is (met kappa 1, 2, 3 etc. voor een waarschijnlijkheid van respectievelijk 68%, 95%, 98%). Het probleem daarbij is, dat het gemiddelde direct beïnvloedt wordt door die uitschieter(s), vooral bij kleine populaties. De Median Absolute Deviation doet een robuuste inschatting van het gemiddelde en de standaardafwijking aan de hand van de mediaan. Ik heb mijn code destijds geschreven aan de hand van een artikel van Peter Rousseeuw en Christophe Croux. De methode wordt op de eerste pagina ervan uitgelegd.
In het kort komt de methode er op neer dat je eerst de mediaan bepaalt van de waarnemingen, vervolgens het absolute verschil tussen de waarnemingen en deze mediaan. Van die absolute verschillen neem je vervolgens nogmaals de mediaan. Deze tweede mediaan is de MAD (formule 1.2 in het artikel). Vervolgens loop je nogmaals door alle waarnemingen en kijk je of de absolute verschillen tussen die waarnemingen en die eerste mediaan kleiner zijn dan de MAD x 1.4826 x kappa (1.4826 staat uitgelegd in het artikel, kappa wederom 1, 2, 3, etc.). Zijn de verschillen groter, dan zijn de bijbehorende waarnemingen uitbijters.
Het voordeel van de kwadratische fit is inderdaad dat de beste focuspositie direct berekend kan worden, maar ik neem aan dat dit ook bij een hyperbool mogelijk is (heb ik me nog nooit in verdiept). Wellicht dat de code van Carsten dit verduidelijkt. Zolang de focusstappen klein blijven en daarmee het totale focusbereik klein, dan is de bodem van de hyperbolische curve goed te fitten met een parabool.
Nicolàs
PS Zie ik goed dat jouw code in een soort Pascal geschreven is? Het is alweer 25 jaar geleden dat ik daarin liep te rommelen… :-)
https://www.dehilster.info/astronomy
In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.
January 26, 2020 at 18:11 #22890
han.kParticipantIn de routine is het moeilijk om outliers van de meetdata te definieren. De hyperbool functie bestaat uit drie parameters die allemaal uitgeprobeerd moeten worden. De fouten d.w.z. het verschil tussen de gemeten en voorgestelde hyperbool zijn erg variabel doordat de hyperbolen mekaar kunnen kruisen in het fit process. Een kruising is geen goede fit maar op dat punt ontstaat er wel tijdelijk een kleine fout.
Ik zou de mediaan fout ofwel MAD kunnen bepalen i.p.v de gemiddelde(fout*fout) Misschien krijg je dan een betere fit. Het probleem is dat dit enige duizenden keren moet gebeuren, Dit kan snel te veel tijd kosten. Ik zal het eens proberen want de mediaan heb ik al in de code.
Het programma is geschreven in object Pascal (Lazarus). Dat wordt nog steeds actief ontwikkelt en gebruikt maar is geen mainstream meer.
Han
January 26, 2020 at 19:09 #22895
han.kParticipantJanuary 27, 2020 at 13:48 #22925
han.kParticipantJanuary 27, 2020 at 16:18 #22926
InFINNityDeckParticipantHoi Han,
ja, dat ziet er inderdaad niet netjes uit. Nu valt het mij op dat de onderkant van de data best smal is en dat de rechter flank niet netjes oploopt, alleen de bovenste vier punten lopen in dezelfde richting als de best fit curve, het onderste deel loopt steiler op. Ik heb jouw plaatje even bewerkt en de best magenta fit opnieuw gepositioneerd (de groene lijn), dan valt dat meteen op. Ik begrijp alleen niet helemaal waarom de hele rechte kant verworpen wordt. Het zou twee dingen kunnen betekenen:
– je filtert te zwaar (kappa = 3 of hoger);
– je model past niet goed bij de werkelijkheid.Ik heb natuurlijk geen idee hoe jouw script de hyperbool oplost, maar ik neem aan dat de helling van de flanken automatisch bepaald worden, of zijn deze afhankelijk van de gebruikte instellingen?
Werd dat hoge punt in de linker flank dus niet verworpen?
Nicolàs
https://www.dehilster.info/astronomy
In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.
January 27, 2020 at 20:09 #22928
InFINNityDeckParticipantah, plaatje vergeten….
https://www.dehilster.info/astronomy
In the observatory: Mount: 10Micron GM3000HPS, OTAs mounted: SW Esprit 80ED & Esprit 150ED, Celestron C11 XLT EdgeHD, Lunt LS80THA single stack, GTT60 (60mm aperture Galilean Type Telescope), Cameras: ZWO ASI1600MM Cool (2x), ASI174MM, ASI290MM & MC, QHYCCD QHY163M, OTAs on the ground: SW Explorer 300PDS, Bresser Messier 130/650 & 90/500.
January 27, 2020 at 20:17 #22929
han.kParticipantHallo Nicolàs
Hopelijk is deze technische draad niet storend voor de andere leden.
De mad word als volgt berekend: mad:= median(abs(x – median(x))) Waarbij x een array is.
Zie: https://eurekastatistics.com/using-the-median-absolute-deviation-to-find-outliers/
De eerste median(x) is de vervanger for mean=gemiddelde. Het probleem met curve fitten is dat je alle combinaties uitprobeert. Stel je heb een hyperbool met aan een kant een iets langere vleugel. Dat dan kan het zijn dat langere vleugel voor de 55% van de gemeten waarden (afwijkingen) zorgt. De mediaan ligt dan bij 50% van de gemeten waarden en dan is de mediaan gelijk aan een fout van de lange vleugel en kan dicht bij nul liggen. De waarde van de korte vleugel worden dan allemaal als outlier gezien. De outlier grens had ik bij 2* 1.48*mad gelegd wat overeenkomt met 2 * standaard deviatie ofwel 96% bij een normale verdeling.
Misschien zou je de mad van elke vleugel apart moeten bepalen…
Mijn conclusie is nu dat de standaard methode om outliers te vinden betrouwbaarder werkt bij curve fitten dan mad. Bij mad locked de routine soms op de langere hyperbool vleugel. Een van de problemen is dat de populatie totaal geen normale verdeling heeft (tijdens het curve fitten).
Het verwijderen van outliers is veel lastiger dan ik dacht.
Han
-
AuthorPosts
- You must be logged in to reply to this topic.









