next up previous contents
Next: Data Reduction Up: Procedures and Variables Previous: Variables and Functions

Sample procedures

Here are several procedures used to observe. A typical observing sequence using these procedure is :

@PR:DEFINE               ! If needed
@PR:Source_1             ! Define parameters for source_1
@PR:OBSERVE              ! Observe source_1
@PR:Source_2             ! Define parameters for source_2
@PR:OBSERVE              ! Observe source_2
etc...

The PR:DEFINE.OBS procedure contains all general definitions used in the setup, startup and observation procedure

! PR| DEFINE.OBS                define general variables
!------------------------------------------------------------------------
if run_window then
   @pr:x_obs
endif
DEFINE CHARACTER NAME*12                /GLOBAL ! source name
DEFINE CHARACTER CALIBRATOR_1*12        /GLOBAL ! main calibrator
DEFINE CHARACTER CALIBRATOR_2*12        /GLOBAL ! suppleant
DEFINE CHARACTER CALIBRATOR_3*12        /GLOBAL ! innovation g016
DEFINE CHARACTER CALIBRATOR_B*12        /GLOBAL ! RF Passband calibrator
DEFINE REAL LOW_LIMIT                   /GLOBAL !
DEFINE REAL SUN_LIMIT                   /GLOBAL !
DEFINE REAL LST_DEFLIM                  /GLOBAL !
! RECEIVER  is the receiver that should be pointed on source
! POINT-RECEIVER is the receiver used for pointing scans
! FOCUS-RECEIVER is the receiver used for focus  scans
DEFINE INTEGER RECEIVER                 /GLOBAL 
DEFINE INTEGER POINT_RECEIVER           /GLOBAL 
DEFINE INTEGER FOCUS_RECEIVER           /GLOBAL 
DEFINE INTEGER N_SCANS                  /GLOBAL ! Number of scans per source
DEFINE INTEGER N_SUBSCANS               /GLOBAL ! Number of subscans per scan
DEFINE INTEGER N_DUMPS                  /GLOBAL ! Number of dumps
DEFINE INTEGER N_BAND                   /GLOBAL ! Number of subscans for RF 
DEFINE INTEGER N_MOSAIC                 /GLOBAL ! Number of mosaic positions
DEFINE INTEGER N_SHARE                  /GLOBAL ! Share several sources
DEFINE INTEGER STOP_ALARM               /GLOBAL ! 1 stop alarm ; 0 set ala 200
DEFINE INTEGER I_CAL                    /GLOBAL ! Current calibrator
DEFINE INTEGER N_CALIBRATORS            /GLOBAL ! Share several sources
DEFINE INTEGER N_SUBS_CAL[3]            /GLOBAL ! Nb subscans / calibrator scan
DEFINE INTEGER N_SCANS_CAL[3]           /GLOBAL ! Nb scans / calibrator 
DEFINE INTEGER   N_SOURCES              /GLOBAL 
DEFINE CHARACTER NAME_SOURCE*12[20]     /GLOBAL 
DEFINE INTEGER   N_SCANS_SOURCE[20]     /GLOBAL 
DEFINE LOGICAL   CHANGE_SPECTRAL        /GLOBAL
DEFINE CHARACTER TYPE_SOURCE*6          /GLOBAL
DEFINE INTEGER   FSWI_SCANS_CAL         /GLOBAL ! Nb scans /calibrator in FSWI 
DEFINE INTEGER   FSWI_SUBS_CAL          /GLOBAL ! Nb subscans /calibrator in FSWI 
DEFINE INTEGER   FSWI_SCANS             /GLOBAL ! Nb scans /source in FSWI 
DEFINE INTEGER   FSWI_SUBS              /GLOBAL ! Nb subscans /source in FSWI 
DEFINE LOGICAL   FSWI_CAL               /GLOBAL ! Do or not a Fast-Switch
!
!------------------------------------------------------------------------
! Global variables for auto_snap procedure
!
DEFINE INTEGER NUMBER_SOURCES   /GLOBAL
DEFINE INTEGER N_RF_PASSBAND    /GLOBAL
DEFINE INTEGER N_SNAP           /GLOBAL
DEFINE REAL LST_INTERVAL        /GLOBAL
DEFINE CHARACTER SNAP_NAME*12   /GLOBAL
DEFINE LOGICAL NO_RF            /GLOBAL
DEFINE LOGICAL DO_RF_PASSBAND   /GLOBAL
DEFINE LOGICAL INIT_SNAP        /GLOBAL
LET N_RF_PASSBAND 3
LET LST_INTERVAL 2.
LET N_SNAP 2
!----------------------------------------------------------------------
! Pointing session or Baseline measurements
!
SYMBOL P_COMMAND "POINT"
SYMBOL A_COMMAND "AUTO 4 TWEAK"
SYMBOL PC "@ PR:PHASE-ALL"      ! Phase calibration
SYMBOL LAST "@ PR:PHASE-LAST"   ! Last phase calibration
SYMBOL BC "@ PR:BAND"           ! Bandpass calibration
SYMBOL GM "@ PR:GAIN"           ! Image Gain measurement
SYMBOL OLD "@ pr:setup-type 1"  ! Switch to OLD procedures = ../OLD
SYMBOL NEW "@ pr:setup-type 2"  ! Switch to NEW procedures = ../PRO
!
!----------------------------------------------------------------------
! RDI solves for focus and/or  pointing
!
DEFINE LOGICAL SOLVE_FOCUS SOLVE_POINT  /GLOBAL
DEFINE CHARACTER POINT_SOURCE_1*12      /GLOBAL ! main Pointing source
DEFINE CHARACTER POINT_SOURCE_2*12      /GLOBAL ! next choice
DEFINE CHARACTER FOCUS_SOURCE_1*12      /GLOBAL ! main Pointing source
DEFINE CHARACTER FOCUS_SOURCE_2*12      /GLOBAL ! next choice
DEFINE REAL T_FOCUS LAST_FOCUS          /GLOBAL
DEFINE REAL T_POINT LAST_POINT          /GLOBAL
DEFINE LOGICAL DO_FIVE  /GLOBAL
!
!---------------------------------------------------------------------
! Start with default values
!
@ pr:defaults
!

