Seite 1 von 1

v2.9.0

BeitragVerfasst: Samstag 10. Mai 2014, 05:02
von mischa
Hallo,

nach etwa einem halben Jahr gibt es mal wieder ein update. Fuer euch relevante Aenderungen:

  • Support fuer DSLR Kameras ohne Bayer-Matrix
  • Unter Scamp findet sich ein "Match WCS" Button. Den bitte ANLASSEN wenn ihr das gewohnte Scamp haben wollt. Fuer bestimmte Zwecke kann man das matching mit dem Referenzkatalog ausschalten, warum man das machen moechte werde ich hier jedoch nicht erlaeutern, das ginge zu weit. Warum man es NICHT ausschalten sollte laesst sich leicht sagen: keine gueltige Astrometrie, kein automatisches croppen der coaddierten Farbkanaele, keine automatische Farbkalibration, um nur ein paar zu nennen...
  • Color calibration: Theli berechnet jetzt automatisch sowohl SDSS, NOMAD als auch "average white" Korrekturfaktoren, und man kann dazwischen einfach hin- und herschalten. Wenn im default-Suchbereich im Farbindexraum keine Referenzsterne gefunden werden, wird der Suchbereich automatisch vergroessert bis hin zu einer Toleranz von 0.1 mag (entsprechend etwa 10% Flussaenderung). Darueber hinaus mach es keinen Sinn. Neu hinzugekommen ist uebrigens der UCAC4 Katalog, welcher ueber all-sky hinweg B,V,g,r, und i Magnituden bereitstellt, beruhend auf CCD Photometrie, allerdings nur bis zu einer Tiefe von etwa 16 mag. D.h. die Dichte ist kleiner, aber ihr koennt jetzt auch eure Milchstrassenfelder sauber kalibrieren. Den NOMAD habe ich zur Sicherheit noch drin behalten, falls es mal eng werden sollte. Darueber hinaus werden die G2-aehnlichen Sterne nun anhand folgender Farbindices ausgewaehlt: u-g, g-r und r-i fuer SDSS (vorher ohne r-i), B-V, g-r, r-i fuer UCAC4, und B-V, V-R fuer NOMAD (wie gehabt). Im Fall von SDSS und UCAC4 sollte das etwas zusaetzliche Sicherheit bringen.

Im Hinblick auf einen kuenftigen Port von Qt3 nach Qt5 habe ich angefangen, sozusagen als Fingeruebung einen Teil der zugrunde liegenden source Codes (nicht GUI-relevant) vollstaendig nach C++ zu portieren. Das betrifft im wesentlichen das 'fitstools' Paket, welches nun erheblich sauberer und strikt standardkonform geschrieben ist, so dass ich mich nicht mehr schaemen muss, den Quellcode herzuzeigen. Zu einem kleinen Teil erzwinge ich hier den C++11 Standard fuer das multi-threading (vulgo "parallelrechnen"), welcher ab gcc 4.4 implementiert ist. Das werde ich in Zukunft noch ausbauen, daher empfehle ich jedem, der noch mit aelteren compilern rumgurkt, diese dringenst upzudaten.

Um v2.9.0 kompilieren und nutzen zu koennen, muessen zuerst die folgenden Pakete nachinstalliert werden: CCfits und python-astropy. Unter ubuntu geschieht das am einfachsten wie folgt:

Code: Alles auswählen
sudo apt-get install python-astropy libccfits-dev


mischa

Re: v2.9.0

BeitragVerfasst: Sonntag 11. Mai 2014, 20:06
von spiegelei
Hallo Mischa,

ich kriege folgenden Fehler:
Code: Alles auswählen
In file included from fitsfill.cc:4:0:
./include/statistics.h: In instantiation of ‘T median(const std::vector<T>&, long int, double) [with T = float]’:
fitsfill.cc:205:40:   required from here
./include/statistics.h:682:65: error: ‘select_central_fraction’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
   select_central_fraction(data, dim, data_out, dim_out, fraction);
                                                                 ^
