Annotation of researchv10no/cmd/sky/geo.c, revision 1.1.1.1

1.1       root        1: #include "sky.h"
                      2: 
                      3: geo()
                      4: {
                      5: 
                      6: /*
                      7:  *     uses alpha, delta, georad
                      8:  */
                      9: 
                     10: /*
                     11:  *     sets ra, decl, lha, decl2, az, el
                     12:  */
                     13: 
                     14: /*
                     15:  *     geo converts geocentric equatorial coordinates
                     16:  *     to topocentric equatorial and topocentric horizon
                     17:  *     coordinates.
                     18:  *     All are (usually) referred to the true equator.
                     19:  */
                     20: 
                     21:        double sel, saz, caz;
                     22:        double f;
                     23:        double sa, ca, sd;
                     24: 
                     25: /*
                     26:  *     convert to local hour angle and declination
                     27:  */
                     28: 
                     29:        lha = gst - alpha - glong;
                     30:        decl = delta;
                     31: 
                     32: /*
                     33:  *     compute diurnal parallax (requires geocentric latitude)
                     34:  */
                     35: 
                     36:        sa = cos(decl)*sin(lha);
                     37:        ca = cos(decl)*cos(lha) - erad*cos(glat)*sin(hp);
                     38:        sd = sin(decl)           - erad*sin(glat)*sin(hp);
                     39: 
                     40:        lha = atan2(sa, ca);
                     41:        decl2 = atan2(sd, sqrt(sa*sa+ca*ca));
                     42:        f = sqrt(sa*sa+ca*ca+sd*sd);
                     43:        semi2 = semi/f;
                     44:        ra = gst - lha - glong;
                     45:        while(ra > pi)
                     46:                ra -= 2*pi;
                     47:        while(ra < -pi)
                     48:                ra += 2*pi;
                     49: 
                     50: /*
                     51:  *     convert to horizon coordinates
                     52:  */
                     53: 
                     54:        sel = sin(nlat)*sin(decl2) + cos(nlat)*cos(decl2)*cos(lha);
                     55:        el = atan2(sel, sqrt(1.-sel*sel));
                     56:        saz = sin(lha)*cos(decl2);
                     57:        caz = cos(nlat)*sin(decl2) - sin(nlat)*cos(decl2)*cos(lha);
                     58:        az = pi + atan2(saz, -caz);
                     59: 
                     60:        az /= radian;
                     61:        el /= radian;
                     62: 
                     63: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.