Bug Report Theli v3

Wichtige Updates, neue Theli-Versionen, Euer Wunschzettel für Theli, Feedback

Re: Bug Report Theli v3

Beitragvon mischa » Dienstag 19. Mai 2020, 16:34

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
mischa
Moderator
 
Beiträge: 1266
Registriert: Freitag 7. Oktober 2011, 14:07
Wohnort: Chile

Re: Bug Report Theli v3

Beitragvon moos » Dienstag 19. Mai 2020, 18:24

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.
Ciao Carsten
moos
 
Beiträge: 504
Registriert: Dienstag 18. Oktober 2011, 19:06

Re: Bug Report Theli v3

Beitragvon dietmar » Dienstag 19. Mai 2020, 18:38

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.
dietmar
 
Beiträge: 151
Registriert: Montag 24. Februar 2014, 11:41
Wohnort: Hilden (in der Lichtglocke von Düsseldorf)

Re: Bug Report Theli v3

Beitragvon mischa » Dienstag 19. Mai 2020, 19:00

Das ist ja das Poblem. Das Aufblaehen sollte ueberhaupt nicht passieren, weil bereits alles im Speicher ist!
mischa
Moderator
 
Beiträge: 1266
Registriert: Freitag 7. Oktober 2011, 14:07
Wohnort: Chile

Re: Bug Report Theli v3

Beitragvon moos » Dienstag 19. Mai 2020, 21:51

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)
Ciao Carsten
moos
 
Beiträge: 504
Registriert: Dienstag 18. Oktober 2011, 19:06

Re: Bug Report Theli v3

Beitragvon dietmar » Mittwoch 20. Mai 2020, 08:36

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.
dietmar
 
Beiträge: 151
Registriert: Montag 24. Februar 2014, 11:41
Wohnort: Hilden (in der Lichtglocke von Düsseldorf)

Re: Bug Report Theli v3

Beitragvon dietmar » Mittwoch 20. Mai 2020, 09:35

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?
dietmar
 
Beiträge: 151
Registriert: Montag 24. Februar 2014, 11:41
Wohnort: Hilden (in der Lichtglocke von Düsseldorf)

Re: Bug Report Theli v3

Beitragvon mischa » Mittwoch 20. Mai 2020, 11:10

Hi Dietmar,

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

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

Re: Bug Report Theli v3

Beitragvon mischa » Mittwoch 20. Mai 2020, 11:27

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
mischa
Moderator
 
Beiträge: 1266
Registriert: Freitag 7. Oktober 2011, 14:07
Wohnort: Chile

Re: Bug Report Theli v3

Beitragvon spiegelei » Samstag 23. Mai 2020, 17:28

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
Atik 383 - AP80/560 - GSO RC 8" - LX50 8" SC - TSAPO65Q - CGEM
Theli 3 - SUSE Leap 15.1/64 - Dual XEON 12K/24T - 32GB
Die meisten großen Erfindungen beginnen nicht mit "HEUREKA" sondern mit "Das ist aber komisch....."
Benutzeravatar
spiegelei
 
Beiträge: 197
Registriert: Donnerstag 29. September 2011, 15:15
Wohnort: Chemnitz

Re: Bug Report Theli v3

Beitragvon dietmar » Samstag 23. Mai 2020, 18:58

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
dietmar
 
Beiträge: 151
Registriert: Montag 24. Februar 2014, 11:41
Wohnort: Hilden (in der Lichtglocke von Düsseldorf)

Re: Bug Report Theli v3

Beitragvon mischa » Samstag 23. Mai 2020, 21:25

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
mischa
Moderator
 
Beiträge: 1266
Registriert: Freitag 7. Oktober 2011, 14:07
Wohnort: Chile

Re: Bug Report Theli v3

Beitragvon mischa » Samstag 23. Mai 2020, 21:36

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
mischa
Moderator
 
Beiträge: 1266
Registriert: Freitag 7. Oktober 2011, 14:07
Wohnort: Chile

Re: Bug Report Theli v3

Beitragvon dietmar » Sonntag 24. Mai 2020, 00:25

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
dietmar
 
Beiträge: 151
Registriert: Montag 24. Februar 2014, 11:41
Wohnort: Hilden (in der Lichtglocke von Düsseldorf)

Re: Bug Report Theli v3

Beitragvon mischa » Sonntag 24. Mai 2020, 09:08

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
mischa
Moderator
 
Beiträge: 1266
Registriert: Freitag 7. Oktober 2011, 14:07
Wohnort: Chile

VorherigeNächste

Zurück zu Wunschzettel und Feedback

Wer ist online?

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

cron