= Number of Subscans = Due to a limitation in the maximum number of files opened in cfitsio (300 in the APECS-1.0), the maximum number of subscan readable in [[Boa]] is 99. (!) Use {{{continuous_data 'on'}}} to observe as much as you want with one single subscan (!) However, if you observe moving objects, their coordinates are only computed once per subscan = Observing Tips = In the following, you can start the specified {{{macro.apecs}}} by typing {{{run_macro('macro.apecs')}}} at the APECS prompt, or when function are defined {{{ execfile('macro.apecs') }}}. A set of useful abbreviations have been defined in the {{{abb.apecs}}} macro. <> == How to setup your observing session == The {{{setup-laboca.apecs}}} macro has to be launch at the beginning of each observing session : {{{#!python #SET PROJECT ID project_id('your ESO project ID') #SET FRONTEND - BACKEND frontends 'LABOCA' laboca.backends 'abba' #SELECT USED CHANNELS AND REFERENCE PIXEL laboca.feeds select='all',ref='default' #SET FRONTEND GAIN laboca gain=4 #SET BACKEND GAIN AND DUMPTIME (200Hz) abba dumptime=0.005, gain=10 #SWITCH OFF USE OF REFERENCE use_ref 'off' #SWITCH CONTINUUS DATA TAKING OFF continuous_data 'off' #SET DEFAULT CATLOG FOR 2nd CALIBRATORS AND POINTING SOURCES: sourcecats(['POINT.cat','Your catalog.cat']) }}} === Observe with a few feeds only === Once you have determined which feeds are dead, noisy or non responsive, you can select only a set of good bolometers to observe with. For example, you can setup a {{{good_chan.apecs}}} file as : This following is for illustration only {{{#!python center_chan = 318 sky_chan= [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 25, 26, 27, 28, 31, 36, 38, 39, 41, 42, 43, 44, 45, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 61, 62, 63, 65, 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 119, 121, 122, 123, 126, 127, 128, 129, 131, 132, 133, 134, 136, 137, 138, 139, 140, 141, 143, 147, 148, 149, 150, 153, 154, 155, 156, 157, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 175, 176, 177, 178, 179, 180, 181, 183, 184, 185, 186, 187, 191, 192, 194, 196, 198, 202, 203, 205, 207, 209, 212, 215, 216, 217, 218, 219, 220, 221, 223, 225, 227, 228, 233, 234, 236, 237, 238, 239, 240, 244, 245, 246, 249, 253, 255, 256, 257, 258, 259, 262, 263, 264, 265, 267, 269, 270, 271, 274, 278, 279, 281, 282, 283, 286, 288, 290, 291, 292, 296, 298, 303, 310, 313, 314, 316, 317, 320] dark_chan= [29, 33, 35, 40, 64, 66, 124, 135, 142, 144, 146, 151, 158, 189, 193, 195, 200, 224, 226, 284, 295, 302, 304, 306, 311] good_chan = [] good_chan.extend(sky_chan) good_chan.extend(dark_chan) beam_chan = [] beam_chan.extend(sky_chan) beam_chan.append(center_chan) small_chan = [1,9,10,11,17,19,110,121] small_chan.extend(dark_chan) }}} and changing the {{{setup-laboca.apecs}}} as {{{#!python [..] #SELECT USED CHANNELS AND REFERENCE PIXEL execfile('good_chan.apecs') laboca.feeds select=good_chan,ref='default' [..] }}} you will only get data for a subsample of the array, lowering the used disk space and the time needed to read them. If you want to make tests on the array, you can also use a very small subset of the array as {{{laboca.feeds select=small_chan,ref='default'}}} === Selecting the reference pixel === You can select which feeds will be the reference pixel for your observation. To simplify the process you can define functions like : This following is for illustration only {{{#!python def ref110(): laboca.feeds (select=beam_chan,ref=110) def refcenter(): laboca.feeds (select=beam_chan,ref='default') }}} to select, as reference pixel, the feed 110 or the default, respectively. == Pointing == === Crosses === Regular cross pointing scans are possible, but produce highly undersampled coverage on the sky. We recommand to use spiral strokes for pointing, producing fully sampled coverage on the sky for the complete field of view of the array. === Spirals === It is possible to use spiral strokes to make pointings with Laboca. A function {{{pspiral(time=20.0)}}} has been setup as follow in the {{{abb.apecs}}} file: be sure to select a valid reference channel, although not critical {{{#!python def pspiral(time=20.0): use_spiral ('on') # Define the spiral stroke : 200 Hz sampling spiral_setup(r0=0, r_dot=3, phi_dot=120, dumptime=0.005, \ r0_unit='arcsec', r_dot_unit='arcsec/s', \ phi_dot_unit='deg/s',dumptime_unit='s') # point scan in raster mode, 1 spiral, 20s point(time=time,mode='ras',points=1) use_spiral ('off') }}} == Focus == Focus can be made with standard {{{APECS}}} {{{focus()}}} command be sure to select a valid reference channel {{{#!python focus(amplitude=0.8,time=5,points=5,axis='Z',mode='sym') focus(amplitude=2.0,time=5,points=5,axis='X',mode='sym') focus(amplitude=2.0,time=5,points=5,axis='Y',mode='sym') }}} The focus scans will be reduced by the {{{onlineCalibrator}}}. The correction offsets can be applied by using the {{{fcorr()}}} command : {{{#!python fcorr('f') }}} == Skydip == In order to make a opacity measurement, a {{{bolotip()}}} function has been defined in the {{{abb.apecs}}} as follow : be sure to select a valid reference channel {{{#!python def bolotip(poi=6): # Being too cautious reference(x=0.0,y=0.0,system='ho') use_spiral ('off') continuous_data ('off') use_ref ('off') # move the telescope to zenith to avoid bolometer drifts source('BOLOTIP-EL88',x=(200.0,'deg'),y=(88.0,'deg'),system='ho') # Setting default gain for bolotips and move to the source abba (dumptime=0.005,gain=1) laboca (gain=1) go() # Do an sky-hot measurement and the skydip itself calibrate(mode='hot',time=10) skydip(am_stop=3.0,points=poi,time=10.0, mode='ras') # reset the gain to some default abba (gain=10) laboca (gain=4) }}} please use this macro instead of the {{{skydip()}}} APECS command since, the latter does not take the reference needed to reduce the skydip. == Map == === Spirals === === OTF === == BeamMap == In order to derive the array parameter, a function {{{beammap()}}} has been setup for beammaps : Do not use this on moving objects or planets, otherwise switch the {{{continuous_data 'off'}}} These functions cover completely the array if the center channel is set as reference {{{#!python def beammap(): use_spiral 'off' continuous_data 'on' #OTF 200Hz sampling 2'/sec speed takes about 12min + overhead - > 15min otf(xlen=720, xstep=0.6, \ ylen=720, ystep=6, \ time=0.005, direction='x',zigzag=1,\ unit='arcsec',system='ho') }}} Alternatively you can slipt the beammap into 3 smallers maps to ease their reduction {{{#!python def beammapsplit(): use_spiral ('off') continuous_data ('on') # First centered map offset(0,0,system='ho') otf(xlen=780,xstep=0.6,\ ylen=300,ystep=6,\ time=0.005,direction='x',zigzag=1,\ unit='arcsec',system='ho') # Second map for the lower part of the array offset(0,-240,system='ho') otf(xlen=780,xstep=0.6,\ ylen=300,ystep=6,\ time=0.005,direction='x',zigzag=1,\ unit='arcsec',system='ho') # Third map for the upper part of the array offset(0,+240,system='ho') otf(xlen=780,xstep=0.6,\ ylen=300,ystep=6,\ time=0.005,direction='x',zigzag=1,\ unit='arcsec',system='ho') # Do not forget to set back the offsets to default offset(0,0,system='ho') }}} == Pointing Run ==