Astrometrie eines Widefields mit starker Verzeichnung

Der schwierigste und komplizierteste Teil von Theli.
Forumsregeln
Bitte die Beiträge kurz fassen, so kann man sie nachher besser finden. Sollte ein Problem gelöst sein, dann einen neuen Beitrag eröffnen. Ebenso wenn die Ursache eine ganz andere ist, oder es Offtopic wird.

Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon woho » Dienstag 6. August 2013, 10:38

Hallo zusammen,

ich bekomme die Astrometrie eines Widefield Mosaiks nicht sauber hin, bitte um Eure Hilfe.

Die Bilder wurden mit dem Canon 24-105L bei 24mm am Vollformat gemacht (Pixelscale 52.4"/pixel). Die Linse hat bei 24mm eine starke Tonnenverzeichnung, ein kubisches Polynom sollte das aber wegkorrigieren können. Trotzdem ist das Feld mit der Verzeichnung offenbar recht problematisch für die Astrometrie, auch die Web- und Commandline-Tools von astrometry.net bekommen keine saubere Lösung zusammen.

Ich zeige jetzt mal mein Vorgehen für einen Frame, ich bekomme nichtmal dafür eine Lösung. Evtl. habe ich ja was simples übersehen, oder jemand hat ein paar Tricks auf Lager, die mir hier helfen könnten.

Als Startpunkt für die Astrometrie in Theli habe ich manuell Bildmitte, Drehlage und Pixelscale bestimmt und in den FITS header eingetragen (mit replacekey). Referenz-Katalog ist TYC mit Mag-Limit 7 und Mitte bei 19:00:00, 40:00:00, Radius 5400 (für den Einzelframe wäre natürlich ein kleinerer Radius ausreichend). Den Source-Katalog habe ich mit DETECT_THRESH 40, FLAG 8 und Saturation 10000 erstellt, Rest auf default.

Der G-Kanal mit überlagertem Source- und Referenzkatalog sieht dann in DS9 so aus (oben Ausschnitt aus Bildmitte, unten kompletter Frame; Bilder für volle Auflösung evtl. separat öffnen, werden vom Forum verkleinert):
Bild
Bild
Oben sieht man, dass Bildmitte, Skalierung und Rotation passen sollten, oder seht Ihr das anders? Unten sieht man, wie die Verzeichnung nach aussen hin die Sourcen stark nach innen zieht, das sind am Rand über 100 Pixel.

Frei Auge würde ich sagen die Korrelation von Src und Ref Objekten in den Screenshots oben ist ok, oder seht Ihr das anders?
Wie seht Ihr die Objektdichte? Versuche mit weniger Objekten (Mag-Limit 6, DETECT_THRESH 100) ergeben auch kein Matching.

Für die Astrometrie habe ich Scamp verwendet, Parameter waren Default ausser: DISTORT_DEGREES 4 (für kubisches Polynom), FGROUP_RADIUS 180, CROSSID_RADIUS 500 (ca. Pixelscale * 10). Die Astrometrie endet mit
Code: Alles auswählen
> Solving the global astrometry matrix...
> WARNING: Significant inaccuracy likely to occur in projection

Auch die Plots zeigen, dass es nicht passt (hohe Errors, und R, G und B Frame in den fgroups verschoben).
Komplettes Logfile: theli_ap_comm.sh.log
Plots: astr_referror1d_1.png fgroups_1.png

Ich vermute der CROSSID_RADIUS ist zu klein. Um auch die Src-Ref Paare an den Bildrändern zu finden, müsste er mindestens 100 Pixel groß sein, oder verstehe ich den CrossId-radius falsch? Ich habe auch 3000 und 5000 versucht, das bringt Scamp dann komplett durcheinander (distortion plots sehen aus wie ein Zeltdach).

Frage 1: seht Ihr bei den Parametern bessere Settings?
Frage 2: falls nein: kann ich Scamp helfen, indem ich eine Schätzung der Verzeichnung mitgebe (habe keine Angst vor der Kommandozeile, komme auch mit bash und C++ klar ;) )?
Frage 3: falls nein: wäre es gangbar, die Roh-Frames mit Swarp zu entzerren und darauf dann die Astrometrie zu machen? Gibt es Tools oder Doku, mit denen ich dann die resultierende Lösung mit der Swarp-Projektion verknüpfen kann, so dass ich die Coaddition wieder auf den original Frames machen kann?

Schon im Voraus vielen Dank für Eure Mühe, das nachzuvollziehen und über Lösungsmöglichkeiten zu grübeln :)
Wolfgang

P.S.:
Ich kann auch gerne den kalibrierten Frame hochladen (R, G und B dieser DSLR Einzelaufnahme), aber das wären 3 * 85MB FITS. Wie würdet Ihr das handhaben? Kennt Ihr ein Tool mit dem ich die float FITS in ein 16-bit TIFF umwandeln kann, damit das etwas Web-tauglicher wird? Die Fits Header müsste ich dann extra bereitstellen.

P.P.S.:
Damit man in Ds9 von den Objekten was sieht, muss man die Region files etwas anpassen (die sind wohl eher für langbrennweitige Aufnahmen ausgelegt). Ich hab das so gemacht:
Code: Alles auswählen
gawk '{ if (FNR==1) print; else printf "%s %f %f %f %f %f\n", $1, $2, $3, $4*2., $5*2., $6 }' \
    lights/cat/ds9cat/eos5d3_101EOS5D_HM6C1785_G_1OFC.reg > \
    lights/cat/ds9cat/eos5d3_101EOS5D_HM6C1785_G_1OFC_bigsym.reg
sed -e 's/,5")/,240")/g' lights/cat/ds9cat/theli_mystd.reg > lights/cat/ds9cat/theli_mystd_bigsym.reg
/home/woho/work/theli/ds9 -view layout vertical -geometry 1600x1200 \
    lights/eos5d3_101EOS5D_HM6C1785_G_1OFC.fits -scale asinh -scale mode 99.95 \
    -region lights/cat/ds9cat/eos5d3_101EOS5D_HM6C1785_G_1OFC_bigsym.reg \
    -region lights/cat/ds9cat/theli_mystd_bigsym.reg
woho
 
Beiträge: 56
Registriert: Samstag 30. Juni 2012, 09:00
Wohnort: Bad Aibling

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon woho » Mittwoch 7. August 2013, 10:18

Update: ich den Ansatz von Frage 3 oben mit einem Brachial-Hack probiert und damit immerhin ein plausibles Matching erhalten :)

Vorgehen: ich habe erstmal keine Astrometrie gemacht, sondern manuell ein .head-File im lights/headers/ erstellt. Basis dafür waren die FITS-Keys aus dem kalibrierten Frame, die ich mit dfits extrahiert habe:
Code: Alles auswählen
dfits -x 0 lights/eos5d3_101EOS5D_HM6C1785_G_1OFC.fits | \
    grep -E "^(EQUINOX |RADECSYS|CTYPE1  |CUNIT1  |CRVAL1  |CRPIX1  |CD1_1   |CD1_2   |CTYPE2  |CUNIT2  |CRVAL2  |CRPIX2  |CD2_1   |CD2_2   )=" > lights/headers/eos5d3_101EOS5D_HM6C1785_G_1.head