The setup procedure configures the correlator, select the observing frequency, and leaves the system ready for receiver tuning.

!----------------------------------------------------------------------
!
! PR:SETUP-Z023.OBS     ! Setup procedure for project "Z023"
!
!    - Date:        Wed May 21 12:17:48 MET 1999
!------------------------------------------------------------------------
SET\END                           ! Finish previous observation
@ PR:defaults                     ! Restore defaults parameters
!
SET\PROJECT Z023                  !**! Specify project number for further 
!
SYMBOL GO "@ pr:observe-all Z023" !* ! data processing
CATA SOU inter_base:iram.sou         !* ! 
CATA PHA inter_base:phase-pdb.sou !* ! 
LET RECEIVER 1                    !* ! Observing reference: receiver 1
!
LET LOW_LIMIT 15.                 !* ! Low elevation limit 15 degrees
SAY "Project 'PROJECT' starting"  !
!
SYMBOL NAME "M2-56 EQ 2000 23:56:36.081 70:48:17.4 LSR -27"   !**! Source 
!                                 
LET N_SOURCES 1                          !* ! use SYMBOL NAME if N_SOURCES.EQ.1
LET N_SUBSCANS 60                 !* ! Scan length (in seconds)
LET N_SCANS 20                    !* ! Number of scans on SOURCE (20 minutes)
!
LET CALIBRATOR_1 "1928+738"        !* ! 2nd phase calibrator
LET CALIBRATOR_2 "0224+671"        !* ! 3rd phase calibrator (if necessary)
LET CALIBRATOR_3 "......."        !* ! 3rd phase calibrator (if necessary)
LET N_CALIBRATORS 1 ! 2 (RL)      !* ! Use 2 phase calibrators every N_SCANS
LET N_SUBS_CAL  45                !* ! Scan length on calibrator (in seconds)
LET N_SCANS_CAL 3                 !* ! Nb scans on each calibrator (3 scans)

LET N_MOSAIC 3                    !* ! No mosaic mode
IF (N_MOSAIC.NE.0) THEN
   DEFINE REAL X_MOSAIC[N_MOSAIC] Y_MOSAIC[N_MOSAIC] T_MOSAIC[N_MOSAIC] /GLOBAL
   LET X_MOSAIC -11  0 11         !* !
   LET Y_MOSAIC   0  0  0         !* !
   LET T_MOSAIC   7  7  7         !* !
ENDIF
!
LET SOLVE_POINT YES         ! 
LET SOLVE_FOCUS YES         !
LET FOCUS_RECEIVER 1              !* ! Focussing on receiver 1
LET POINT_RECEIVER 1              !* ! Pointing on receiver 1    
LET POINT_SOURCE_1 "1928+738"     !**! 1st pointing source
LET POINT_SOURCE_2 "0224+671"     !* ! 2nd pointing source
LET FOCUS_SOURCE_1 "1928+738"     !**! 1st focusing source
LET FOCUS_SOURCE_2 "0224+671"     !* ! 2nd focusing source
!
LET CHANGE_SPECTRAL .FALSE.       !* ! .TRUE. if need to switch to broad_band
!
SPECTRAL 1  20  350 /RECEIVER 1   !**! Define software correlator configuration
SPECTRAL 2  80  350 /RECEIVER 1   !**! Define software correlator configuration
SPECTRAL 3 160  350 /RECEIVER 1   !**! Define software correlator configuration
SPECTRAL 4 160  350 /RECEIVER 2   !**! Define software correlator configuration
SPECTRAL 5 160  278 /RECEIVER 2   !**! Define software correlator configuration
SPECTRAL 6 160  422 /RECEIVER 2   !**! Define software correlator configuration
!
LINE CO(10) 115.271 USB LOW 350  /REC 1    !**! Define observing frequency
LINE CO(21) 230.538 LSB LOW 350  /REC 2    !**! Define observing frequency
!
IF (N_SOURCES.GT.1) THEN
  SOURCE 'NAME_SOURCE[1]' /TYPE OBJ         ! 
 ELSE
  SOURCE 'NAME' /TYPE OBJ         ! 
