The ERF->SIRF conversion (delta) on the EXES GUI should be correct. Values entered in the ERF boxes (E/N) the SIRF calculated (|| and _|, that is: parallel and perpendicular) should move the telescope in the same direction as the previous command in ERF. At this point, my guess is that if the bright green cross represents 0,0 as defined by the XML then the commands as I send them now are "correct" in terms of coordinate system but do not actually move the telescope the same way.
If we want x to be -x, should change the XML so that 0,0 is at the lower right of the FPI, I think. My guess would be to change platescale in X to minus the current value. I would like to try this on the SIL as XML mode exes-slit-flip-x.
===================== What is in the code now: =========================
![]() |
| NOD 20"E, 30"N from SIBS |
nod.define coord_sys=ERF profile=3 pos_angle=146.3099 amplitude=18.028 amp2=18.028 track_pos_a=nodtracka track_pos_x=nodtrackx track_pos_b=nodtrackb
The 18.028 is sqtr(20*20 + 30*30)/2.
The yellow-green arrows show the requested position to move the telescope.
The red arrows show the movement the target makes on the FPI.
On the GUI, using coord.pos.sibs.vpa as the angle, E/N above is converted to SIRF:
x(q) =33.31
y(p) = -13.790770167929047
nodAngle = 112.49018659767083
nodAmp = 36.051927019573334 off slit
and produces the command:
nod.define coord_sys=SIRF profile=3 pos_angle=122.6227 amplitude=18.029 amp2=18.029 track_pos_a=nodtracka track_pos_x=nodtrackx track_pos_b=nodtrackb
122.67 degrees from Y axis counter-clockwise.
That image is shown here (original, full size with markup):
![]() |
| NOD 33.31" X, -13.79"Y |
======================== Changes in code ================================
In order to "just make it work" we flip the X contribution ( X is "q" in EXES code below). These lines in the conversion from SIRF to ERF:
double north = -p * Math.cos(Math.toRadians(locTheta)) + q * Math.sin(Math.toRadians(locTheta));
double east = -p * Math.sin(Math.toRadians(locTheta)) - q * Math.cos(Math.toRadians(locTheta));
were changed to:
double north = -p * Math.cos(Math.toRadians(locTheta)) - q * Math.sin(Math.toRadians(locTheta));
double east = -p * Math.sin(Math.toRadians(locTheta)) + q * Math.cos(Math.toRadians(locTheta));
These line in the conversion from ERF to SIRF:
double q = north * Math.sin(Math.toRadians(locTheta)) - east * Math.cos(Math.toRadians(locTheta));
was changed to:
double q = -(north * Math.sin(Math.toRadians(locTheta)) - east * Math.cos(Math.toRadians(locTheta)));
This seemed to have worked in that if we moved with a nod.define in ERF and immediately followed with one in SIRF it all seemed to be going well (i.e. the conversion moved the telescope the same way in ERF and SIRF).
20 E 30 N => -28.13 Y -22.55 X OK
-20 E 30 N => -31.64 Y 17.29 X OK
-20 E -30 N => 28.13 Y 22.55 X OK
20 E -30 N => ???? I can not find an output (see outputs below)
I believe I forgot to hit Enter in the SIRF field but I need to test this again.
The (wrong) nod.define sent was:
nod.define coord_sys=SIRF profile=3 pos_angle=51.2785 amplitude=18.028 amp2=18.028 track_pos_a=nodtracka track_pos_x=nodtrackx track_pos_b=nodtrackb
========================================================================
OUTPUTS:
2016-12-30T16:29:12.438 AWT-EventQueue-0 East= 20.0 north=30.0 ERF: nodAngle = 146.30993247402023 nodAmp = 36.05551275463989 off slit
2016-12-30T16:30:19.580 AWT-EventQueue-0 SIRF: x(q) =-28.13 y(p) =-22.55 nodAngle = 231.28310695090178 nodAmp = 36.05273082583343 off slit
2016-12-30T16:31:52.768 AWT-EventQueue-0 East= -20.0 north=29.99879283921206 ERF: nodAngle = 213.69113163590538 nodAmp = 36.05450834236907 off slit
2016-12-30T16:33:05.643 AWT-EventQueue-0 SIRF: x(q) =-31.64 y(p) =17.2950355383569 nodAngle = 298.6618688239831 nodAmp = 36.05839505958395 off slit
2016-12-30T16:34:24.549 AWT-EventQueue-0 East= -20.002541398862668 north=-30.0 ERF: nodAngle = -33.6934276583436 nodAmp = 36.056922531092624 off slit
2016-12-30T16:35:44.086 AWT-EventQueue-0 SIRF: x(q) =28.13 y(p) =22.553731936380096 nodAngle = 51.27847970962215 nodAmp = 36.05506516785251 off slit
*no output with the above information in either form is between file close of FITS 00032 (so FITS 00033 matches and File close of FITS 00039, ASSUME I missed and did not hit ENTER in SIRF field? Some other bug?*


No comments:
Post a Comment