Seite 4 von 9

Re: Bug Report Theli v3

BeitragVerfasst: Dienstag 19. Mai 2020, 16:34
von mischa
Code: Alles auswählen
src/processingInternal/processingCalibration.cc
line 374

Da hast du in einem
Code: Alles auswählen
if
statement einen Aufruf von
Code: Alles auswählen
it->subtractBias()


Der bezieht sich auf
Code: Alles auswählen
MyImage::subtractBias()
, und da im speziellen auf die Zeile
Code: Alles auswählen
pixel -= biasImage->dataCurrent[i];


Im Grunde sollte THELI da nur auf das masterbias zugreifen, welches bereits geladen ist. Was ich aber sehe, ist dass der Speicherbedarf linear mit den Aufrufen ansteigt, so als ob das masterbias jedesmal kopiert wuerde, wenn es auf ein Bild angewandt wird.

Wenn ich diese Zeile durch
Code: Alles auswählen
pixel -= 0.;
ersetze, also nicht auf das masterbias zugreife, dann passiert das nicht.

Kann man sehr schoen sehen, wenn du eine groessere Menge flatfields bearbeitest. Ich hab diesbezueglich einen thread auf stackoverflow laufen
[url]
https://stackoverflow.com/questions/618 ... -data-copy[/url]

mischa

Re: Bug Report Theli v3

BeitragVerfasst: Dienstag 19. Mai 2020, 18:24
von moos
mischa hat geschrieben: und ersetze zum Beispiel
Code: Alles auswählen
dataCurrent[i]
durch
Code: Alles auswählen
dataCurrent.at(i)
.
Das wird noch ein paar Tage dauern, da es auch andere Datenstrukturen betrifft. Erst dann werde ich wissen, ob es was gebracht hat.

Ach du je, das ist ja viel Fleißarbeit. Drücke Dir die Daumen und Zeiger!-Finger.

Re: Bug Report Theli v3

BeitragVerfasst: Dienstag 19. Mai 2020, 18:38
von dietmar
Hab in
Code: Alles auswählen
void Controller::taskInternalProcessflat()
am Anfang das
Code: Alles auswählen
   char buffer[256];
   sprintf(buffer,"cat /proc/%d/statm",getpid());
   system(buffer);

und am Ende das
Code: Alles auswählen
   system(buffer);

eingebaut. Dann hab' ich mehrfach "Process Flat" gemacht und folgendes kam raus:
Code: Alles auswählen
194529 23348 12629 874 0 52775 0
581769 412721 12816 874 0 441889 0

581835 412762 12816 874 0 441955 0
581835 412817 12848 874 0 441955 0