Dann kommen die benötigten PVi_j Keys mit einer geschätzten kubischen radialen Verzerrung, sowie die von der Photometrie erzeugten Keys:
Code: Alles auswählen
{
    # radial cubic distortion:
    # x'= x * r' / r
    #   = x * r * (1 + distort3 * r²) / r
    #   = x + distort3 * x * (x² + y²)
    #   = x + distort3 * x³ + distort3 * x * y²
    DISTORT3="3.000000000000E-05"
    echo "PV1_0   =   0.000000000000E+00 / Projection distortion parameter               " # 1
    echo "PV1_1   =   1.000000000000E+00 / Projection distortion parameter               " # x
    echo "PV1_2   =   0.000000000000E+00 / Projection distortion parameter               " # y
    echo "PV1_4   =   0.000000000000E+00 / Projection distortion parameter               " # x²
    echo "PV1_5   =   0.000000000000E+00 / Projection distortion parameter               " # xy
    echo "PV1_6   =   0.000000000000E+00 / Projection distortion parameter               " # y²
    echo "PV1_7   =   ${DISTORT3} / Projection distortion parameter               " # x³
    echo "PV1_8   =   0.000000000000E+00 / Projection distortion parameter               " # x²y
    echo "PV1_9   =   ${DISTORT3} / Projection distortion parameter               " # xy²
    echo "PV1_10  =   0.000000000000E+00 / Projection distortion parameter               " # y³
    echo "PV2_0   =   0.000000000000E+00 / Projection distortion parameter               " # 1
    echo "PV2_1   =   1.000000000000E+00 / Projection distortion parameter               " # y
    echo "PV2_2   =   0.000000000000E+00 / Projection distortion parameter               " # x
    echo "PV2_4   =   0.000000000000E+00 / Projection distortion parameter               " # y²
    echo "PV2_5   =   0.000000000000E+00 / Projection distortion parameter               " # xy
    echo "PV2_6   =   0.000000000000E+00 / Projection distortion parameter               " # x²
    echo "PV2_7   =   ${DISTORT3} / Projection distortion parameter               " # y³
    echo "PV2_8   =   0.000000000000E+00 / Projection distortion parameter               " # y²x
    echo "PV2_9   =   ${DISTORT3} / Projection distortion parameter               " # yx²
    echo "PV2_10  =   0.000000000000E+00 / Projection distortion parameter               " # x³
    echo "FGROUPNO=                    1 / SCAMP field group label                       "
    echo "ASTINST =                    1 / SCAMP astrometric instrument label            "
    echo "FLSCALE =   1.000000000000E+00 / SCAMP relative flux scale                     "
    echo "MAGZEROP=           0.00000000 / SCAMP zero-point                              "
    echo "PHOTINST=                    1 / SCAMP photometric instrument label            "
    echo "PHOTLINK=                    F / True if linked to a photometric field         "
    echo "RZP     =             0.000000 / THELI relative zeropoint                      "
    echo "FLXSCALE=         1.000000E-00 / THELI relative flux scale                     "
    echo "END     "
} >> lights/headers/eos5d3_101EOS5D_HM6C1785_G_1.head


Das ganze für alle drei Filter. Dann habe ich damit in THELI die coaddition gemacht, mit Mittelpunkt auf CRVAL1/2 und gleicher Pixelscale.

