Astro-Nova

 view release on metacpan or  search on metacpan

libnova-0.15.0/doc/doxyfile.in  view on Meta::CPAN

743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
# plain latex in the generated Makefile. Set this option to YES to get a
# higher quality PDF documentation.
 
USE_PDFLATEX           = NO
 
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
# command to the generated LaTeX files. This will instruct LaTeX to keep
# running if errors occur, instead of asking the user for help.
# This option is also used when generating formulas in HTML.
 
LATEX_BATCHMODE        = NO
 
# If LATEX_HIDE_INDICES is set to YES then doxygen will not
# include the index chapters (such as File Index, Compound Index, etc.)
# in the output.
 
LATEX_HIDE_INDICES     = NO
 
#---------------------------------------------------------------------------

libnova-0.15.0/src/dynamical_time.c  view on Meta::CPAN

103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
    double TD,t;
     
    /* number of centuries from 1850 */
    t = (JD - 2396758.5) / 36525.0;
     
    TD = 22.5 * t * t;
    return TD;
}
 
/* Table 9.a pg 72 for years 1600..1992.*/
/* uses interpolation formula 3.3 on pg 25 */
static double get_dynamical_diff_table (double JD)
{
    double TD = 0;
    double a,b,c,n;
    int i;
     
    /* get no days since 1620 and divide by 2 years */
    i = (int)((JD - 2312752.5) / 730.5);
     
    /* get the base interpolation factor in the table */

libnova-0.15.0/src/dynamical_time.c  view on Meta::CPAN

129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
        b = delta_t[i+2] - delta_t[i+1];
        c = a - b;
        n = ((JD - (2312752.5 + (730.5 * i))) / 730.5);
         
        TD = delta_t[i+1] + n / 2 * (a + b + n * c);
 
    return TD;
}
 
/* get the dynamical time diff in the near past / future 1992 .. 2010 */
/* uses interpolation formula 3.3 on pg 25 */
static double get_dynamical_diff_near (double JD)
{
    double TD = 0;
    /* TD for 1990, 2000, 2010 */
    double delta_T[3] = {56.86, 63.83, 70.0};
    double a,b,c,n;
          
    /* calculate TD by interpolating value */
    a = delta_T[1] - delta_T[0];
    b = delta_T[2] - delta_T[1];

libnova-0.15.0/src/dynamical_time.c  view on Meta::CPAN

176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
*
* Calculates the dynamical time (TD) difference in seconds (delta T) from
* universal time.
*/
/* Equation 9.1 on pg 73.
*/
double ln_get_dynamical_time_diff (double JD)
{
    double TD;
 
    /* check when JD is, and use corresponding formula */
    /* check for date < 948 A.D. */
    if ( JD < 2067314.5 )
        /* Stephenson and Houlden */
            TD = get_dynamical_diff_sh1 (JD);
    else if ( JD >= 2067314.5 && JD < 2305447.5 )
            /* check for date 948..1600 A.D. Stephenson and Houlden */
        TD = get_dynamical_diff_sh2 (JD);
        else if ( JD >= 2312752.5 && JD < 2448622.5 )
                /* check for value in table 1620..1992  interpolation of table */
                TD = get_dynamical_diff_table (JD);

libnova-0.15.0/src/transform.c  view on Meta::CPAN

86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
{
        long double H, ra, latitude, declination, A, Ac, As, h, Z, Zs;
 
        /* change sidereal_time from hours to radians*/
        sidereal *= 2.0 * M_PI / 24.0;
 
        /* calculate hour angle of object at observers position */
        ra = ln_deg_to_rad (object->ra);
        H = sidereal + ln_deg_to_rad (observer->lng) - ra;
 
        /* hence formula 12.5 and 12.6 give */
        /* convert to radians - hour angle, observers latitude, object declination */
        latitude = ln_deg_to_rad (observer->lat);
        declination = ln_deg_to_rad (object->dec);
 
        /* formula 12.6 *; missuse of A (you have been warned) */
        A = sin (latitude) * sin (declination) + cos (latitude) * cos (declination) * cos (H);
        h = asin (A);
 
        /* convert back to degrees */
        position->alt = ln_rad_to_deg (h);  
 
        /* zenith distance, Telescope Control 6.8a */
        Z = acos (A);
 
        /* is'n there better way to compute that? */

libnova-0.15.0/src/transform.c  view on Meta::CPAN

118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
        else
                position->az = 0;
        if ((object->dec > 0 && observer->lat > 0)
           || (object->dec < 0 && observer->lat < 0))
                position->alt = 90;
        else
                position->alt = -90;
        return;
}
 
/* formulas TC 6.8d Taff 1991, pp. 2 and 13 - vector transformations */
As = (cos (declination) * sin (H)) / Zs;
Ac = (sin (latitude) * cos (declination) * cos (H) - cos (latitude) * sin (declination)) / Zs;
 
// don't blom at atan2
if (Ac == 0 && As == 0) {
        if (object->dec > 0)
                position->az = 180.0;
        else
                position->az = 0.0;
        return;



( run in 0.244 second using v1.01-cache-2.11-cpan-5f2e87ce722 )