581835 412814 12848 874 0 441955 0
581835 412818 12848 874 0 441955 0
(Leerzeilen hab' ich manuell eingefügt).
Das ist eigentlich genau das, was ich erwartet hab': beim 1. mal bläht er sich noch auf (vorletzte Spalte (data+stack)), weil er wohl nach was nachladen muss (hab' nich' jede Codezeile gelesen), dann bleibt's konstant.

Bist Du sicher, dass wir an der richtigen Stelle suchen? Ich hab' in
Code: Alles auswählen
void MyImage::subtractBias(MyImage *biasImage, QString dataType)
auch nichts böses finden können.

Re: Bug Report Theli v3

BeitragVerfasst: Dienstag 19. Mai 2020, 19:00
von mischa
Das ist ja das Poblem. Das Aufblaehen sollte ueberhaupt nicht passieren, weil bereits alles im Speicher ist!

Re: Bug Report Theli v3

BeitragVerfasst: Dienstag 19. Mai 2020, 21:51
von moos
sextractor sucht die default.param in src/config.
Seit dem letzten branch v. 15.5. steht der aber in /usr/share/theli/config
Ich habe einen link gemacht, damit läuft der sextractor.

Wegen der Speicherprobleme habe ich nun nur noch 30 Bilder a 70M = 2.1 GB am Start. Jetzt bin ich sogar schon bei der Astrometrie.

Ein weiteres Problem noch: Nachdem ich die collapsed Bilder gemacht habe und zu den weights übergehe, findet theli die Bilder nicht mehr.
Ich gehe dann in den Memory viewer, klicke auf das erst beste Bild-Active 2x , auf der Konsole kommt dann eine Fehlermeldung ( s.u.)
Und dann gehen die weights. Das scheint ein Memory - Status - Problem zu sein.
Code: Alles auswählen
QObject: Cannot create children for a parent that is in a different thread.
(Parent is MyImage(0x557c5e3c3880), parent's thread is QThread(0x557c5d7cdea0), current thread is QThread(0x557c5e4a1990)

Re: Bug Report Theli v3

BeitragVerfasst: Mittwoch 20. Mai 2020, 08:36
von dietmar
mischa hat geschrieben:Wenn ich diese Zeile durch
Code: Alles auswählen
pixel -= 0.;
ersetze, also nicht auf das masterbias zugreife, dann passiert das nicht.

Kann ich nicht reproduzieren, hab' die bias-subtraktion rausgeschmissen, passiert das selbe.
Bin sicher, dass der Vektor nicht schuld ist.

Re: Bug Report Theli v3

BeitragVerfasst: Mittwoch 20. Mai 2020, 09:35
von dietmar
Wenn der Vektor mit den Flats durchiteriert wird
Code: Alles auswählen
for (auto &it : flatData->myImageList[chip]) {
wird bei jeder iteration
Code: Alles auswählen
it->setupCalibDataInMemory(true, true, true);
aufgerufen.

Code: Alles auswählen
void MyImage::setupCalibDataInMemory(bool createBackup, bool determineMode, bool mustRereadFromDisk)
{
...
    if (backupL1InMemory) {
...
    }
    else {
...
        if (mustRereadFromDisk) imageInMemory = false;
        readImage(determineMode);
...
    }
...
}

Laut den Debug-Ausgaben, die ich da eingebaut hab', landest Du jedesmal im else-Zweig.
Da
Code: Alles auswählen
imageInMemory = false;
liest
Code: Alles auswählen
void MyImage::readImage(bool determineMode)
die FITS-Daten jedesmal neu.

Soll das so sein?

Re: Bug Report Theli v3

BeitragVerfasst: Mittwoch 20. Mai 2020, 11:10
von mischa
Hi Dietmar,

wie kann ich dich per email erreichen? Das waere einfacher.

mischa

Re: Bug Report Theli v3

BeitragVerfasst: Mittwoch 20. Mai 2020, 11:27
von mischa
dietmar hat geschrieben:Laut den Debug-Ausgaben, die ich da eingebaut hab', landest Du jedesmal im else-Zweig.
Da
Code: Alles auswählen
imageInMemory = false;
liest
Code: Alles auswählen
void MyImage::readImage(bool determineMode)
die FITS-Daten jedesmal neu.

Soll das so sein?


Ja. Du hast uebersehen, dass da nicht das Master-Bias eingelesen wird, sondern die einzelnen Flats (jedes einmal).

Ich hab das Problem mittlerweile eingrenzen koennen, aber verstehen tue ich es nicht. Das sollten wir per email besprechen.

mischa

Re: Bug Report Theli v3

BeitragVerfasst: Samstag 23. Mai 2020, 17:28
von spiegelei
Hi Mischa,
bei der 3.0.1 bekomme ich beim coadd folgenden Fehler:

Code: Alles auswählen
##############################################
Updating header of coadd.fits for lights_Lum
##############################################


The coadded image covers a very large area on sky. The image quality analysis is skipped, as it would require the download of a very large point source catalog.

ERROR: Controller::coaddUpdate()::
BAD_F2C: bad float to formatted string conversion
Abort.

*** DONE ***



Gruß
Karsten

Re: Bug Report Theli v3

BeitragVerfasst: Samstag 23. Mai 2020, 18:58
von dietmar
Moin Mischa,

ich hab' im Commit von heute noch ein paar Bugs gefunden:

Das TEXPTIME ist in meinen coaddierten Bildern jetzt drin. Bei CCD-Daten stimmt die auch, bei DSLR steht das was von 9h, das glaub' ich nicht :wink:

TEXPTIME bestimmst Du aus der Summe der EXPTIME durch Anzahl der Chips, was so verkehrt nicht sein kann. Die EXPTIME in den FITS-Headern stimmt bis zu den _1PAS.fits Dateien. In den resampleten Bildern ist sie 0.

In den FITS-Headern (der coaddierten Bilder) vermisse ich auch das Keyword DATE-OBS, stattdessen hab' ich nur 'n julianisches Datum drin, das ich etwas schwer lesbar finde.

In den coaddierten Bildern setzt Du GAIN=TEXPTIME, ist das richtig so?

Meine BIAS-Bilder liegen in einem Verzeichnis bias. Wenn ich den Rollback-Button klicke, werden die Originalbilder nicht aus bias/RAWDATA nach bias verschoben, sondern in ein Verzeichnis bias_rawdata, wo Theli sie beim nächsten Durchlauf natürlich nicht findet.

Bis denn
Dietmar

Re: Bug Report Theli v3

BeitragVerfasst: Samstag 23. Mai 2020, 21:25
von mischa
spiegelei hat geschrieben:Hi Mischa,
ERROR: Controller::coaddUpdate()::
BAD_F2C: bad float to formatted string conversion
[/code]


Hi Karsten,

das kann ich momentan nicht reproduzieren. Hast du das jedesmal bei diesem datensatz oder war das "nur" "spontan".

mischa

Re: Bug Report Theli v3

BeitragVerfasst: Samstag 23. Mai 2020, 21:36
von mischa
Hi Dietmar,

Das TEXPTIME ist in meinen coaddierten Bildern jetzt drin. Bei CCD-Daten stimmt die auch, bei DSLR steht das was von 9h, das glaub' ich nicht :wink:


Da musst du mir mal eines der DSLR Rohbilder schicken damit ich sehen kann, wie dort die Belichtungszeit kodiert ist.

TEXPTIME bestimmst Du aus der Summe der EXPTIME durch Anzahl der Chips, was so verkehrt nicht sein kann. Die EXPTIME in den FITS-Headern stimmt bis zu den _1PAS.fits Dateien. In den resampleten Bildern ist sie 0.


Die resampelten Bilder sind nur temporaer. Die relevante Information steht in den header/*.head Dateien und wird von dort genommen. Dass sie in den resampelten Bildern Null ist, ist ein "feature" oder meinetwegen ein bug in Swarp, der sich aber nicht weiter auswirkt.

In den FITS-Headern (der coaddierten Bilder) vermisse ich auch das Keyword DATE-OBS, stattdessen hab' ich nur 'n julianisches Datum drin, das ich etwas schwer lesbar finde.


DATE-OBS laesst sich so nicht direkt auf ein Summenbild anwenden, zumindest wenn ich die FITS Konvention richtig in Erinnerung habe. Ich lass mir was einfallen.

In den coaddierten Bildern setzt Du GAIN=TEXPTIME, ist das richtig so?


Ja. Der Gain wird beim HDU Reformatting "angewendet", das heisst die Rohbilder sind anschliessend bereits in Photoelektronen umgewandelt. Das koaddierte Bild ist auf 1s normiert, damit ist der effektive gain im Summenbild wie von dir beschrieben.

Meine BIAS-Bilder liegen in einem Verzeichnis bias. Wenn ich den Rollback-Button klicke, werden die Originalbilder nicht aus bias/RAWDATA nach bias verschoben, sondern in ein Verzeichnis bias_rawdata, wo Theli sie beim nächsten Durchlauf natürlich nicht findet.


Das habe ich so noch nie gesehen, aber ich weiss wo ich nachschauen muss (Data::restoreRAWDATA(), falls es dich interessiert)

mischa

Re: Bug Report Theli v3

BeitragVerfasst: Sonntag 24. Mai 2020, 00:25
von dietmar
mischa hat geschrieben:Hi Dietmar,

Das TEXPTIME ist in meinen coaddierten Bildern jetzt drin. Bei CCD-Daten stimmt die auch, bei DSLR steht das was von 9h, das glaub' ich nicht :wink:


Da musst du mir mal eines der DSLR Rohbilder schicken damit ich sehen kann, wie dort die Belichtungszeit kodiert ist.

TEXPTIME bestimmst Du aus der Summe der EXPTIME durch Anzahl der Chips, was so verkehrt nicht sein kann. Die EXPTIME in den FITS-Headern stimmt bis zu den _1PAS.fits Dateien. In den resampleten Bildern ist sie 0.


Die resampelten Bilder sind nur temporaer. Die relevante Information steht in den header/*.head Dateien und wird von dort genommen. Dass sie in den resampelten Bildern Null ist, ist ein "feature" oder meinetwegen ein bug in Swarp, der sich aber nicht weiter auswirkt.

Der Link, den ich Dir in der PN vom 08.05. geschickt hab' ist immer noch gültig (bis zum nächster Reboot meines Routers). Meiner Ansicht nach kann es daran aber nicht liegen, denn in allen FITS-Daterin ist EXPTIME richtig, nur in den coaddierten nicht. Das mit den resampleten Bildern war nur so 'ne Idee, dass es vielleicht daran liegen könnte.

In den FITS-Headern (der coaddierten Bilder) vermisse ich auch das Keyword DATE-OBS, stattdessen hab' ich nur 'n julianisches Datum drin, das ich etwas schwer lesbar finde.


DATE-OBS laesst sich so nicht direkt auf ein Summenbild anwenden, zumindest wenn ich die FITS Konvention richtig in Erinnerung habe. Ich lass mir was einfallen.

Ist DATE-OBS nicht MJDSTART oder MJDMED, nur eben "human readable"?

Meine BIAS-Bilder liegen in einem Verzeichnis bias. Wenn ich den Rollback-Button klicke, werden die Originalbilder nicht aus bias/RAWDATA nach bias verschoben, sondern in ein Verzeichnis bias_rawdata, wo Theli sie beim nächsten Durchlauf natürlich nicht findet.


Das habe ich so noch nie gesehen, aber ich weiss wo ich nachschauen muss (Data::restoreRAWDATA(), falls es dich interessiert)

mischa

Ist aber reproduzierbar. Die Bilder sind dann aber auch nicht weg, nur nicht da wo man sie erwartet und nicht da, wo Theli sie erwartet. Das ist erstmal etwas irritierend und jemand, der sich nicht so sehr mit Unixoiden auskennt, könnte dan völlig auf dem Schlauch stehen :)
Ich guck mir das morgen mal an, bzw. nachher, ist ja schon wieder nach 1 (MESZ).

Bis denn
Dietmar

Re: Bug Report Theli v3

BeitragVerfasst: Sonntag 24. Mai 2020, 09:08
von mischa
Hi Dietmar,

die MJD-OBS nach DATE-OBS Konvertierung ueberlasse ich dir als Hausaufgabe :-)

MJD-OBS = Julianisches Datum - 2400000.5

Das mit dem EXPTIME keyword in den resampelten Bildern ging in THELI v2 (swarp-2.19), nicht aber in swarp-2.38 (THELI v3). Swarp kennt aber ein copy keyword argument, mit dem ich die EXPTIME rueber kopieren konnte. Das findest du jetzt im master thread. Das coadd.fits sollte aber das korrekte TEXPTIME keyword enthalten?

Das Problem mit dem Wiederherstellen der Rohdaten, gibt es das bloss bei den Biases oder auch bei anderen Daten? Schreibst du eventuell auf eine externe Platte, wo die Zugriffsrechte anders sind als auf einem internen Laufwerk?

mischa