Dann habe ich die originalen kalibrierten Frames geparkt und durch das Coadditionsergebnis ersetzt:
Code: Alles auswählen
mv lights/*.fits park/
cp -p lights/coadd_Red/coadd.fits lights/reproj_R_1OFC.fits
cp -p lights/coadd_Green/coadd.fits lights/reproj_G_1OFC.fits
cp -p lights/coadd_Blue/coadd.fits lights/reproj_B_1OFC.fits
cp -p lights/coadd_Red/coadd.weight.fits WEIGHTS/reproj_R_1OFC.weight.fits
cp -p lights/coadd_Green/coadd.weight.fits WEIGHTS/reproj_G_1OFC.weight.fits
cp -p lights/coadd_Blue/coadd.weight.fits WEIGHTS/reproj_B_1OFC.weight.fits


Auf diesen entzerrten Frames habe ich Source-Kataloge erstellt. Der G-Frame mit überlagerten Src und Ref Katalogen sieht jetzt so aus:
Bild

Da ich die Verzerrung geschätzt habe, passts noch nicht ganz, aber es reicht, daß Scamp jetzt mit
CROSSID_RADIUS 500 (10-fache Pixelscale) eine plausible Lösung findet. Ich bekomme zwar immernoch die Fehlermeldung
Code: Alles auswählen
> WARNING: Significant inaccuracy likely to occur in projection

aber die Plots sehen ordentlich aus: astr_referror1d_1.png fgroups_1.png

So, jetzt ist der nächste Schritt, das zu ent-Hack-en und zu automatisieren. Was mich vor allem stört: ich möchte für das Gesamtergebnis nicht reprojezierte Einzelframes coaddieren.

Idealerweise muss ich den kalibrierten Originalframe gar nicht reprojezieren, sondern nur den extrahierten Source-Katalog vor-entzerren, dann die Astrometrie machen, und anschließend die vor-Entzerrung in das Astrometrieergebnis einrechen.

Wie entzerre ich den Source-Katalog am Besten? Die Entzerrung an sich bekomme ich hin, aber wie bekomme ich die Positionen der Sourcen aus dem Katalog, und wie schreibe ich sie zurück? Ich muss zugeben, dass ich mich mit den Katalogen noch nicht genauer auseinandergesetzt habe. Welche der Katalog-Files sind für Scamp relevant?
Code: Alles auswählen
find lights/cat -name eos5d3_101EOS5D_HM6C1785_G* | sort
lights/cat/ds9cat/eos5d3_101EOS5D_HM6C1785_G_1OFC.reg
lights/cat/eos5d3_101EOS5D_HM6C1785_G_1OFC.anet
lights/cat/eos5d3_101EOS5D_HM6C1785_G_1OFC.cat
lights/cat/eos5d3_101EOS5D_HM6C1785_G_1OFC.cat1
lights/cat/eos5d3_101EOS5D_HM6C1785_G.cat
lights/cat/skycat/eos5d3_101EOS5D_HM6C1785_G_1OFC.skycat

ds9 und skycat sind hier unrelevant, da nur zur Visualisierung, oder? Die anderen enthalten binäre FITS tables, mit welchen Tools kann ich die bearbeiten? Muss ich alle 4 Files modifizieren?

Nach erfolgreicher Astrometrie muss ich dann meine Vor-Entzerrung in die PVi_j Keys des lights/headers/eos5d3_101EOS5D_HM6C1785_G_1.head einrechnen. Kennt Ihr Papers oder Code, aus denen die Verknüpfung zweier PV Projektionen hervorgeht, oder muss ich mir das selber durchrechnen? Will das Rad nicht doppelt erfinden.

Was meint Ihr, bin ich mit dem Ansatz auf dem richtigen Weg? Übersehe ich was? Oder geht das ganze sogar einfacher?

Danke,
Wolfgang

P.S.: Ich weiß, es wäre gescheiter, ich kaufe mir eine ordentliche WW-Festbrennweite, aber für die paar mal Widefield lohnt sich das momentan nicht. Und wenn jemand evtl. mal mit einem Fisheye arbeitet, dann hat er das gleiche Problem ...
woho
 
Beiträge: 56
Registriert: Samstag 30. Juni 2012, 09:00
Wohnort: Bad Aibling

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon woho » Donnerstag 8. August 2013, 11:06

Ich habe mir die LDAC tools angeschaut und den Schritt der Katalogmanipulation gelöst.

Dazu habe ich das create_astromcats_para.sh auf create_astromcats_para_lenscorr.sh kopiert und folgendes (zwischen "# beg/end lenscorr") eingefügt (Stand 2.7.1, Update auf 2.7.2 steht noch aus):
Code: Alles auswählen
      # remove bad stuff
      minfluxrad=`echo ${V_SEXCATMINFWHM} | ${P_GAWK} '{print 0.5*$1}'`

      # beg lenscorr
      # roughly correct barrel distortion of wide angle lenses to help Scamp find a solution
      # todo: move distortion parameter into param_set2.ini
      V_LENS_DISTORTION="3e-5"
        # radial cubic distortion:
        # x'= x * r' / r
        #   = x * (r + lens_distort * r³) / r
        #   = x + lens_distort * x * (x² + y²)
        #   = x + lens_distort * x³ + lens_distort * x * y²
        # copy image_iext.fits to image_iext_lens.fits and add PV keys with distortion correction
        FILE_LENS=${file%.fits}_lens.fits
        cp -p ${file} ${FILE_LENS}
        LENS_DISTORTION=$(echo ${V_LENS_DISTORTION} | ${P_GAWK} '{ printf "%18.12E\n", $1 }')
        replacekey ${FILE_LENS} \
            "PV1_0   =   0.000000000000E+00 / Projection distortion parameter 1             " "DUMMY30 " \
            "PV1_1   =   1.000000000000E+00 / Projection distortion parameter x             " "DUMMY31 " \
            "PV1_2   =   0.000000000000E+00 / Projection distortion parameter y             " "DUMMY32 " \
            "PV1_4   =   0.000000000000E+00 / Projection distortion parameter x²            " "DUMMY33 " \
            "PV1_5   =   0.000000000000E+00 / Projection distortion parameter xy            " "DUMMY34 " \
            "PV1_6   =   0.000000000000E+00 / Projection distortion parameter y²            " "DUMMY35 " \
            "PV1_7   =   ${LENS_DISTORTION} / Projection distortion parameter x³            " "DUMMY36 " \
            "PV1_8   =   0.000000000000E+00 / Projection distortion parameter x²y           " "DUMMY37 " \
            "PV1_9   =   ${LENS_DISTORTION} / Projection distortion parameter xy²           " "DUMMY38 " \
            "PV1_10  =   0.000000000000E+00 / Projection distortion parameter y³            " "DUMMY39 " \
            "PV2_0   =   0.000000000000E+00 / Projection distortion parameter 1             " "DUMMY40 " \
            "PV2_1   =   1.000000000000E+00 / Projection distortion parameter y             " "DUMMY41 " \
            "PV2_2   =   0.000000000000E+00 / Projection distortion parameter x             " "DUMMY42 " \
            "PV2_4   =   0.000000000000E+00 / Projection distortion parameter y²            " "DUMMY43 " \
            "PV2_5   =   0.000000000000E+00 / Projection distortion parameter yx            " "DUMMY44 " \
            "PV2_6   =   0.000000000000E+00 / Projection distortion parameter x²            " "DUMMY45 " \
            "PV2_7   =   ${LENS_DISTORTION} / Projection distortion parameter y³            " "DUMMY46 " \
            "PV2_8   =   0.000000000000E+00 / Projection distortion parameter y²x           " "DUMMY47 " \
            "PV2_9   =   ${LENS_DISTORTION} / Projection distortion parameter yx²           " "DUMMY48 " \
            "PV2_10  =   0.000000000000E+00 / Projection distortion parameter x³            " "DUMMY49 "
        # extract pixel positions from catalog
        ${P_LDACTOASC} -i /$1/$2/cat/${BASE}.cat0 -b -t LDAC_OBJECTS \
            -k X_IMAGE Y_IMAGE -s > ${TEMPDIR}/${BASE}_tmp1.asc
        # run xy2sky to project these positions to world coordinates in distortion corrected WCS
        # these should be equivalent to the result of running sex_theli on a projected (distortion corrected) frame
        ${P_XY2SKY} -d -n 7 ${FILE_LENS} @${TEMPDIR}/${BASE}_tmp1.asc > ${TEMPDIR}/${BASE}_tmp2.asc
        ${P_GAWK} '{ print $1 " " $2; }' ${TEMPDIR}/${BASE}_tmp2.asc > ${TEMPDIR}/${BASE}_tmp3.asc
        # run xy2sky to project the distortion corrected world coordinates back to pixels in the distorted frame
        ${P_SKY2XY} ${file} @${TEMPDIR}/${BASE}_tmp3.asc > ${TEMPDIR}/${BASE}_tmp4.asc
        ${P_GAWK} '{ print $1 " " $2 " " $1 " " $2 " " $5 " " $6; }' ${TEMPDIR}/${BASE}_tmp4.asc > ${TEMPDIR}/${BASE}_tmp5.asc
        # replace X/Y_IMAGE, X/Y_WORLD and ALPHA/DELTA_J2000 by the distortion corrected values
        # for strict correctness, we'd need to adjust A/B_WORLD/IMAGE etc. also.
        # ignore them, hoping that small-scale distortion is small
        ${P_LDACDELKEY} -i /$1/$2/cat/${BASE}.cat0 -o /$1/$2/cat/${BASE}.cat0a -t LDAC_OBJECTS \
            -k X_IMAGE Y_IMAGE ALPHA_J2000 DELTA_J2000 X_WORLD Y_WORLD
        {
            echo "VERBOSE = DEBUG"
            echo "COL_NAME  = X_WORLD"; echo "COL_TTYPE = FLOAT"; echo "COL_HTYPE = FLOAT"; echo 'COL_DEPTH = 1'
                echo 'COL_UNIT = "deg"'; echo 'COL_COMM = "Barycenter position along world x axis"'
            echo "COL_NAME  = Y_WORLD"; echo "COL_TTYPE = FLOAT"; echo "COL_HTYPE = FLOAT"; echo 'COL_DEPTH = 1'
                echo 'COL_UNIT = "deg"'; echo 'COL_COMM = "Barycenter position along world y axis"'
            echo "COL_NAME  = ALPHA_J2000"; echo "COL_TTYPE = FLOAT"; echo "COL_HTYPE = FLOAT"; echo 'COL_DEPTH = 1'
                echo 'COL_UNIT = "deg"'; echo 'COL_COMM = "Right ascension of barycenter (J2000)"'
            echo "COL_NAME  = DELTA_J2000"; echo "COL_TTYPE = FLOAT"; echo "COL_HTYPE = FLOAT"; echo 'COL_DEPTH = 1'
                echo 'COL_UNIT = "deg"'; echo 'COL_COMM = "Declination of barycenter (J2000)"'
            echo "COL_NAME  = X_IMAGE"; echo "COL_TTYPE = FLOAT"; echo "COL_HTYPE = FLOAT"; echo 'COL_DEPTH = 1'
                echo 'COL_UNIT = "pixel"'; echo 'COL_COMM = "Object position along x"'
            echo "COL_NAME  = Y_IMAGE"; echo "COL_TTYPE = FLOAT"; echo "COL_HTYPE = FLOAT"; echo 'COL_DEPTH = 1'
                echo 'COL_UNIT = "pixel"'; echo 'COL_COMM = "Object position along y"'
        } > ${TEMPDIR}/asctoldac_tmp.conf
        ${P_ASCTOLDAC} -i /$1/$2/cat/${BASE}.cat0a -a ${TEMPDIR}/${BASE}_tmp5.asc -t LDAC_OBJECTS \
            -c ${TEMPDIR}/asctoldac_tmp.conf -o /$1/$2/cat/${BASE}.cat0
        rm /$1/$2/cat/${BASE}.cat0a
        rm ${TEMPDIR}/${BASE}_tmp[12345].asc
        rm ${TEMPDIR}/asctoldac_tmp.conf
      #end lenscorr

      # check if a region file exists
      get_region


Der Code macht folgendes:
  • Kopieren des kalibrierten FITS frames <frame>_1OFC.fits auf <frame>_1OFC_lens.fits und Ersetzen der DUMMY30-DUMMY49 Keys durch die PV terme für die geschätzte Verzeichnungskorrektur (der Distortion Parameter ist momentan noch hardcoded)
  • Extrahieren der X/Y Pixelkoordinaten der Sources aus dem von SExtractor generierten Katalog
  • Projektion der X/Y Pixel in RA/DE mit dem verzeichnungskorrigierten FITS (<frame>_1OFC_lens.fits)
  • Rückprojektion der RA/DE auf X/Y Pixel mit dem originalen FITS (<frame>_1OFC.fits)
  • Ersetzen der X/Y Pixelkoordinaten sowie RA/DE Weltkoordinaten im Katalog durch die projezierten Werte
Ergebnis ist ein Katalog, wie ihn SExtractor erzeugen würde, wenn er auf dem verzeichnungskorrigierten <frame>_1OFC_lens.fits gesucht hätte und dabei die PV Terme berücksichtigen würde. Damit kann Scamp dann mit einem wesentlich kleineren CROSSID_RADIUS parametrisiert werden. Eine Ungenauigkeit ist drin: ich habe angenommen, dass sich die Objektgrößen (Halbachsen, ...) durch die Verzerrung nicht wesentlich ändern, und die zugehörigen Spalten im Katalog nicht verändert. Ich hoffe das ist für die Astrometrie nicht schlimm.

In der THELI GUI muss ich im Commands Fenster das create_astromcats_para.sh durch create_astromcats_para_lenscorr.sh ersetzen und kann dann ganz normal die Source Kataloge erstellen lassen. Zur Kontrolle in DS9 muss ich dann das <frame>_1OFC_lens.fits als Bild laden und die Kataloge darüberlegen.

Dann kann ich ganz normal die Astrometrie durchführen. Das Ergebnis entspricht dem mit den reprojezierten Einzelframes im vorherigen Posting, läuft aber jetzt mit dem Standard-THELI-Workflow ohne manuelle Hacks :)

Jetzt fehlt noch die Anpassung der PV Keys in den Astrometrie-Ergebnissen (headers/<frame>_1.head), damit die Coaddition für das Mosaik stimmt. Schau ma mal, ob ich das auch noch hinbekomme ... Inputs sind ausdrücklich willkommen.

Ciao,
Wolfgang
woho
 
Beiträge: 56
Registriert: Samstag 30. Juni 2012, 09:00
Wohnort: Bad Aibling

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon woho » Samstag 10. August 2013, 10:16

So, jetzt bin ich auch mit dem letzten Schritt durch.

In diesem Paper sind die PV Koeffizienten beschrieben. Die Kombination der PVs für die Linsen-Vorentzerrung und der PVs von Scamps Lösung bekomme ich durch Ersetzen von x durch x + d*x³ + d*xy² und y durch y + d*y³ + d*x²y in Gleichung (1) und (2), Ausmultiplizieren und Sortieren nach Potenzen von x und y. Ziemliche Fleißarbeit, hoffe ich habe mich nicht vertan. Die Coadds zeigen keine Doppelsterne, trotzdem würde ein Review des Codes nicht schaden.

In den THELI Workflow habe ich das jetzt folgendermaßen integriert: den Parameter für die Linsen-Vorentzerrung habe ich ins Instrument .ini-File dazugeschrieben:
Code: Alles auswählen
...
# Pixel scale in arcsec
PIXSCALE=52.4

# Lens distortion precorrection (cubic radial distortion factor)
LENSDISTORT=3.0e-5

# Detector gain
GAIN=1.0
...


Wenn LENSDISTORT im .ini angegeben wurde, wird im
create_astromcats_para.sh
die Vorentzerrung gemacht, und im
create_scamp.sh
nach der Astrometrie die Vorentzerrung in die PV Keys eingerechnet.

Die Dateianhänge basieren auf der THELI GUI 2.7.2, meine Modifikationen sind mit if [ "${LENSDISTORT}" != "" ]; then ... fi geklammert.

Zum Wert des LENSDISTORT Parameters: ich habe den durch Ausprobieren ermittelt (im DS9 den Source-Katalog über das <frame>_lens.fits gelegt). Mir ist noch nicht klar, wie man den Wert z.B. aus den Angaben k1= 0.0794 mit ru=rd+k1*rd^3 (r in center-corner units) von Photozone ableitet. Das x in dem PV Polynom ist laut Paper eine "intermediate longitude", was auch immer damit genau gemeint ist.

Soweit bin ich jetzt zufrieden, meine Astrometrie klappt damit, und die Integration in THELI gefällt mir auch. Ich werde jetzt damit etwas Erfahrung sammeln und würde mich freuen, wenn Ihr das ebenfalls ausprobiert, falls Ihr passende Aufnahmen habt. Zum Ausprobieren einfach die beiden angehängten Dateien ins theli/gui-2.7.2/scripts kopieren und im Instruments .ini den LENSDISTORT Parameter dazuschreiben. Wenn im .ini kein LENSDISTORT angegeben ist, sollte sich THELI wie bisher mit den original Skripten verhalten.

Mischa, würdest Du das in THELI aufnehmen, oder ist der Anwendungsfall zu speziell? Wenn Dir was an der Implementierung nicht passt, hab keine Hemmungen, das zu ändern. Ich habe versucht, mich an den bestehenden Skripten zu orientieren, habe da aber logischerweise nicht Deine Erfahrung.

Ciao,
Wolfgang
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
woho
 
Beiträge: 56
Registriert: Samstag 30. Juni 2012, 09:00
Wohnort: Bad Aibling

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon woho » Samstag 10. August 2013, 22:28

Kleiner Nachtrag: diese Quelle beschreibt die Umrechnung der Pixelkoordinaten in die Variablen der PV Terme.

Damit berechnet sich der LENSDISTORT Parameter aus dem Parameter k1 von Photozone so:
Code: Alles auswählen
LENSDISTORT = k1 / ( (REFPIXX² + REFPIXY²) * (PIXSCALE / 3600)² )

REFPIXX, REFPIXY und PIXSCALE sind die Werte aus dem Instrument .ini File.

Bei mir deckt sich das gut mit meinem empirischen Wert von 3.0e-5:
Code: Alles auswählen
LENSDISTORT = 0.0794 / ( (2897² + 1934²) * (52.4 / 3600)² ) = 3.089e-5


Ciao,
Wolfgang
woho
 
Beiträge: 56
Registriert: Samstag 30. Juni 2012, 09:00
Wohnort: Bad Aibling

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon woho » Sonntag 11. August 2013, 13:24

Neue Version von
create_astromcats_para.sh
mit einem Bugfix für negativen LENSDISTORT (Kissenverzeichnung). Ausserdem habe ich den Code für die Vor-Entzerrung etwas weiter nach oben verschoben, der war ungeschickt platziert (funktionell kein Unterschied, aber die Lesbarkeit des Skriptes ist so jetzt besser).

Noch ein Tip: zum Abschätzen des LENSDISTORT war es bei mir für zwei Linsen notwendig, die PIXSCALE vom Nominalwert wegzuändern (z.B. mein 100mm Objektiv hat am Sternenhimmel 101.3 mm Brennweite). Mein Vorgehen: Zentrum und Verdrehung so genau wie möglich bestimmen, dann Pixelskala so anpassen, dass Zentralbereich der Aufnahme stimmt, dann mit LENSDISTORT die Aussenbereiche korrigieren.

Ciao,
Wolfgang
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
woho
 
Beiträge: 56
Registriert: Samstag 30. Juni 2012, 09:00
Wohnort: Bad Aibling

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon mischa » Freitag 16. August 2013, 00:54

Hi Wolfgang,

sorry dass ich hier nicht frueher geantwortet habe. Das automatische login hat bei mir die letzte Woche nicht funktioniert, so dass mir neue threads nicht angezeigt wurden.
Was du hier gemacht hast, offenbar ohne allzu viel Vorwissen, lasst laesst mich ganz ehrlich gesagt ziemlich sprachlos zurueck. Die meisten meiner Kollegen wuerden das nicht auf die Reihe bekommen, und das sage ich in vollem Ernst! :shock: Reichlich cool, das noetigt mir meinen tiefsten Respekt ab. 8)
Auf den ersten Blick kann ich so keine Fehler in der Vorgehensweise erkennen, das richtige Ergebnis spricht da auch fuer sich. Ich haette es selbst genauso gemacht. Das duerfte sich so relativ direkt in Theli umsetzen lassen, zumindest kann ich keine "showstopper" erkennen. Leider unterstuetzt scamp die Radialterme in der PV Konvention nicht, d.h. setzt die entsprechenden Koeffizienten auf Null, und es kann auch keine Vorgabewerte fuer die Distortion annehmen. Swarp erkennt die Radialterme allerdings schon, wie du hier gezeigt hast.
Vermutlich die beste Loesung ware, wenn man Scamp das matching machen laesst, ohne Distortionskorrektur, und anschliessend bestimmt man den Radialterm selbst. Das sollte moeglich sein. Ich werde mir das auf jeden Fall ansehen, momentan haben aber andere Projekte vorrang, so dass wohl erst in version 3 Eingang finden wird.

Jedenfalls vielen dank fuer die Muehe!

Mischa
mischa
Moderator
 
Beiträge: 1266
Registriert: Freitag 7. Oktober 2011, 14:07
Wohnort: Chile

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon woho » Freitag 16. August 2013, 22:33

Hi Mischa,

erstmal vielen Dank für das große Lob, ich weiß das sehr zu schätzen. Freut mich sehr, dass ich der Theli Gemeinde etwas zurückgeben kann. Danke auch dass Du das alles als OpenSource veröffentlichst, ohne Einblick in die Skripten wäre mir das hier nicht möglich gewesen.

mischa hat geschrieben:Leider unterstuetzt scamp die Radialterme in der PV Konvention nicht, d.h. setzt die entsprechenden Koeffizienten auf Null, und es kann auch keine Vorgabewerte fuer die Distortion annehmen. Swarp erkennt die Radialterme allerdings schon, wie du hier gezeigt hast.

Ja, wenn Scamp Vorgabewerte für die Distortion annehmen würde, hätte ich mir das alles sparen können. Aber da dem nicht so ist, habe ich meinen Workaround entwickelt.

Allerdings habe ich die Radialterme (PV1_3, PV1_11, ...) nicht verwendet, nur die Terme, die auch Scamp ausgibt (PV1_0, PV1_1, PV1_2, PV1_4, ...). Ob Swarp die Radialterme erkennt, weiß ich also nicht.

Für meinen Fall sind die Radialterme nicht nötig, den kubischen Term für die Linsenverzeichnung kann ich per zentrischer Streckung mit PV1_7 und PV1_9 ausdrücken. Mit d als radialem Verzerrungsparameter:
Code: Alles auswählen
r' = r + d * r³
x'= x * r' / r
   = x * (r + d * r³) / r
   = x * (1 + d * r²)
   = x + d * x * (x² + y²)
   = x + dx³ + dxy²
->
    PV1_1 = 1
    PV1_7 = d
    PV1_9 = d

y bzw. PV2_... analog.

mischa hat geschrieben:Vermutlich die beste Loesung ware, wenn man Scamp das matching machen laesst, ohne Distortionskorrektur, und anschliessend bestimmt man den Radialterm selbst.

Den Satz verstehe ich nicht, evtl. reden wir da aneinander vorbei.

Mein Ausgangsproblem war ja, dass Scamp kein matching findet, egal was ich an Parametrisierung versucht habe. Mein Erklärungsansatz dafür war, dass wegen der Distortion ein so großer Crossid-Radius nötig wäre (>100 Pixel), dass Scamp damit nicht mehr klarkommt.

Da Scamp keine Distortion-Vorgabe annimmt, habe ich die Source-Kataloge vor-entzerrt, und anschließend diese Vor-Entzerrung in das Ergebnis von Scamp eingearbeitet. Das sollte äquivalent zu einer Distortion-Berücksichtigung in Scamp sein.

Die Vor-Entzerrung macht meine Ergänzung im create_astromcats_para.sh. Dort werden die Katalogpositionen so manipuliert, als wären sie aus einem entzerrten calib-Frame extrahiert worden. Ursprünglich hatte ich die calib-Frames mit swarp wirklich entzerrt, jetzt reicht die Manipulation der Kataloge.

Die Verknüpfung mit dem Scamp-Ergebnis macht meine Ergänzung im create_scamp.sh. Ich hab dort einen Kommentar dazugeschrieben, was ich tue und wie ich das hergeleitet habe, wenn das zu knapp oder unverständlich ist, kann ich das gerne noch ausführlicher erklären.

mischa hat geschrieben:Das sollte moeglich sein. Ich werde mir das auf jeden Fall ansehen, momentan haben aber andere Projekte vorrang, so dass wohl erst in version 3 Eingang finden wird.

Keine Eile. Insgesamt hätte ich das schon gerne in Theli integriert, aber dass bei Dir andere Dinge mehr Priorität haben verstehe ich absolut. Ich finde es eh bewundernswert, wie Du Dich neben dem Profibusiness noch um die Amateure kümmerst.

Für mich funktioniert das momentan, und der Resonanz nach sind entweder alle im Urlaub, oder es hat bisher noch niemand mit so stark verzeichnenden Linsen ernsthaft gearbeitet :wink: Wenn jemand das sofort braucht, kann er meine Attachments oben verwenden. Bei Regressionen bitte hier melden, dann bessere ich nach.

Was aus meiner Sicht für den breiteren Gebrauch noch schön wäre: bessere Unterstützung für das interaktive iterative Bestimmen des LENSDISTORT Parameters. Ich habe ein kleines Skript geschrieben, mit dem ich Bildmitte, Verdrehung, Pixelscala und kubische Verzeichnung im FITS-Header eines repräsentativen Calib-Frames eintragen kann (CRVAL, CD Matrix, die PV1_0..10 und PV2_0..10) und mit Ds9 den Calib-Frame mit eingeblendetem Referenzkatalog angezeigt bekomme. Damit komme ich dann recht flott auf eine ordentliche Abschätzung der Verzeichnung. Sowas per GUI in Theli wäre natürlich klasse, evtl. als Punkt unter Miscellaneous.

Ciao,
Wolfgang
woho
 
Beiträge: 56
Registriert: Samstag 30. Juni 2012, 09:00
Wohnort: Bad Aibling

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon woho » Samstag 17. August 2013, 14:01

Hier noch das Skript, mit dem ich mich an den passenden LENSDISTORT Wert herantaste:

lensdistortion.sh


An passender Stelle (z.B. im /home/user/THELI/theli-<version>/bin/Linux[_64]/) speichern und ausführbar machen:
Code: Alles auswählen
chmod 755 /home/user/THELI/theli-<version>/bin/Linux[_64]/lensdistortion.sh

<version> durch die Theli-Version ersetzen, und je nach Rechnerarchitektur Linux oder Linux_64 schreiben.

In der Theli GUI ganz normal Preparation, Calibration und Weighting durchmachen. Es reicht, vorerst nur einen einzigen repräsentativen Science-Frame zu verwenden, dann gehts schneller. In Astrom/Photom nur den Referenzkatalog laden (RA, DE, Mag Limit, Radius ausfüllen, Server und Katalog wählen, Get Catalog).

Dann auf der Kommandozeile das Linsenverzeichnungsskript aufrufen. Parameter sind:
Code: Alles auswählen
usage: lensdistortion.sh theli_bin image center_ra center_de orientation pixel_scale lens_distortion [ds9]
  theli_bin: directory of THELI binaries (e.g. /home/user/THELI/theli-<version>/bin/Linux[_64]/)
  science: directory of science frames (e.g. /home/user/astro/theli/lights)
  image: calibrated frame (e.g. frame1_G_1OFC.fits)
  center_ra: image center RA coordinate (e.g.  17:32:48)
  center_de: image center DE coordinate (e.g. -10:05:23)
  orientation: image rotation in ° (e.g. 17.3); north up is 0°
  pixel_scale: arcseconds per pixel (e.g. 52.4)
  lens_distortion: cubic radial lens distortion parameter: r' = r + lens_distortion * r³ (e.g. 3.0e-5)
  ds9: path and name of DS9 executable (e.g. /home/user/THELI/ds9). Can be empty if ds9 is in $PATH


Nicht erschrecken, schaut schlimmer aus, als es ist. Beispiel für einen Aufruf in meiner Umgebung:
Code: Alles auswählen
lensdistortion.sh /home/woho/THELI/theli-1.6.1/bin/Linux_64 /home/woho/work/astro/milkyway_pnt/lights/eos5d3_100EOS5D_HM6C7457_G_1OFC.fits 17:08:05 -15:43:30 72 12.72 8.0e-6 /home/woho/THELI/ds9


Es erscheint ein DS9 Fenster mit dem angegebenen Frame und dem Theli Referenzkatalog überlagert. Der Referenzkatalog wird gemäß den Kommandozeilenargumenten für Bildmitte RA/DE, Bilddrehlage, Pixelscale und Linsenverzeichnung platziert.

Zum Ermitteln der Linsenverzeichnung gehe ich so vor:
  • RA/DE der Bildmitte, Bilddrehlage und Pixelscale grob vorschätzen, Linsenverzeichnung auf 0
  • Bildmitte verfeinern, indem die "center_ra"/"center_de" Argumente so angepasst werden, dass der Referenzkatalog in Bildmitte mit einem Stern in der Bildmitte übereinstimmt
  • Bilddrehlage verfeinern, indem das "orientation" Argument so verändert wird, dass die Referenzkreise und Sterne nur noch radial abweichen, d.h. alle Paare von Referenz und zugehörigem Stern liegen auf strahlenförmigen Linien um die Bildmitte.
  • Pixelscale verfeinern, indem das "pixel_scale" Argument so verändert wird, dass die Referenzen und Sterne im mittleren Bereich des Bildes übereinstimmen und eine radiale Abweichung nur noch in den äusseren Bereichen des Bildes übrigbleibt.
  • Linsenverzeichnung abschätzen, indem das "lens_distortion" Argument so ausgefüllt wird, dass die Referenzen und Sterne auch in den äusseren Bereichen des Bildes möglichst gut übereinstimmen. Dabei muss man unter Umständen Kompromisse eingehen. Ziel ist, dass die maximale Abweichung zwischen Referenz und Stern möglichst gering wird, da diese dann den benötigten CROSSID_RADIUS für Scamp bestimmt. Evtl. die äußersten Eckbereiche ignorieren, besonders wenn die wegen starker Vignettierung eh wegmaskiert werden (Weights anschauen!). Ein guter Startpunkt für den Parameter sind die Werte von Photozone, siehe diesen Beitrag weiter oben.
Schließlich die ermittelten Werte für die Pixelscale in das Instrument eintragen (am besten in der GUI, oder im <instrument>.ini die Werte für PIXSCALE, PIXSCX und PIXSCY anpassen). Dann den Wert der Linsenverzerrung im <instrument>.ini ergänzen (LENSDISTORT).

Damit die geänderte Pixelscale des Instrumentes dann in den FITS-Keys der kalibrierten Frames landet, muss man in der Theli GUI mit dem kompletten Satz Science-Frames nochmal von Vorne anfangen (Preparation, Calibration, ...).

Ciao,
Wolfgang
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
woho
 
Beiträge: 56
Registriert: Samstag 30. Juni 2012, 09:00
Wohnort: Bad Aibling

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon TorstenK » Sonntag 18. August 2013, 00:36

woho hat geschrieben:Für mich funktioniert das momentan, und der Resonanz nach sind entweder alle im Urlaub, oder es hat bisher noch niemand mit so stark verzeichnenden Linsen ernsthaft gearbeitet :wink:
Hi Wolfgang,

mitgelesen haben sicher einige. Danke für den interessanten Monolog. :wink:

Aber vermutlich hat wirklich keiner eine so stark verzeichnende Optik im Einsatz. Bei meiner kleinsten Brennweite (55er Pentax) sieht der Plot an der 36x36mm Kamera z.B. so aus:

Bild

Die 10% im pixel scale bekommt scamp noch geregelt. Wieviel % sind das denn bei deiner Linse?

VG
Torsten
TorstenK
 
Beiträge: 79
Registriert: Donnerstag 13. Oktober 2011, 18:55

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon woho » Sonntag 18. August 2013, 10:03

Hi Torsten,

TorstenK hat geschrieben:Die 10% im pixel scale bekommt scamp noch geregelt. Wieviel % sind das denn bei deiner Linse?


Bei meinem 24mm sind es fast 50% (Plot basiert auf den vorentzerrten Frames, anders bekomme ich keine plausible Scamp-Lösung und damit auch keinen Plot zustande):
Bild

Ich denke aber, dass die radiale Änderung der Pixelscale prinzipbedingt durch die Projektion ensteht, oder? Die (nicht-Fisheye) Linsen sind ja darauf konstruiert, Linien wieder als gerade Linien abzubilden. Beim Fotografieren einer Sphäre werden die äußeren Bereiche dann in die Länge gezogen (Gnomonische Projektion), damit die Großkreise am Himmel im Bild Linien bleiben, und das sieht man im Distortion Plot.

Scamp geht ja von einer Tangentialprojektion aus, daher passt das. Die Probleme kommen dann, wenn die Linse beginnt, Richtung Fisheye abzubilden (Tonnenverzerrung), d.h. wenn die Außenbereiche nicht mehr genug in die Länge gezogen werden. Das betrifft wohl vorallem die gängigen Weitwinkel-Linsen. Dann wandern die Sourceobjekte nach innen, und der CROSSID_RADIUS reicht nicht mehr, um sie mit den Referenzobjekten in Verbindung zu bringen. Ich denke das sieht man aber im Distortion Plot nur im direkten Vergleich mit einem entzerrten Plot.

Ist Dein Pentax das SMC DA* 55mm f/1.4 SDM? Wenn ja, dann ist die Tonnenverzerrung laut Photozone Messung mit k1=0.00944 um fast eine Größenordung niedriger als die meines Zooms bei 24mm mit k1=0.0794. Welchen CROSSID_RADIUS brauchst Du typischerweise, um mit dem 55er eine Scamp-Lösung zu bekommen? Grob überschlagen sollte Mischa's Vorgabe der 5- bis 10-fachen Pixelscale reichen, oder musst Du höher gehen?

Ciao,
Wolfgang
woho
 
Beiträge: 56
Registriert: Samstag 30. Juni 2012, 09:00
Wohnort: Bad Aibling

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon Knickohr » Sonntag 18. August 2013, 10:08

Hallo.

Ich lese den Beitrag schon eine ganze Weile still mit und bin überrascht und tief beeindruckt. Ich frage mich, warum Du das machst ? Wie ihr wißt, habe ich es mit Theli geschafft, ein ganzes Allsky mit 35mm zu erstellen. Na gut, keine 24mm, aber auch recht kleine Brennweiten. Allerdings astrometiere ich jedes einzelne Feld alleine, bevor ich die gemeinsame Astrometrie mache.

distort_1.png


fgroups_1.png


astr_interror2d_1.png


astr_referror2d_1.png


Bild1.gif


By the way, ich müßte da mal wieder weiter machen, hab ein paar neue und bessere Felder abgelichtet :mrgreen:

Thomas
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
Knickohr
Moderator
 
Beiträge: 631
Registriert: Donnerstag 29. September 2011, 12:01
Wohnort: Blaustein

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon woho » Sonntag 18. August 2013, 10:49

Hi Thomas,

Knickohr hat geschrieben:Ich frage mich, warum Du das machst ? Wie ihr wißt, habe ich es mit Theli geschafft, ein ganzes Allsky mit 35mm zu erstellen. Na gut, keine 24mm, aber auch recht kleine Brennweiten.

Ich mache das, weil ich keine passende Parametrierung für die Source-Extraction und die Scamp-Astrometrie gefunden habe, die ein sauberes Matching ergaben. Inzwischen glaube ich, dass es wegen dem großen nötigen CROSSID_RADIUS wohl auch keine Parametrierung gibt, mit der das klappt, lasse mich aber gerne eines Besseren belehren. Ersthaft! ;)

An Dein Allsky habe ich auch schon gedacht. Welches 35mm Objektiv verwendest Du? Die Messungen auf Photozone für die beiden Canon 35mm Festbrennweiten ergeben immernoch um einen Faktor 2.5 weniger Tonnenverzerrung als bei meinen 24mm. Welchen CROSSID_RADIUS verwendest Du?

Knickohr hat geschrieben:Allerdings astrometiere ich jedes einzelne Feld alleine, bevor ich die gemeinsame Astrometrie mache.

Gefühlsmäßig würde ich sagen, Deine Astrometrie ist ziemlich am Limit von dem, was Scamp an Verzerrung noch packt. Daher brauchst Du sehr gute Mittelpunktskoordinaten für die gemeinsame Astrometrie. Die separate Astrometrie als Vorstufe liefert Dir das wohl. Wenn Du Lust hast, könntest Du ja mal ausprobieren, ob Dein Matching mit meinen Erweiterungen besser wird (bessere Chi2- und Error-Plots). Evtl. nur auf einem Subset Deiner Frames, damit es schneller geht.

Knickohr hat geschrieben:By the way, ich müßte da mal wieder weiter machen, hab ein paar neue und bessere Felder abgelichtet :mrgreen:

Ja, bitte mach das. Ich hoffe sehr, daß Du das Projekt nicht einschlafen läßt, bin schon sehr gespannt auf das Ergebnis.

Der Grund für meine 24mm Aufnahmen ist übrigens ein ähnlicher wie Deine Idee mit den Pioneer Daten. Ich habe ein Milchstraßen-Mosaik mit 100mm gemacht und möchte die 24mm Aufnahmen als Referenz zur Bewahrung der groben Strukturen bei der Sky-Subtraction nutzen. Bin dabei, auch dafür Software zu schreiben, und hoffe das auch wieder hier veröffentlichen zu können. Das sollten wir aber in einem anderen Thread diskutieren. Zum Thema hier: stell Dir vor, Du machst in Namibia in einer photometrischen Nacht eine tiefe Fisheye Aufnahme als Referenz für Dein Allsky. Dann wäre interessant, ob mein Ansatz Dir hilft, Scamp ein sauberes Matching zu entlocken.

Ciao,
Wolfgang

Edit: habe jetzt erst Deinen Screenshot mit dem CROSSID_RADIUS gesehen, sorry. Das ist in etwa die 20-fache Pixelscale. Fotografierst Du mit APS-C oder am Vollformat?
woho
 
Beiträge: 56
Registriert: Samstag 30. Juni 2012, 09:00
Wohnort: Bad Aibling

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon Knickohr » Sonntag 18. August 2013, 11:37

Hi !

woho hat geschrieben:An Dein Allsky habe ich auch schon gedacht. Welches 35mm Objektiv verwendest Du? Die Messungen auf Photozone für die beiden Canon 35mm Festbrennweiten ergeben immernoch um einen Faktor 2.5 weniger Tonnenverzerrung als bei meinen 24mm. Welchen CROSSID_RADIUS verwendest Du?

Ich verwende das EF 35/1,4L USM. Hab aber auch schon mit dem 10mm Sigma Aufnahmen gemacht und Theli hat das sauber verwurstelt.

woho hat geschrieben:Gefühlsmäßig würde ich sagen, Deine Astrometrie ist ziemlich am Limit von dem, was Scamp an Verzerrung noch packt. Daher brauchst Du sehr gute Mittelpunktskoordinaten für die gemeinsame Astrometrie. Die separate Astrometrie als Vorstufe liefert Dir das wohl. Wenn Du Lust hast, könntest Du ja mal ausprobieren, ob Dein Matching mit meinen Erweiterungen besser wird (bessere Chi2- und Error-Plots). Evtl. nur auf einem Subset Deiner Frames, damit es schneller geht.

Yupp, die Mittelpunktskoordinaten sind sehr kritisch. Deshalb auch der Schritt mit der Astrometrie bei jedem einzelnen Feld. Anders habe ich es auch nicht hin bekommen. Die gemeinsame Astrometrie funktioniert dann aber problemlos und fast auf Anhieb.

Knickohr hat geschrieben:By the way, ich müßte da mal wieder weiter machen, hab ein paar neue und bessere Felder abgelichtet :mrgreen:

woho hat geschrieben:Ja, bitte mach das. Ich hoffe sehr, daß Du das Projekt nicht einschlafen läßt, bin schon sehr gespannt auf das Ergebnis.

Nein, um Gottes Willen, das Projekt war zu teuer, um es einfach aufzuhören. Im Prinzip bin ich ja schon fertig, aber einige Felder, vor allem die hier im Norden, sind so lichtversifft, das man sie eigentlich gar nicht verwenden kann. Ich versuche halt, so viel wie möglich in Namibia zu machen, selbst wenn die dann tief am Horizont sind. Sind dann immer noch besser als hier im Zenit ! Aber einige Felder bekomme ich halt nur im Norden. Ich sollte mal ein paar Tage nach Norwegen oder so, dann würden die nördlichen Felder endlich passen. Nur allein macht das keinen Spaß ;-)

woho hat geschrieben:Der Grund für meine 24mm Aufnahmen ist übrigens ein ähnlicher wie Deine Idee mit den Pioneer Daten. Ich habe ein Milchstraßen-Mosaik mit 100mm gemacht und möchte die 24mm Aufnahmen als Referenz zur Bewahrung der groben Strukturen bei der Sky-Subtraction nutzen. Bin dabei, auch dafür Software zu schreiben, und hoffe das auch wieder hier veröffentlichen zu können. Das sollten wir aber in einem anderen Thread diskutieren. Zum Thema hier: stell Dir vor, Du machst in Namibia in einer photometrischen Nacht eine tiefe Fisheye Aufnahme als Referenz für Dein Allsky. Dann wäre interessant, ob mein Ansatz Dir hilft, Scamp ein sauberes Matching zu entlocken.

Mit den Pioneer-Daten komme ich (wir) nicht wirklich weiter. Irgendwie scheint das nicht zu klappen und ich bin ehrlich gesagt auch viel zu blöd dazu, das in die Pipeline einzufügen. Die Theorie ist einfach, aber an der Umsetzung hapert es. Kann zwar einigermaßen mit Linux OS-seitig umgehen, aber wenn ich dann irgendwelche Scripte in Theli basteln soll, setzt es aus. Ich verstehe ja nicht mal den konkreten Zusammenhang in der Pipeline.

Momentan bastel ich mir das aus vielen verschiedenen Durchläufen mit unterschiedlichen Subsky-Parametern zusammen. In Photoshop dann über mehrere Ebenen maskiert, bringt eigentlich ein brauchbares Ergebnis. Es ist aber halt nicht "korrekt" und doch ein wenig "anmalerei".

woho hat geschrieben:Edit: habe jetzt erst Deinen Screenshot mit dem CROSSID_RADIUS gesehen, sorry. Das ist in etwa die 20-fache Pixelscale. Fotografierst Du mit APS-C oder am Vollformat?

Würde mal sagen eher 25 ! :D Ja, APS-C, eine EOS450D.

Es gibt noch ein anderes Problem. Ich verwende noch die Version 2.5.0 mit dem 1.6.1 Kernel. Möchte nicht updaten, weil ich scamp auf die damals neueste Version updaten und kompilieren mußte, weil es sonst wegen der riesigen Datenmengen nicht geklappt hat. Auch hatte ich ein Problem mit atlas und mußte auf die Intel Math Kernel Library 10.3 umsteigen. Alles Sachen, die ich nicht unbedingt nochmal durchnudeln möchte (never touch a running system). Da muß Mischa schon was ganz neues bahnbrechendes in Theli implementieren, das ich den Schritt noch mal mache.

Thomas
Benutzeravatar
Knickohr
Moderator
 
Beiträge: 631
Registriert: Donnerstag 29. September 2011, 12:01
Wohnort: Blaustein

Re: Astrometrie eines Widefields mit starker Verzeichnung

Beitragvon TorstenK » Sonntag 18. August 2013, 13:53

woho hat geschrieben:Ist Dein Pentax das SMC DA* 55mm f/1.4 SDM? Wenn ja, dann ist die Tonnenverzerrung laut Photozone Messung mit k1=0.00944 um fast eine Größenordung niedriger als die meines Zooms bei 24mm mit k1=0.0794. Welchen CROSSID_RADIUS brauchst Du typischerweise, um mit dem 55er eine Scamp-Lösung zu bekommen? Grob überschlagen sollte Mischa's Vorgabe der 5- bis 10-fachen Pixelscale reichen, oder musst Du höher gehen?


Hi Wolfgang,

Das Objektiv ist ein Pentax 67, also Mittelformat. Kleinbildobjektive leuchten 36x36mm nicht mehr vernünftig aus.

Was den CROSSID_RADIUS angeht: Mehr als 10-fach war bei mir noch nie nötig. In dem Falle des 55ers war CROSSID_RADIUS = 250.

Könntest du eventuell doch noch ein Testbild als FITS online stellen? Ich würde gerne mal ein bischen experimentieren. So ganz glaube ich immer noch nicht, daß scamp das nicht kann... :roll:

VG
Torsten
TorstenK
 
Beiträge: 79
Registriert: Donnerstag 13. Oktober 2011, 18:55

Nächste

Zurück zu Astrometrie und Photometrie

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 19 Gäste

cron