ENDIF
LOAD /FREQUENCY                    ! Load frequency, but don't move antenna now
CENTER_LO2                        !
!
SET SHOW OFF
! Make sure any changes in the spectral configuration will be detected:
SET\LOCK
!
TYPE PR:CLEAN.OBS
SAY "Project Z023   Type: Mapping /  Category: Dual frequency"     !**!
SAY " "
SAY "               Tuning Receiver 1:              USB, tuning SSB" !**!
SAY "               Tuning Receiver 2:              DSB, tuning DSB" !**!
SAY "               Observing on Receiver:          "'RECEIVER'    !
SAY "               Receiver Stability (1.3mm):     2-3 (Average)" !**!
SAY " "
!
! Insert here any other instructions to the operator/astronomer
!
SAY "Frequency sent, receivers may be tuned"
SAY "Execute all observations by typing GO"
SAY " "
SAY "Type END when project is finished"
SAY " "
SYMBOL PROCEED /INQUIRE "Type RETURN to remove this page: "
SET SHOW ON
SET SHOW ON

The procedure PR:OBSERVE.OBS is used to perform standard observations

! PR:OBSERVE Project_Number [LST_limit]
!
! Check the required project has been specified
IF (PROJECT.NE."&1") THEN
    SAY "Wrong project 'PROJECT', expected &1"
    RETURN
ENDIF
!
DEFINE CHARACTER ARG*12
LET ARG "&2"
IF (ARG.NE." ") THEN
    LET LST_LIMIT &2
ELSE
    LET LST_LIMIT LST()+12.
ENDIF
SOURCE 'NAME' /TYPE OBJ
IF (ELEV(0).LT.LOW_LIMIT) THEN
    SAY "Source not up, retry later"
    RETURN
ENDIF
IF (LST().GE.LST_LIMIT) THEN
    LET LST_LIMIT = LST_LIMIT+24.
ENDIF
!
SET INTEGRATION N_DUMPS
FOR/WHILE (ELEV(0).GE.LOW_LIMIT).AND.(LST().LE.LST_LIMIT)
! Normal phase calibration
    @ PR:PHASE-CAL
!
! Now Source observation
    SET SCAN N_SCANS
    SET SUB  N_SUBSCANS
    SOURCE 'NAME' /TYPE OBJECT
    LOAD
    BANDPASS    
    CALIBRATE
    START      ! Start N_SCANS
NEXT
!
! Last phase calibration
@ PR:PHASE-LAST
! And says project is finished
@ PR:END

The procedure PR:PHASE-CAL.OBS is used to perform standard phase calibrations, selecting one of the two phase calibrators:

SOURCE 'CALIBRATOR_1' /TYPE PHASE
SET SUB 60
SET SCANS 4
IF (ELEV(0).GE.LOW_LIMIT).AND.(LST().LE.LST_LIMIT)-
    .AND.(DSUN.GT.SUN_LIMIT) THEN
    LOAD
    BANDPASS    
    CALIBRATE
    START
ELSE
    SOURCE 'CALIBRATOR_2' /TYPE PHASE
    IF (ELEV(0).GE.LOW_LIMIT).AND.(LST().LE.LST_LIMIT)-
    .AND.(DSUN.GT.SUN_LIMIT) THEN
	LOAD
	BANDPASS    
	CALIBRATE
	START
    ENDIF
ENDIF

The procedure PR:PHASE-LAST.OBS is similar, but does not check the time limit and accepts lower elevation:

SOURCE 'CALIBRATOR_1' /TYPE PHASE
SET SUB 60
SET SCANS 4
IF (ELEV(0).GE.LOW_LIMIT).AND.(DSUN.GT.SUN_LIMIT) THEN
    LOAD
    BANDPASS    
    CALIBRATE
    START
ELSE
    SOURCE 'CALIBRATOR_2' /TYPE PHASE
    IF (ELEV(0).GE.5.0).AND.(DSUN.GT.SUN_LIMIT) THEN
        LOAD
        BANDPASS    
        CALIBRATE
        START
    ENDIF
ENDIF

The procedure PR:END.OBS just notify the system that the project is complete :

IF (PROJECT.NE." ") THEN
    NOTE "Project 'PROJECT' complete"
    DELETE/SYMBOL GO
    LET PROJECT " "
ENDIF



Gildas manager
2002-02-04