Date - 2000.03.28 Tester - S.T. Myers (AOC) Platform - Linux (kernow) Version - Stable (1.4 build 0) Note: bugs are denoted by lines with prefix: >>>BUG and queries are denoted by lines with prefix: >>>QUERY ------------------------------------------------------------------------------- GOAL: First try at polarization calibration data. Test on B-config X-band data 19991219X.UVF 1. Read data into measurement set include 'synthesis.g' dowait:=T m:=fitstoms(msfile='19991219X.ms',fitsfile='19991219X.UVF'); m.close() Got a fits error (couldnt read 4 records), cannot tell if readable yet. Size: UVFITS file = 19797120 MS = 17808000 The MS is smaller than the UVFITS file! I wonder if that means not all the data was read in OK... 2. Try GUI visplot I can get a uvplot (chose field 1) for the uv coverage, but I cant find any way to make the aspect ratio sensible on the screen! Also selecting the pull down previous values tabs from the scaling menu made little windows with the values that were orphaned and didnt go away even when visplot was dismissed. They only went away when aips++ was exited. The actual utility of the GUI visplot is poor, due to the above considerations. Try a script-level version. include 'visplot.g'; myvisplot:=visplot('19991219X.ms'); This just brings up the usual visplot GUI. Oh well. After watching it put up the default 'all fields' plot, I see that it is set to do 4x3 plots per page, which was the problem before with aspect ratio. Changing this to settings nxsub=1 nysub=1 makes readable plots. After dismissing the pgplotter window, and trying to plot again, cant seem to get it to make another window. Fixed this by choosine from File Menu the 'Use a new plotter' command. The orphan window problem from the Scaling Selection (or any other Selection window) seems only to occur when a PGPlotter is open. Once that is done, even closing the plotter doesnt get rid of this behavior. Double-clicking on the orphaned windows seems to make them disappear. >>>BUG: WHY DOES THIS BEHAVIOR OCCUR. DOESNT SEEM SERIOUS THOUGH... OK, the visplot seems to work OK. 3. Lets look at some tables attached to the MS. GUI first. Try utility.table.table constructor. Hit the spanner to take from CatalogGUI and Show the 19991219X.ms, select SOURCE table and Send&Dismiss to table constructor. Create. First, try 'browse' function (could also have done this directly from CatalogGUI). The table seems to be empty! OK, lets go back to the CatalogGUI and browse the tables from there... Go to Windows menu of the Tool Manager, put up the tools in use, select the dc, and Show. Select 19991219X.ms and Show. View the following tables: SOURCE : empty ANTENNA : 28 antenna entries, but a bunch of entries (that are overwritten) on antennas 2+ Row OFFSET(m) POSITION(ITRF - long,lat,height) 1 [0.000, 0.000, 0.000] F F 2 [0.000, 0.000, 0.000] : index (= 2) out of range, array length=1 and so on... >>>QUERY: IS IT POSSIBLE TO ENABLE COPY,CUT,PASTE (VIA MOUSE) OF SELECTED TEXT INTO THE LINUX WINDOW MANAGER CLIPBOARDS TO ALLOW EASY TRANSFER TO EMACS FOR INSTANCE? Its clear that the AN table is screwed up. Continue browsing... OBS_LOG : looks like the AIPS history file, OK OBSERVATION : one line only, looks OK FIELD : seems to contain the 10 sources as field pointing centers ARRAY : VLA only, looks OK FEED : is this the AN table? has AN entries, but all positions are zero as in ANTENNA table above WEATHER : empty SYSCAL : empty, SHOULD THIS CONTAIN THE TY TABLE? SPECTRAL_WINDOW : this seems to be the FQ table table.dat : ERROR: cannot Regular File files what are the table.f0 ... table.f5 table.f5_TSM0 things? table.info : does not View, but prints message This is a MeasurementSet Table holding measurements from a Telescope OK, something didnt work on fitstoms. Go back to that... 4. Delete old 19991219X.ms and try again but from GUI general.ms.fitstoms -> myms msfile=19991219X.ms fitsfile from CatGUI,Send ERROR: Unexpected error, output may be corrupt: Invalid Table operation: SetupNewTable 19991219X.ms is already opened (is in the table cache) clearbuffer? close and Done. Show dc in Window -> ERROR: tries to display 19991219X.ms (left over from last time?) Measurements set not there! Try making ms again... Doesnt work from GUI. Try from script include 'synthesis.g'; dowait:=T m:=fitstoms(msfile='19991219X.ms',fitsfile='19991219X.UVF'); : Caught an exception! Event type=create exception=ColumnSet::doLock: table should be locked when using PermanentLocking or UserLocking File: servers.g, Line 1203 Stack: .() fitstoms() Grrr. Try restarting aips++. Something is mixed up... Restarted OK. Try include 'synthesis.g'; dowait:=T m:=fitstoms(msfile='19991219X.ms',fitsfile='19991219X.UVF'); Problems again. Here are the Log messages: >m:=fitstoms(msfile='19991219X.ms',fitsfile='19991219X.UVF'); Starting server ms Server started: /home/sneffels3/aips++/stable/linux_egcs/bin/ms (AIPS++ version: 1.4.00) Converting FITS file '19991219X.UVF' to MeasurementSet '19991219X.ms' Reading and writing 109996 visibility groups Found binary table of type AIPS AN following data Found binary table of type AIPS NX following data Skipping table (duplicate or unrecognized type) Found binary table of type AIPS SU following data Found binary table of type AIPS FQ following data Found binary table of type AIPS CL following data Skipping table (duplicate or unrecognized type) Found binary table of type AIPS CL following data Skipping table (duplicate or unrecognized type) Found binary table of type AIPS CL following data Skipping table (duplicate or unrecognized type) Found binary table of type AIPS TY following data Skipping table (duplicate or unrecognized type) Found binary table of type AIPS FG following data Skipping table (duplicate or unrecognized type) Found binary table of type AIPS SN following data Skipping table (duplicate or unrecognized type) Keyword value has wrong data type. FITS card 84: ORIGIN = 0 FITS card 84: ORIGIN = 0 Keyword value has wrong data type. Found binary table of type AIPS SN following data Skipping table (duplicate or unrecognized type) Flushing MS to disk Flushing MS to disk Tables are as before (bad ANTENNA and SOURCE tables). Exit aips++. Delete ms. Restart AIPS++ and try fitstoms from GUI - same behavior. 5. Try browsing tables under 1608.ms used in previous tests. ANTENNA : same mixed up entries SOURCE: empty also OK - this seems to be a general behavior of fitstoms and must not affect later operation. >>>QUERY: IS THIS INTENDED OR SHOULD THESE FILES BE FILLED SENSIBLY? I would have thought that the SOURCE table would contain the source names and other important things. These dont appear to be in the FIELDS table either. 6. Go ahead and open 19991219X.ms as a calibrater object. First open the ms (with GUI and script) and see if we can get some rudimentary listings (eg. scans, equivalent of LISTR). myms := ms('19991219X.ms'); myms.summary(); The summary does include the source list. The User Refman says the 'range' function returns info, thus myms.range('fields') [fields=0423-013 0521+166 0555+398 0609-157 0927+390 0713+438 0854+201 1146+399 1310+323 1331+305] Or more usefully, try myms.range("field_id fields") [field_id=[1 2 3 4 5 6 7 8 9 10] , fields=0423-013 0521+166 0555+398 0609-157 0927+390 0713+438 0854+201 1146+399 1310+323 1331+305] srcrecs := myms.range("field_id fields") numrecs := shape(srcrecs.field_id) for (i in 1:numrecs ) print 'Field ',srcrecs.field_id[i],' = ',srcrecs.fields[i] Field 1 = 0423-013 Field 2 = 0521+166 Field 3 = 0555+398 Field 4 = 0609-157 Field 5 = 0927+390 Field 6 = 0713+438 Field 7 = 0854+201 Field 8 = 1146+399 Field 9 = 1310+323 Field 10 = 1331+305 Thats a start. Now try to get scan times myms.select([field_id=[1]]); Initializing selection with arrayId=1, spWindow=0 Channel selection set to #chan=1, start=1, width=1, incr=1 selected polarizations: [RR, RL, LR, LL] Selection initialized ok for (i in 1:numrecs ) { myms.selectinit(); myms.select([field_id=[i]]); tt := myms.range("time"); print 'Field ',srcrecs.field_id[i],' = ',srcrecs.fields[i],' from ',tt.time[1],' to ',tt.time[2]; } Field 1 = 0423-013 from 4.45231036e+09 to 4.45231085e+09 Field 2 = 0521+166 from 4.45231103e+09 to 4.45231146e+09 Field 3 = 0555+398 from 4.45231164e+09 to 4.45231207e+09 Field 4 = 0609-157 from 4.45231228e+09 to 4.45231274e+09 Field 5 = 0927+390 from 4.45231305e+09 to 4.45231916e+09 Field 6 = 0713+438 from 4.45231377e+09 to 4.45231423e+09 Field 7 = 0854+201 from 4.45231464e+09 to 4.4523151e+09 Field 8 = 1146+399 from 4.45231603e+09 to 4.45231646e+09 Field 9 = 1310+323 from 4.45231732e+09 to 4.45231776e+09 Field 10 = 1331+305 from 4.45231787e+09 to 4.45231843e+09 What are these times in? I thought they were supposed to be mjd. Must be in seconds. MJD Seconds? I looked through the quanta and measures documentation and I dont find an obvious way to manipulate these seconds. Maybe this for (i in 1:numrecs ) { myms.selectinit(); myms.select([field_id=[i]]); tt := myms.range("time"); tu := dq.quantity(tt.time[1],'s') t_start := dq.time(tu,form="dmy") tu := dq.quantity(tt.time[2],'s') t_end := dq.time(tu) print 'Field ',srcrecs.field_id[i],' = ',srcrecs.fields[i],' from ',t_start,' to ',t_end; } Field 1 = 0423-013 from 19-Dec-1999/08:52:40.000 to 09:00:50.000 Field 2 = 0521+166 from 19-Dec-1999/09:03:50.000 to 09:11:00.001 Field 3 = 0555+398 from 19-Dec-1999/09:14:00.001 to 09:21:10.000 Field 4 = 0609-157 from 19-Dec-1999/09:24:40.000 to 09:32:19.999 Field 5 = 0927+390 from 19-Dec-1999/09:37:29.999 to 11:19:20.000 Field 6 = 0713+438 from 19-Dec-1999/09:49:30.001 to 09:57:10.000 Field 7 = 0854+201 from 19-Dec-1999/10:04:00.000 to 10:11:39.999 Field 8 = 1146+399 from 19-Dec-1999/10:27:10.001 to 10:34:20.000 Field 9 = 1310+323 from 19-Dec-1999/10:48:40.000 to 10:56:00.000 Field 10 = 1331+305 from 19-Dec-1999/10:57:50.001 to 11:07:10.000 Bingo! >>>QUERY: SHOULD ONE OF THE FIRST MACRO TOOLS BE A LISTER WHICH EMULATES THE MAIN FUNCTIONALITY OF AIPS LISTER? Note that the ms tool contains the main functionality for getting and manipulating the uvdata (via buffers it seems). >>>QUERY: IF A FITS FILE WITH CL TABLE ENTRIES IS READ IN, IS THAT CALIBRATION INFO USEABLE BY CALIBRATER? End of testing session.