26 const double AS2R = 4.848136811095359935899141e-6;
27 const double D2R = 1.745329251994329576923691e-2;
30 const double D180 = 3.141592653589793238462643;
48 static char *csys[] = {
58 double rc, dc, pr, pd, px, rv, ypa, soln[5], tara, tare, tarr, tarp,
59 dt, a, aold, bold, rold, da, db, dr;
75 eop.
xp = 50.995e-3 * AS2R;
76 eop.
yp = 376.723e-3 * AS2R;
77 eop.
dut1 = 155.0675e-3;
80 if ( iauAf2a (
'-', 5, 41, 54.2,
81 &obs.
slon ) )
return -1;
82 if ( iauAf2a (
'-', 15, 57, 42.8,
83 &obs.
slat ) )
return -1;
101 pm.
pca = -110.0 * AS2R;
103 pm.
paw = 999.9 * AS2R;
104 pm.
pan = -12.0 * AS2R;
128 &eop, &obs, &air, &opt, &ast ) )
return -1;
131 if ( iauTf2a (
' ', 14, 34, 16.81183, &rc ) )
return -1;
132 if ( iauAf2a (
'-', 12, 31, 10.3965, &dc ) )
return -1;
133 pr = atan2 ( -354.45e-3 * AS2R, cos(dc) );
134 pd = 595.35e-3 * AS2R;
137 spkCtar ( rc, dc, pr, pd, px, rv, &ast, &tar );
190 printf (
"\n-----------------------------------"
191 "---------------------------------\n\n" );
193 printf (
" TAI azimuth elevation"
205 for ( i = 0; i <= 20; i++ ) {
208 j =
spkVtel (
AXES, &obs, &opt, &pm, &ast, &ax3, &tar, &po,
209 &tara, &tare, &tarr, &tarp, soln );
211 printf (
"spkVtel status = %d\n", j);
218 rold =
iauAnpm ( soln[4] + ypa );
221 dt = ( (double) (i-20) ) / 20.0;
225 &eop, &obs, &air, &opt, &ast ) )
return -1;
228 for ( it = 0; it < 2; it++ ) {
236 j =
spkVtel (
AXES, &obs, &opt, &pm, &ast, &ax3, &tar, &po,
237 &tara, &tare, &tarr, &tarp, soln );
239 printf (
"spkVtel status = %d\n", j);
246 ax3.
r =
iauAnp ( soln[4] + ypa );
257 pm.
pia = 25.0 * AS2R;
258 pm.
pib = 15.0 * AS2R;
259 pm.
pvd = 10.0 * AS2R * cos(tare);
260 pm.
pca = -110.0 * AS2R;
262 pm.
paw = 999.9 * AS2R;
263 pm.
pan = -12.0 * AS2R;
268 printf (
"\n%16.10f %15.10f %14.10f %15.10f deg\n",
270 printf (
"%+32.10f %+14.10f %+15.10f \"/s\n",
271 -20.0*da/AS2R, 20.0*db/AS2R, 20.0*dr/AS2R );
282 j =
spkVtel (
AXES, &obs, &opt, &pm, &ast, &ax3, &tar, &po,
283 &tara, &tare, &tarr, &tarp, soln );
285 printf (
"spkVtel status = %d\n", j);
289 printf (
"\n-----------------------------------"
290 "---------------------------------\n\n" );
291 printf (
"Given:\n" );
292 printf (
" TAI = %15.9f MJD\n", ast.
tai );
293 printf (
" RMA = %15.9f deg\n", ax3.
r/D2R );
294 iauA2tf ( 4,
iauAnp(tar.
a), &s, i4 );
295 printf (
" target = %2.2d %2.2d %2.2d.%4.4d",
296 i4[0], i4[1], i4[2], i4[3] );
297 iauA2af ( 3,
iauAnpm(tar.
b), &s, i4 );
298 printf (
" %c%2.2d %2.2d %2.2d.%3.3d",
299 (
int) s, i4[0], i4[1], i4[2], i4[3] );
300 printf (
" %s\n", csys[tar.
sys] );
301 printf (
" hotspot [x,y] = %12.6f, %12.6f mm\n", po.
x, po.
y );
302 printf (
"Returned:\n" );
303 printf (
" encoder [Az,El] = %15.9f (N thru E), %15.9f deg\n",
304 180.0-soln[0]/D2R, soln[1]/D2R );
305 printf (
" PA of +y = %15.9f deg (%s)\n",
316 j =
spkVtel (
TARG, &obs, &opt, &pm, &ast, &ax3, &tar, &po2,
317 &tara, &tare, &tarr, &tarp, soln );
319 printf (
"spkVtel status = %d\n", j);
323 printf (
"\n-----------------------------------"
324 "---------------------------------\n\n" );
325 printf (
"Given:\n" );
326 printf (
" TAI = %15.9f MJD\n", ast.
tai );
327 printf (
" RMA = %15.9f deg\n", ax3.
r/D2R );
328 printf (
" hotspot [x,y] = %12.6f, %12.6f mm\n", po2.
x, po2.
y );
329 printf (
" encoder [Az,El] = %15.9f (N thru E), %15.9f deg\n",
330 180.0-ax3.
a/D2R, ax3.
b/D2R );
331 printf (
"Returned:\n" );
332 iauA2tf ( 4,
iauAnp(soln[0]), &s, i4 );
333 printf (
" target = %2.2d %2.2d %2.2d.%4.4d",
334 i4[0], i4[1], i4[2], i4[3] );
335 iauA2af ( 3,
iauAnpm(soln[1]), &s, i4 );
336 printf (
" %c%2.2d %2.2d %2.2d.%3.3d",
337 (
int) s, i4[0], i4[1], i4[2], i4[3] );
338 printf (
" %s\n", csys[tar.
sys] );
346 if ( iauTf2a (
' ', 14, 35, 35.1363560, &rc ) )
return -1;
347 if ( iauAf2a (
'-', 12, 32, 10.771790, &dc ) )
return -1;
348 spkCtar ( rc, dc, 0.0, 0.0, 0.0, 0.0, &ast, &tar2 );
349 j =
spkVtel (
HOTS, &obs, &opt, &pm, &ast, &ax3, &tar2, &po,
350 &tara, &tare, &tarr, &tarp, soln );
352 printf (
"spkVtel status = %d\n", j);
356 printf (
"\n-----------------------------------"
357 "---------------------------------\n\n" );
358 printf (
"Given:\n" );
359 printf (
" TAI = %15.9f MJD\n", ast.
tai );
360 printf (
" RMA = %15.9f deg\n", ax3.
r/D2R );
361 iauA2tf ( 4,
iauAnp(tar2.
a), &s, i4 );
362 printf (
" target = %2.2d %2.2d %2.2d.%4.4d",
363 i4[0], i4[1], i4[2], i4[3] );
364 iauA2af ( 3,
iauAnpm(tar2.
b), &s, i4 );
365 printf (
" %c%2.2d %2.2d %2.2d.%3.3d",
366 (
int) s, i4[0], i4[1], i4[2], i4[3] );
367 printf (
" %s\n", csys[tar2.
sys] );
368 printf (
" encoder [Az,El] = %15.9f (N thru E), %15.9f deg\n",
369 180.0-ax3.
a/D2R, ax3.
b/D2R );
370 printf (
"Returned:\n" );
371 printf (
" hotspot [x,y] = %12.6f, %12.6f mm\n",
381 tar2.
a = D180 - tara;
383 j =
spkVtel (
AXES, &obs, &opt, &pm, &ast, &ax3, &tar2, &po,
384 &tara, &tare, &tarr, &tarp, soln );
386 printf (
"\n-----------------------------------"
387 "---------------------------------\n\n" );
388 printf (
"Given:\n" );
389 printf (
" TAI = %15.9f MJD\n", ast.
tai );
390 printf (
" RMA = %15.9f deg\n", ax3.
r/D2R );
391 printf (
" target = %15.9f (N thru E), %15.9f deg (%s)\n",
392 tar2.
a/D2R, tar2.
b/D2R, csys[tar2.
sys] );
393 printf (
" hotspot [x,y] = %12.6f, %12.6f mm\n", po.
x, po.
y );
394 printf (
"Returned:\n" );
395 printf (
" encoder [Az,El] = %15.9f (N thru E), %15.9f deg\n",
396 180.0-ax3.
a/D2R, ax3.
b/D2R );
397 printf (
" PA of +y = %15.9f deg (%s)\n",
400 printf (
"\n-----------------------------------"
401 "---------------------------------\n" );