Ignore:
Timestamp:
08/17/01 15:12:57 (23 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Cosy/catalog
Files:
4 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Cosy/catalog/Makefile

    r911 r912  
    3333SRCFILES = SaoFile.cc \
    3434           Slalib.cc \
     35           SlaStars.cc \
     36           SlaPlanets.cc \
    3537           StarCatalog.cc
    3638
  • trunk/MagicSoft/Cosy/catalog/Slalib.cc

    r911 r912  
    66#include "slalib.h"
    77
    8 Slalib::Slalib()
     8Slalib::Slalib() : Timer()
    99{
    1010    // p = pointer to MainFrame (not owner)
     
    2525}
    2626
    27 void Slalib::Set(const AltAz &altaz)
    28 {
    29     fAltAz = altaz * D2PI/360.0;
    30     fRaDec = CalcRaDec(fAltAz);
    31 }
    32 
    33 void Slalib::Set(const ZdAz &zdaz)
    34 {
    35     fAltAz = AltAz(DPI/2-zdaz.Zd(), zdaz.Az()) * D2PI/360.0;
    36     fRaDec = CalcRaDec(fAltAz);
    37 }
    38 
    39 void Slalib::Set(const RaDec &radec)
    40 {
    41     fRaDec = radec * D2PI/360.0;
    42     fAltAz = CalcAltAz(fRaDec);
    43 }
    44 
    45 void Slalib::Set(const double mjd)
     27void Slalib::SetMjd(const double mjd)
    4628{
    4729    fMjd   = mjd;
    4830    fAlpha = slaGmst(fMjd) + fElong;
     31}
     32
     33void Slalib::SetMjd2Now()
     34{
     35    Now();
     36    SetMjd(CalcMjd());
     37//    cout << "GetMjd: "<< (*this)() << " " << GetMjd() << endl;
     38}
     39
     40void Slalib::SetMjd(const struct timeval *tm)
     41{
     42    SetTimer(tm);
     43    SetMjd(CalcMjd());
     44}
     45
     46
     47ZdAz Slalib::XYZ2ZdAz(double coord[3]) const
     48{
     49    //
     50    // -- xyz to spherical coordinates --
     51    //
     52    double ra, dec;
     53    slaDcc2s(coord, &ra, &dec);
    4954
    5055    //
    51     // ----- calculate star independent parameters ----------
     56    // radec[rad] -> hadec[rad]
    5257    //
    53     slaMappa(2000.0, fMjd, fAmprms);
    54     slaAoppa(fMjd, 0,                // mjd, UT1-UTC
    55              fElong, fPhi, 148,      // g”ttingen long, lat, height
    56              0, 0,                   // polar motion x, y-coordinate (radians)
    57              273.155, 1013.25, 0.5,  // temp, pressure, humidity
    58              0.2, 0.0065,            // wavelength, tropo lapse rate
    59              fAoprms);
    60 }
    61 
    62 RaDec Slalib::CalcRaDec(const AltAz &altaz) const
    63 {
    64     return CalcRaDec(ZdAz(DPI/2-altaz.Alt(), altaz.Az()));
    65 }
    66 
    67 RaDec Slalib::CalcRaDec(const ZdAz &zdaz) const
    68 {
    69     //
    70     // -- observed to apparent --
    71     //  Workaraound for slalib: discard const
    72     //
    73     double r=0, d=0;
    74     slaOapqk ("A", zdaz.Az(), zdaz.Zd(), (double*)fAoprms, &r, &d);
     58    const double ha = fAlpha-ra;
    7559
    7660    //
    77     // -- apparent to mean --
    78     //  Workaraound for slalib: discard const
     61    // hadec[rad] -> altaz[rad]
    7962    //
    80     double ra, dec;
    81     slaAmpqk(r, d, (double*)fAmprms, &ra, &dec);
     63    double alt, az;
     64    slaDe2h(ha, dec, fPhi, &az, &alt);
    8265
    83     return RaDec(ra, dec);
     66    return ZdAz(DPI/2-alt, az);
    8467}
    85 
    86 ZdAz Slalib::CalcZdAz(const RaDec &radec) const
    87 {
    88     //
    89     // ---- Mean to apparent ----
    90     //
    91 
    92     double r=0, d=0;
    93     slaMapqkz(radec.Ra(), radec.Dec(), (double*)fAmprms, &r, &d);
    94     //
    95     // Doesn't work - don't know why
    96     //
    97     //    slaMapqk (radec.Ra(), radec.Dec(), rdpm.Ra(), rdpm.Dec(),
    98     //              0, 0, (double*)fAmprms, &r, &d);
    99     //
    100 
    101     //
    102     // -- apparent to observed --
    103     //
    104     double r1=0;  // ra
    105     double d1=0;  // dec
    106     double h0=0;  // ha
    107 
    108     double zd;
    109     double az;
    110     slaAopqk (r, d, (double*)fAoprms,
    111               &az,    // observed azimuth (radians: N=0,E=90)
    112               &zd,    // observed zenith distance (radians) [-pi/2, pi/2]
    113               &h0,    // observed hour angle (radians)
    114               &d1,    // observed declination (radians)
    115               &r1);   // observed right ascension (radians)
    116 
    117     return ZdAz(zd, az);
    118 }
    119 AltAz Slalib::CalcAltAz(const RaDec &radec) const
    120 {
    121     ZdAz zdaz = CalcZdAz(radec);
    122     return AltAz(DPI/2-zdaz.Zd(), zdaz.Az());
    123 }
    124 
  • trunk/MagicSoft/Cosy/catalog/Slalib.h

    r911 r912  
    33
    44#include "coord.h"
     5#include "base/timer.h"
    56
    6 class Slalib
     7class Slalib : public Timer
    78{
    89private:
    9     double   fPhi;      // location of observatory
    10     double   fElong;
    11 
    12     AltAz    fAltAz;    // [rad]
    13     RaDec    fRaDec;    // [rad]
    14 
    1510    double   fAlpha;
    1611    double   fMjd;
    1712
    18     double   fAmprms[21];
    19     double   fAoprms[14];
     13    double   fPhi;      // location of observatory
     14    double   fElong;
    2015
    2116public:
     
    2722    //    const RaDec GetRaDec() const { return fRaDec*360/D2PI; }
    2823
    29     void   Set(const double mjd);
     24    void SetMjd2Now();
     25    void SetMjd(const struct timeval *tm);
    3026
    31     void   Set(const AltAz &altaz);
    32     void   Set(const ZdAz  &zdaz);
    33     void   Set(const RaDec &radec);
     27    virtual void SetMjd(const double mjd);
    3428
    3529    double GetAlpha() const { return fAlpha; }
     30    double GetMjd() const   { return fMjd; }
    3631
    3732    double GetPhi() const   { return fPhi; }
    3833    double GetElong() const { return fElong; }
    3934
    40     RaDec  CalcRaDec(const AltAz &altaz) const;
    41     RaDec  CalcRaDec(const ZdAz  &altaz) const;
    42 
    43     AltAz  CalcAltAz(const RaDec &radec) const;
    44     ZdAz   CalcZdAz (const RaDec &radec) const;
    45 
     35    ZdAz   XYZ2ZdAz(double coord[3]) const;
    4636};
    4737
  • trunk/MagicSoft/Cosy/catalog/StarCatalog.cc

    r808 r912  
    99#include "slamac.h"
    1010#include "File.h"
    11 #include "timer.h"
    12 
    13 StarCatalog::StarCatalog() : fEntries(0)
     11
     12StarCatalog::StarCatalog() : SlaStars(), fEntries(0)
    1413{
    1514    // p = pointer to MainFrame (not owner)
     
    6867    cout << "  Az: " << fAltAz.Az() << endl;
    6968
    70     fRaDec = sla.CalcRaDec(fAltAz);
     69    fRaDec = CalcRaDec(fAltAz);
    7170
    7271    cout << "Ra: " << 360.0/D2PI*fRaDec.Ra();
     
    8281    fRaDec *= D2PI/360.0;
    8382
    84     fAltAz = sla.CalcAltAz(fRaDec);
     83    fAltAz = CalcAltAz(fRaDec);
    8584
    8685    cout << "Alt: " << 360.0/D2PI*fAltAz.Alt() << "  ";
     
    215214    double de0, de1;
    216215
    217     const double phi   = sla.GetPhi();
    218     const double alpha = sla.GetAlpha();
     216    const double phi   = GetPhi();
     217    const double alpha = GetAlpha();
    219218    //
    220219    // scan horizontal border
     
    401400    memset(cimg, 0, 768*576);
    402401
    403     sla.Set(utc);
     402    SetMjd(utc);
    404403    //fAlpha = sla.GetAlpha();
    405404    SetRaDec(radec);
     
    419418    memset(cimg, 0, 768*576);
    420419
    421     sla.Set(utc);
     420    SetMjd(utc);
    422421    //fAlpha = sla.GetAlpha();
    423422    SetAltAz(altaz);
     
    496495    // ---- mean to observed ---
    497496    //
    498     AltAz altaz=sla.CalcAltAz(sao->GetRaDec()) * 360.0/D2PI;
     497    AltAz altaz=CalcAltAz(sao->GetRaDec()) * 360.0/D2PI;
    499498
    500499    if (sao->MagV() > fLimitMag)
     
    520519    // radec[rad] -> hadec[rad]
    521520    //
    522     const double ha = sla.GetAlpha()-ra;
     521    const double ha = GetAlpha()-ra;
    523522
    524523    //
     
    526525    //
    527526    double alt, az;
    528     slaDe2h(ha, dec, sla.GetPhi(), &az, &alt);
     527    slaDe2h(ha, dec, GetPhi(), &az, &alt);
    529528
    530529    //
  • trunk/MagicSoft/Cosy/catalog/StarCatalog.h

    r808 r912  
    88#include "SaoFile.h"
    99#endif
    10 #ifndef SLALIB_H
    11 #include "Slalib.h"
     10#ifndef SLASTARS_H
     11#include "SlaStars.h"
    1212#endif
    1313
     
    1616typedef unsigned char byte;
    1717
    18 class StarCatalog
     18class StarCatalog : public SlaStars
    1919{
    2020private:
     
    2222    sort_t  *fSrt;
    2323    int      fEntries;
    24 
    25     Slalib   sla;
    26 
    27 //    double   fPhi;      // location of observatory
    28 //    double   fElong;
    2924
    3025    double   fPixSize;  // [rad/pix] size of one pixel
     
    4641    int      fDecMax;
    4742
    48 //    double   fAlpha;
    49 //    double   fMjd;
    50 //    double   fAmprms[21];
    51 //    double   fAoprms[14];
    52 
    5343    void DrawCross(byte *img, const int x, const int y);
    5444    void DrawCircle(int color, byte *img, int xx, int yy, int size);
     
    6555    void   SetRaDec(const RaDec &radec);
    6656    void   SetAltAz(const AltAz &altaz);
    67 //    void   SetMjd(const double mjd);
    6857    void   DrawSCAltAz(byte *img, const int color);
    6958    void   DrawSCRaDec(byte *img, const int color);
Note: See TracChangeset for help on using the changeset viewer.