./include/statistics.h:700:6: note: ‘template<class T> void select_central_fraction(const std::vector<T>&, long int, std::vector<T>&, long int&, double)’ declared here, later in the translation unit
void select_central_fraction(vector<T> const &data, const long dim,
      ^
./include/statistics.h: In instantiation of ‘T rms_fraction(const std::vector<T>&, long int, T2) [with T = float; T2 = double]’:
fitsfill.cc:206:46:   required from here
./include/statistics.h:661:65: error: ‘select_central_fraction’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
   select_central_fraction(data, dim, data_out, dim_out, fraction);
                                                                 ^
./include/statistics.h:700:6: note: ‘template<class T> void select_central_fraction(const std::vector<T>&, long int, std::vector<T>&, long int&, double)’ declared here, later in the translation unit
void select_central_fraction(vector<T> const &data, const long dim,
      ^
make: *** [fitsfill.o] Error 1


gcc:
Code: Alles auswählen
gcc (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]


Gruesze,
Karsten

Re: v2.9.0

BeitragVerfasst: Montag 12. Mai 2014, 01:23
von mischa
spiegelei hat geschrieben:Hallo Mischa,

ich kriege folgenden Fehler:
Code: Alles auswählen
In file included from fitsfill.cc:4:0:
./include/statistics.h: In instantiation of ‘T median(const std::vector<T>&, long int, double) [with T = float]’:
fitsfill.cc:205:40:   required from here
./include/statistics.h:682:65: error: ‘select_central_fraction’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
   select_central_fraction(data, dim, data_out, dim_out, fraction);
                                                                 ^
./include/statistics.h:700:6: note: ‘template<class T> void select_central_fraction(const std::vector<T>&, long int, std::vector<T>&, long int&, double)’ declared here, later in the translation unit
void select_central_fraction(vector<T> const &data, const long dim,
      ^
./include/statistics.h: In instantiation of ‘T rms_fraction(const std::vector<T>&, long int, T2) [with T = float; T2 = double]’:
fitsfill.cc:206:46:   required from here
./include/statistics.h:661:65: error: ‘select_central_fraction’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
   select_central_fraction(data, dim, data_out, dim_out, fraction);
                                                                 ^
./include/statistics.h:700:6: note: ‘template<class T> void select_central_fraction(const std::vector<T>&, long int, std::vector<T>&, long int&, double)’ declared here, later in the translation unit
void select_central_fraction(vector<T> const &data, const long dim,
      ^
make: *** [fitsfill.o] Error 1


gcc:
Code: Alles auswählen
gcc (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]


Gruesze,
Karsten


Hi Karsten,

aha, interessant. Kannst du die datei 'fitstools-1.0/fitsfill.cc' mal komplett loeschen (wird eh nicht gebraucht, wollte ich beim naechsten mal rausnehmen) und dann nochmal 'make' unter 'fitstools-1.0' probieren?

mischa

Re: v2.9.0

BeitragVerfasst: Montag 12. Mai 2014, 17:46
von spiegelei
Hallo,

ich habe jetzt mal folgende Dateien stillgelegt.
Code: Alles auswählen
fitsfill.cc  fitsguessgeom.cc  getpsf.cc  swarpfilter.cc


Danach geht das Procedere im Verzeichnis fftw weiter.

Code: Alles auswählen
make -C fftw
make[1]: Entering directory `/home/kmueller/Software/gui-2.9.0/packages/fitstools-1.0/fftw'
g++ -std=c++0x -fopenmp -Wall -Wextra -pedantic -O3 -I/usr/include/CCfits/ -I./include -I../include  -c -o fitsgauss.o fitsgauss.cc
make[1]: Leaving directory `/home/kmueller/Software/gui-2.9.0/packages/fitstools-1.0/fftw'
In file included from fitsgauss.cc:6:0:
../include/fitstools.h:163:34: warning: ‘auto_ptr’ is deprecated (declared at /usr/include/c++/4.8/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
          int extnum, int n, int m);
                                  ^
fitsgauss.cc: In function ‘int main(int, char**)’:
fitsgauss.cc:81:18: error: ‘_SC_NPROCESSORS_ONLN’ was not declared in this scope
   ncpu = sysconf(_SC_NPROCESSORS_ONLN);
                  ^
fitsgauss.cc:81:38: error: ‘sysconf’ was not declared in this scope
   ncpu = sysconf(_SC_NPROCESSORS_ONLN);
                                      ^
make[1]: *** [fitsgauss.o] Fehler 1
make: *** [fftw] Fehler 2

*************************************************

ERROR while compiling fitstools.
Check the output for missing libraries.


Ich kann mir durchaus vorstellen, dass irgendwas im Basissystem nicht klappt, da CCfits und fitsio "from source" installiert werden mussten.

Ich probiere mal noch ein bisschen...

Gruesze,
Karsten

Re: v2.9.0

BeitragVerfasst: Montag 12. Mai 2014, 17:57
von mischa
Hi Karsten,

das ist etwas seltsam. Ich konnte in 'fitsfill.cc' keinen Fehler entdecken, ebenso wenig wie in den anderen, welche du rausgenommen hast. Die Warnung bzgl. dem auto_ptr ist normal und kann ignoriert werden. Ich habe mit gcc v4.6.3 und saemtlichen Kompilerwarnungen angeschaltet keinerlei Probleme waehrend dem make-Prozess entdecken koennen.
Hat es jemand anders auch schon versucht?

mischa

Re: v2.9.0

BeitragVerfasst: Montag 12. Mai 2014, 18:06
von spiegelei
Hallo Mischa,

ich habe jetzt mal im Makefile noch fftw auskommentiert (das ist schon im Grundsystem mit drin) und damit konnte ich dann einen vollständigen Compilerlauf durchführen.

Gruesze,
Karsten

Re: v2.9.0

BeitragVerfasst: Montag 12. Mai 2014, 20:01
von mischa
spiegelei hat geschrieben:Hallo Mischa,

ich habe jetzt mal im Makefile noch fftw auskommentiert (das ist schon im Grundsystem mit drin) und damit konnte ich dann einen vollständigen Compilerlauf durchführen.

Gruesze,
Karsten


Hi Karsten,

kannst du mir dein makefile mal hier hochladen?

Danke,

mischa

Re: v2.9.0

BeitragVerfasst: Montag 12. Mai 2014, 20:16
von spiegelei
Hallo Mischa,

anbei das Makefile aus .../packages/fitstools-1.0

Gruesze,
Karsten

Re: v2.9.0

BeitragVerfasst: Dienstag 13. Mai 2014, 01:12
von Zyrusthc
Bei mir selbiges unter Mageia 4
Entpacke ich fitstools-1.0 und lösche :

fitsfill.cc
fitsguessgeom.cc
getpsf.cc
swarpfilter.cc

sowie ersetzte das Makefile unter .../packages/fitstools-1.0 was spiegelei gepostet hat und packe danach wieder fitstools-1.0
läufts fehlerfrei durch.

Lg Oli

Re: v2.9.0

BeitragVerfasst: Dienstag 13. Mai 2014, 11:44
von Zyrusthc
Leider funktioniert es so nicht bei der coaddition meckert er "12192 qfits: error: no such file: 0.0"

Bei mir kommt standartmässig das wenn er fitstool bauen will.
Code: Alles auswählen
g++ -Wall -Wextra -pedantic -O3 -I/usr/include/CCfits -I./include  -c -o fitsfindblank.o fitsfindblank.cc
g++ -Wall -Wextra -pedantic -O3 -I/usr/include/CCfits -I./include  -c -o getpsf.o getpsf.cc
In file included from getpsf.cc:4:0:
./include/statistics.h: In Instanziierung von »T mean_iter(const std::vector<T>&, long int, float, int, double, std::string) [mit T = float; std::string = std::basic_string<char>]«:
getpsf.cc:139:50:   von hier erfordert
./include/statistics.h:166:34: Fehler: »rms« wurde in diesem Gültigkeitsbereich nicht deklariert, und bei argumentabhängiger Suche am Ort der Instanziierung wurden keine Deklarationen gefunden [-fpermissive]
   sdev = rms(data, dim, threshold);
                                  ^
./include/statistics.h:350:3: Anmerkung: »template<class T> T rms(const std::vector<T>&, long int, double)« hier deklariert, später in Übersetzungseinheit
T rms(vector<T> const &data, const long dim, double threshold = -1.0E+12)
   ^
./include/statistics.h:187:34: Fehler: »rms« wurde in diesem Gültigkeitsbereich nicht deklariert, und bei argumentabhängiger Suche am Ort der Instanziierung wurden keine Deklarationen gefunden [-fpermissive]
     sdev = rms(tmp2, j, threshold);
                                  ^
./include/statistics.h:350:3: Anmerkung: »template<class T> T rms(const std::vector<T>&, long int, double)« hier deklariert, später in Übersetzungseinheit
T rms(vector<T> const &data, const long dim, double threshold = -1.0E+12)
   ^
<builtin>: recipe for target 'getpsf.o' failed
make: *** [getpsf.o] Error 1

Re: v2.9.0

BeitragVerfasst: Dienstag 13. Mai 2014, 13:55
von Zyrusthc
Konnte ich jetzt lösen

im fitstools-1.0/Makefile CXXFLAGS zusätzlich -fpermissive mitgeben.

Folgende Dateien #include<unistd.h> hinzugefügt.
fitstools-1.0/fftw/subsky.cc
fitstools-1.0/fftw/convolve.cc
fitstools-1.0/fftw/fitsgauss.cc
fitstools-1.0/fftw/xcorr.cc
fitstools-1.0/swarpfilter.cc


Lg Oli

Re: v2.9.0

BeitragVerfasst: Dienstag 13. Mai 2014, 14:31
von mischa
Zyrusthc hat geschrieben:
im fitstools-1.0/Makefile CXXFLAGS zusätzlich -fpermissive mitgeben.

Folgende Dateien #include<unistd.h> hinzugefügt.
fitstools-1.0/fftw/subsky.cc
fitstools-1.0/fftw/convolve.cc
fitstools-1.0/fftw/fitsgauss.cc
fitstools-1.0/fftw/xcorr.cc
fitstools-1.0/swarpfilter.cc


Hi Oli,

danke fuer den Anhaltspunkt. Ich muss mal schauen was die neuesten compilerversionen hier eigentlich bemaengeln. Der Funktion overload anhand verschiedener Argumenttypen ist Standard, warum es hier Probleme gibt verstehe ich noch nicht.
In deinem anderen Post hast du einen Fehler bei der coaddition vermerkt, der sich auf "qfits" bezieht. Kannst du mir hier mal das logfile senden? Qfits habe ich naemlich aus den 'fitstools' komplett rausgeschmissen, das kann also nur von "swarp" stammen, ich wuerde aber gerne sicher gehen.

mischa

Re: v2.9.0

BeitragVerfasst: Dienstag 13. Mai 2014, 14:42
von Zyrusthc
Der fehler bei der Coaddition war so ziemlich 1zu1 hiermit deswegen hatte ich da auch drunter gepostet.
viewtopic.php?f=37&t=421&p=3843

Mit den Änderungen die du gerade zitiert hast konnte ich die Probleme beim Bauen sowie bei der Coaddition beheben.

Lg Oli

Re: v2.9.0

BeitragVerfasst: Sonntag 18. Mai 2014, 04:39
von mischa
Hallo,

nochmals vielen Dank an dieser Stelle fuer euer feedback. In gcc 4.7 und spaeteren Versionen wird die Unixlibrary unistd.h nicht mehr automatisch hinzugefuegt, um den namespace sauberzuhalten. Das wusste ich nicht. Der andere Fehler bzgl. dem 'argument-dependent lookup' war darauf zurueckzufuehren, dass ab gcc 4.7 saemtliche Funktionen, welche in einer template-Funktion verwendet werden, vorher deklariert werden muessen. War also alles sehr leicht zu beheben. Ich denke, dass ich morgen abend eurer Zeit die entsprechenden updates eingebunden habe und dann die 2.9.1 hochladen werde.

mischa