Go to the documentation of this file.
51 double olat, olon, ohgt, clat, clon, slat, slon;
52 double ens, xo, yo, zo, xos, yos, zos, xlt, ylt, zlt;
54 double emlt[3][3],
dlt[3][3];
74 emlt[1][0] = -slat*clon;
75 emlt[1][1] = -slat*slon;
77 emlt[2][0] = clat*clon;
78 emlt[2][1] = clat*slon;
83 ens =
EQRAD / sqrt(1.0 -
FLT * (2.0 -
FLT) * slat * slat);
84 xo = (ens + ohgt) * clat * clon;
85 yo = (ens + ohgt) * clat * slon;
86 zo = (ens * (1.0 -
FLT)*(1.0 -
FLT) + ohgt) * slat;
96 xlt = emlt[0][0] * xos + emlt[0][1] * yos + emlt[0][2] * zos;
97 ylt = emlt[1][0] * xos + emlt[1][1] * yos + emlt[1][2] * zos;
98 zlt = emlt[2][0] * xos + emlt[2][1] * yos + emlt[2][2] * zos;
102 rngsq = xlt * xlt + ylt * ylt + zlt*zlt;
117 a1 = xlt * xlt + ylt*ylt;
119 dlt[0][0] = ylt / a1;
120 dlt[0][1] = -xlt / a1;
122 dlt[1][0] = -zlt * xlt / (rngsq * a2);
123 dlt[1][1] = -zlt * ylt / (rngsq * a2);
124 dlt[1][2] = a2 / rngsq;
132 for (
i = 0;
i < 3;
i++) {
133 for (
j = 0;
j < 3;
j++) {
134 daer[
i][
j] =
dlt[
i][0] * emlt[0][
j] +
135 dlt[
i][1] * emlt[1][
j] +
136 dlt[
i][2] * emlt[2][
j];
void ctotc(r, struct GEODETIC *obs, double gha, struct TOPOCENTRIC *top, daer)