Hello all,


I am trying to get the function j2000ToAltAz() work as simple as possible.
But my test case is not returning a valid RA/DEC to ALT/AZ conversion.



I have made getRotEquatorialToVsop87() returns Mat4d::identity() as a first
approach to make code simple. I have noticed that getRotEquatorialToVsop87()

uses JDE and this variable has a previous state (time) that I will not have
in my application so I don't know how to solve this because my application
will only plot a static stellar map for a certain date/time/location. Maybe
returning an identity matrix would not change much the result.



I may be trying something stupid but please forgive me because I don't have
much knowledge in this subject. Hope someone can help me.





Thanks a lot

Andre



Here is the code:





// Matrices used for every coordinate transfo

Mat4d matAltAzToEquinoxEqu;                // Transform from topocentric
altazimuthal coordinate to Earth Equatorial

Mat4d matEquinoxEquToAltAz;                // Transform from Earth
Equatorial to topocentric (StelObserver) altazimuthal coordinate

Mat4d matEquinoxEquToJ2000;                // For Earth, this is almost the
inverse precession matrix, =Rz(VSOPbias)Rx(eps0)Rz(-psiA)Rx(-omA)Rz(chiA)

Mat4d matJ2000ToEquinoxEqu;                // precession matrix

Mat4d matJ2000ToAltAz;

Mat4d matAltAzModelView;                   // Modelview matrix for
observer-centric altazimuthal drawing

Mat4d invertMatAltAzModelView;             // Inverted modelview matrix for
observer-centric altazimuthal drawing





const double JD_SECOND=0.000011574074074074074074; // 1/(24*60*60)=1/86400

const double JD_MINUTE=0.00069444444444444444444;  // 1/(24*60)   =1/1440

const double JD_HOUR  =0.041666666666666666666;    // 1/24

const double JD_DAY   =1.;

const double ONE_OVER_JD_SECOND = 24 * 60 * 60;    // 86400



QPair<double,double> JD;           // From 0.14 on: JD.first=JD_UT,
JD.second=DeltaT=TT-UT. To gain JD_TT, compute JDE=JD.first+JD.second or
better just call getJDE()

#define LATITUDE    51.76954

#define LONGITUDE   4.605606





const Mat4d
matJ2000ToVsop87(Mat4d::xrotation(-23.4392803055555555556*(M_PI/180)) *
Mat4d::zrotation(0.0000275*(M_PI/180)));

const Mat4d matVsop87ToJ2000(matJ2000ToVsop87.transpose());





Mat4d getRotEquatorialToVsop87()

{

    Mat4d rval = Mat4d::identity();

    return rval;

}



Mat4d getRotAltAzToEquatorial(double JD)

{

    double lat = LATITUDE;

    double lng = LONGITUDE;

    if( lat > 90.0 )  lat = 90.0;

    if( lat < -90.0 ) lat = -90.0;

    return Mat4d::zrotation((getSiderealTime(JD)+lng)*M_PI/180.)*
Mat4d::yrotation((90.-lat)*M_PI/180.);

}



update()

{

        matAltAzToEquinoxEqu = getRotAltAzToEquatorial(getJD());

        matEquinoxEquToAltAz = matAltAzToEquinoxEqu.transpose();

        matEquinoxEquToJ2000 = matVsop87ToJ2000 *
getRotEquatorialToVsop87();

        matJ2000ToEquinoxEqu = matEquinoxEquToJ2000.transpose();

        matJ2000ToAltAz = matEquinoxEquToAltAz*matJ2000ToEquinoxEqu;

}



Vec3d j2000ToAltAz(const Vec3d& v)

{

        return matJ2000ToAltAz*v;

}





void setTime(QDateTime d)

{

       setJD(StelUtils::qDateTimeToJd(d));

}



Void main()

{

        QDateTime date = QDateTime(QDate(2016, 4, 15), QTime(10,0,0,0),
QTimeZone::utc());

        setTime(date);

update()
Vec3d in;



        double ra = 16.123456;

        double dec = 36.46667;

        spheToRect(ra*M_PI/180.0, dec*M_PI/180.0, in);

        double alt1, az1;

        rectToSphe(&az1, &alt1, out2);



        qDebug() << "j2000ToAltAz.alt:" << alt1*180/M_PI;

        qDebug() << "j2000ToAltAz.az:" << az1*180/M_PI;

}





---
Este email foi escaneado pelo Avast antivĂ­rus.
https://www.avast.com/antivirus
------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel

Reply via email to