KL_26 calibration

Trial 1: 10 modes IM

Pupil setting [410, 475] [305, 320] [410, 280]

Flat with 385 modes

mh10=AdsecModalHistory(np.arange(10), '20161205_214300', 'KL_v26', argos.aarbCalibrationManager)
argos.aarbCalibrationManager.saveAoLoopModalHistory(mh10, '20190115_030600')
imacq = lgswIM.AcquireLgswInteractionMatrix(argos.aarbCalibrationManager, lgsw.calibrationManager, argos.adsec, argos.lgsw.controller, argos.lgsw.controller.getActualSubaperturesDefinitionTag(), argos.lgsw.frameBuffer.isWfsCameraUpsideDown(), '20181201_033900', '20190115_225600', argos._logger, argos)
im= imacq.acquire(gain=0)
im.displayShift(np.arange(6))
im.generateInteractionMatrix(shift=3)
im.displayIM()
rec= im.createReconstructorObject(np.arange(10))
argos.aarbCalibrationManager.saveAoLoopLgswReconstructorMatrix(rec, '20190115232400')

comboRec= CombinedReconstructorMatrix(argos.aarbCalibrationManager)
comboRec.fromLgsw(argos.aarbCalibrationManager, '20190115_232400', '20190115_234000')

Closing loop with TT up to 0.5 ok, Low gain crashes AdSec.

Trial2: 10 modes IM Setting of illumination improved by manual acquire and slight pupil adjustment as well as from the TT closed loop before.

Flat with 368 modes

Pupil pos [410,475] [305,325] [400,300]

imacq = lgswIM.AcquireLgswInteractionMatrix(argos.aarbCalibrationManager, lgsw.calibrationManager, argos.adsec, argos.lgsw.controller, argos.lgsw.controller.getActualSubaperturesDefinitionTag(), argos.lgsw.frameBuffer.isWfsCameraUpsideDown(), '20181201_033900', '20190115_225600', argos._logger, argos)
im= imacq.acquire(gain=0)
im.displayShift(np.arange(6))
im.generateInteractionMatrix(shift=2)
im.displayIM()
rec= im.createReconstructorObject(np.arange(10))
argos.aarbCalibrationManager.saveAoLoopLgswReconstructorMatrix(rec, '20190115_010600')

comboRec= CombinedReconstructorMatrix(argos.aarbCalibrationManager)
comboRec.fromLgsw(argos.aarbCalibrationManager, '20190115_010600', '20190115_011000')

Could close the loop with 0.9 TT and 0.3 Lo Gain working perfectly.

Trail3: 50 modes IM

Kept previous setup.
Flat with 351 modes.

Pupil pos [410,475] [305,325] [400,300]

mh50=AdsecModalHistory(np.arange(50), '20161205_214300', 'KL_v26', argos.aarbCalibrationManager)
argos.aarbCalibrationManager.saveAoLoopModalHistory(mh50, '20190115_012400')

imacq = lgswIM.AcquireLgswInteractionMatrix(argos.aarbCalibrationManager, lgsw.calibrationManager, argos.adsec, argos.lgsw.controller, argos.lgsw.controller.getActualSubaperturesDefinitionTag(), argos.lgsw.frameBuffer.isWfsCameraUpsideDown(), '20190115_010600', '20190115_012400', argos._logger, argos)
im= imacq.acquire(gain=0)
im.displayShift(np.arange(6))
im.generateInteractionMatrix(shift=2)
im.displayIM()
rec= im.createReconstructorObject(np.arange(50))
argos.aarbCalibrationManager.saveAoLoopLgswReconstructorMatrix(rec, '20190115_014300')

comboRec= CombinedReconstructorMatrix(argos.aarbCalibrationManager)
comboRec.fromLgsw(argos.aarbCalibrationManager, '20190115_014300', '20190115_014700')

Could close the loop with 0.9TT 0.5 Lo Gain 0.2 Hi Gain.

Trail3: 150 modes IM

Readjusted a bit the hexapod to get better illumination in red.

Flat with 342 modes.

Pupil pos [410,475] [305,325] [400,300]

mh150=AdsecModalHistory(np.arange(150), '20161205_214300', 'KL_v26', argos.aarbCalibrationManager)
argos.aarbCalibrationManager.saveAoLoopModalHistory(mh150, '20190115_021200')

imacq = lgswIM.AcquireLgswInteractionMatrix(argos.aarbCalibrationManager, lgsw.calibrationManager, argos.adsec, argos.lgsw.controller, argos.lgsw.controller.getActualSubaperturesDefinitionTag(), argos.lgsw.frameBuffer.isWfsCameraUpsideDown(), '20190115_014300', '20190115_021200', argos._logger, argos)
im= imacq.acquire(gain=0)
im.displayShift(np.arange(6))
im.displayIM()
rec= im.createReconstructorObject(np.arange(150))
argos.aarbCalibrationManager.saveAoLoopLgswReconstructorMatrix(rec, '20190115_021900')

comboRec= CombinedReconstructorMatrix(argos.aarbCalibrationManager)
comboRec.fromLgsw(argos.aarbCalibrationManager, '20190115_021900', '20190115_022000')

TN 20190116_022556TN 20190116_022631
TN 20190116_022729

Set back to 1kHz. 0.5TT, 0.4 LoGain, 0.2 HiGain

TN 20190116_025519
TN 20190116_025547

Create FLAO combined rec

comboRec.fromFlaoAndLgsw(argos.aarbCalibrationManager, '20190115_021900', '20180219_193910', 2, 150, '20190115_032300')

Wrong one.

Copied current recs from FLAO to ARGOS. From one of the deskop machines:

scp AOeng@dxadsec:/local/aomeas/adsec_calib/M2C/KL_v26/RECs/Rec_YYYYMMDD_HHMMSS.fits /home/argos/nfs/calib/SIDE/aarb/aoloop/flaorec/
  • Rec_20190104_203812.fits - bin2
  • Rec_20190105_214824.fits - bin1
  • Rec_20190111_193944.fits - bin4
import pyfits 
newF2Rec= pyfits.getdata('/home/argos/nfs/calib/DX/aarb/aoloop/flaorec/Rec_20190111_193944.fits') 
newTS2Rec= np.zeros((672,1600)) 
newTS2Rec[:,1200:]=newF2Rec[:,:400]
pyfits.writeto('/home/argos/nfs/calib/DX/aarb/aoloop/truth_sensing_rec/Rec_20190111_193944_argos.fits', newTS2Rec)

Changed the in argos@flao-dxwfs:/home/argos/confcalib/calib/wfs/W2/ao/ table_LUCIFER_ARGOS_TRUTH.txt and table_LUCIFER_ARGOS_TT.txt.
Old once have been renamed new ones linked and also labeled with KL_v26.

table_LUCIFER_ARGOS_TRUTH_KL_v26.txt

# Table has the following features:
# - flux is always decreasing
# - frequency is always decreasing within a binning
# - lines that change parameters other than frequency (binning, rec, etc.)  are duplicated with the same magnitude, and specify
#   two sets of parameters, one for the lower binning and one for the higher binning

# Columns:
# 0    1   2     3     4   5     6      7                 8                 9                10          11   12     13       14       15       16     17      18      19        20       21         22                  23
mag   flux bin freq  phot  modes base  rec               filtering         pupils            slopenull   tt   gain  fw1_acq  fw2_acq  fw1_obs  fw2_obs  TVbin  TVfreq  TVavg   TVflux     base and REC for CL centering  Freq

4.0 12100000  2  990 48000  153   KL_v26 20190104_203812   pureIntegrator   20100528-023248   zero        3    0.1    0         1        3       0      16     12.6    100       1500     KL_v26  20190104_203812        990
10.0   48400  2  990 192    153   KL_v26 20190104_203812   pureIntegrator   20100528-023248   zero        3    0.1    0         1        3       0      16     12.6    100       1500     KL_v26  20190104_203812        990
10.9   20542  2  990  82    153   KL_v26 20190104_203812   pureIntegrator   20100528-023248   zero        3    0.1    0         1        3       0      16     12.6    100       1800     KL_v26  20190104_203812        990
11.4   13336  2  990  54    153   KL_v26 20190104_203812   pureIntegrator   20100528-023248   zero        3    0.1    3         1        3       0      16     12.6    100        700     KL_v26  20190104_203812        990
11.9    8414  2  990  34    153   KL_v26 20190104_203812   pureIntegrator   20100528-023248   zero        3    0.1    3         1        3       0      16     12.6    100       7000     KL_v26  20190104_203812        990
12.4    5309  2  625  34    153   KL_v26 20190104_203812   pureIntegrator   20100528-023248   zero        3    0.1    3         1        3       0      16     12.6    100       7000     KL_v26  20190104_203812        625
13.40   2113  2  400  21    153   KL_v26 20190104_203812   pureIntegrator   20100528-023248   zero        3    0.1    3         1        3       0      16     12.6    100       2500     KL_v26  20190104_203812        400
13.40   2113  4  750  45    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        3    0.1    4         1        3       0      16     12.6    100       1700     KL_v26  20190111_193944        750
14.40    841  4  300  45    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        6    0.1    4         1        3       0      16     12.6    100       1700     KL_v26  20190111_193944        300
15.4     335  4  200  27    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        6    0.1    4         1        3       0      16     12.6    100        600     KL_v26  20190111_193944        200
16.4     133  4  105  21    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        6    0.1    4         1        3       0      16     12.6    100        250     KL_v26  20190111_193944        105
17.5      48  4  105   8    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        6    0.1    4         1        3       0      16     12.6    100         90     KL_v26  20190111_193944        105
20.0       5  4  105   1    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        6    0.1    4         1        3       0      16     12.6    300          9     KL_v26  20190111_193944        105
t

table_LUCIFER_ARGOS_TT_KL_v26.txt

# Table has the following features:
# - flux is always decreasing
# - frequency is always decreasing within a binning
# - lines that change parameters other than frequency (binning, rec, etc.)  are duplicated with the same magnitude, and specify
#   two sets of parameters, one for the lower binning and one for the higher binning

# Columns:
# 0    1   2     3     4   5     6      7                 8                 9                10          11   12     13       14       15       16     17      18      19        20       21         22                  23
mag   flux bin freq  phot  modes base  rec               filtering         pupils            slopenull   tt   gain  fw1_acq  fw2_acq  fw1_obs  fw2_obs  TVbin  TVfreq  TVavg   TVflux     base and REC for CL centering  Freq

4.0 12100000  2  990 48000  153   KL_v26 20190104_203812   pureIntegrator   20100528-023248   zero        3    0.1    0         1        0        1      16     12.6    100       1500     KL_v26  20190104_203812        990
9.0    48400  2  990 192    153   KL_v26 20190104_203812   pureIntegrator   20100528-023248   zero        3    0.1    0         1        0        1      16     12.6    100       1500     KL_v26  20190104_203812        990
9.0    48400  4  990 808    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        3    0.1    0         1        0        1      16     12.6    100       1500     KL_v26  20190111_193944        990
9.9    20542  4  990 352    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        3    0.1    0         1        0        1      16     12.6    100       1800     KL_v26  20190111_193944        990
10.4   13336  4  990 222    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        3    0.1    3         1        0        1      16     12.6    100        700     KL_v26  20190111_193944        990
10.9    8414  4  990 140    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        3    0.1    3         1        0        1      16     12.6    100       7000     KL_v26  20190111_193944        990
11.4    5309  4  990  88    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        3    0.1    3         1        0        1      16     12.6    100       7000     KL_v26  20190111_193944        990
12.4    2113  4  750  45    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        3    0.1    4         1        0        1      16     12.6    100       1700     KL_v26  20190111_193944        750
13.4     841  4  300  45    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        6    0.1    4         1        0        1      16     12.6    100       1700     KL_v26  20190111_193944        300
14.4     335  4  200  27    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        6    0.1    4         1        0        1      16     12.6    100        600     KL_v26  20190111_193944        200
15.4     133  4  105  21    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        6    0.1    4         1        0        1      16     12.6    100        250     KL_v26  20190111_193944        105
16.5      48  4  105   8    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        6    0.1    4         1        0        1      16     12.6    100         90     KL_v26  20190111_193944        105
20.0       5  4  105   1    36    KL_v26 20190111_193944   pureIntegrator   20100528-075347   zero        6    0.1    4         1        0        1      16     12.6    300          9     KL_v26  20190111_193944        105
At this time these files have been not committed as we had not access to svn!!

Next try:

Bin 4 combined reconstructor:
comboRec.fromFlaoAndLgsw(argos.aarbCalibrationManager, '20190115_021900', '20190111_193944', 2, 150, '20190116_060800')

Closing loop with new combined reconstructor 0.8 TT, 0.5 LoGain, 0.3 HiGain
Truth sensing is not working ([AOException] Cannot load matrix for modal basis KL_v26 (code -3028) Error in key management)

TN 20190116_062027
TN 20190116_062054

We hacked the FLAO configs. Bad thing. But without description and no trust in a make install to be able to get easily back to KL_v22 this was the choice!!

Following files have been changed:
  • aoroot/conf/wfs/current/procesConf/truesense.conf a line for KL_v26_bin4 was added
  • aoroot/calib/wfs/current/truesense/Rec_20190111_193944_argos.fits was copied there
  • aoroot/calib/wfs/current/ao/table_LUCIFER_ARGOS* have been modifed (symbolic links to keep old KL_v22 available)
Closing loop works with truth sensing, 0.8 TT, 0.4 LoGain, 0.3 HiGain, Flat with 359 modes

TN 20190116_094344
TN 20190116_094409

Load disturb 20181202_120026. Closing loop works with truth sensing, 0.8 TT, 0.4 LoGain, 0.3 HiGain

TN 20190116_095348
TN 20190116_095423

Image on LUCI:
luci2.20190116.0001.fits FWHM = 1.39,1.15 2.51s N3.75 OH1060
luci2.20190116.0002.fits FWHM = 1.35,1.16 2.51s N3.75 OH1060

Disturb was not enabled. Repeat.
luci2.20190116.0003.fits FWHM = 6.54,7.07 2.51s N3.75 OH1060
luci2.20190116.0004.fits FWHM = 2.73, 2.29 2.51s N3.75 OH1060, 0.8 TT, 0.4 LoGain, 0.3 HiGain

TN 20190116_101641
TN 20190116_101705

And now lets play the analyzer

tnnew=terminal.analyzer('20190116_101641')
tnnew.modalPlot()
ValueError                                Traceback (most recent call last)
<ipython-input-10-fd8f415173bc> in <module>()
----> 1 tnnew.modalPlot()

/home/argos/apps/lib/python/site-packages/argos/snapshot/analyzer/analyzer.pyc in modalPlot(self, overPlot, saveFig)
    258             self._logger.error('swing arm info not available')
    259         if self.calibrationUnit.isSwingArmDeployed() == True:
--> 260             clStd= self.aarb.aoloop.modalAdsecWavefront.timeStd()
    261             olStd= self.aarb.aoloop.modalDisturbedWavefront.timeStd()
    262         else:

/home/argos/apps/lib/python/site-packages/argos/snapshot/analyzer/time_series.pyc in timeStd(self, times, *args, **kwargs)
    142 
    143     def timeStd(self, times=None, *args, **kwargs):
--> 144         data= self.getData(*args, **kwargs)
    145         if times is None:
    146             timeStd= np.std(data, axis=0)

/home/argos/apps/lib/python/site-packages/argos/snapshot/analyzer/time_series.pyc in getData(self, *args, **kwargs)
     42             return self._getNotIndexedData()
     43         else:
---> 44             return self._getNotIndexedData()[:, index]
     45 
     46 

/home/argos/apps/lib/python/site-packages/argos/snapshot/analyzer/aarb/modal_adsec_wavefront.pyc in _getNotIndexedData(self, *args, **kwargs)
     41                                       self._headerParser, self._aarbcm)
     42                 c2m= self._aarbcm.aoLoopC2M(self._modalBaseTag)
---> 43                 adsecPositions= self._adsecPositions.getData()
     44                 if isinstance(adsecPositions, NotAvailable):
     45                     data= NotAvailable()

/home/argos/apps/lib/python/site-packages/argos/snapshot/analyzer/time_series.pyc in getData(self, *args, **kwargs)
     40         index= self.getIndexOf(*args, **kwargs)
     41         if index is None:
---> 42             return self._getNotIndexedData()
     43         else:
     44             return self._getNotIndexedData()[:, index]

/home/argos/apps/lib/python/site-packages/argos/snapshot/analyzer/aarb/adsec_positions.pyc in _getNotIndexedData(self, *args, **kwargs)
     38                     data= self.interpolateMissingData(data)
     39                 pyfits.writeto(adsecPositionsTempFilename,
---> 40                                data, self._headerParser._hdr)
     41         else:
     42             adsecPositionsFilename= self._fileNameWalker.adsecPositions()

/usr/lib64/python2.6/site-packages/pyfits/core.pyc in writeto(filename, data, header, **keys)
  11344 
  11345     classExtensions = keys.get('classExtensions', {})
> 11346     hdu = _makehdu(data, header, classExtensions)
  11347     if not isinstance(hdu, PrimaryHDU) and not isinstance(hdu, _TableBaseHDU):
  11348         if classExtensions.has_key(PrimaryHDU):

/usr/lib64/python2.6/site-packages/pyfits/core.pyc in _makehdu(data, header, classExtensions)
  11270             header._hdutype = classExtensions[header._hdutype]
  11271 
> 11272         hdu=header._hdutype(data=data, header=header)
  11273     return hdu
  11274 

/usr/lib64/python2.6/site-packages/pyfits/core.pyc in __init__(self, data, header, do_not_scale_image_data)
   4390 
   4391         _ImageBaseHDU.__init__(self, data=data, header=header,
-> 4392                                do_not_scale_image_data=do_not_scale_image_data)
   4393         self.name = 'PRIMARY'
   4394 

/usr/lib64/python2.6/site-packages/pyfits/core.pyc in __init__(self, data, header, do_not_scale_image_data)
   4006 
   4007         # update the header
-> 4008         self.update_header()
   4009         self._bitpix = self._header['BITPIX']
   4010 

/usr/lib64/python2.6/site-packages/pyfits/core.pyc in update_header(self)
   4035             axes = []
   4036         else:
-> 4037             raise ValueError, "incorrect array type"
   4038 
   4039         self._header['NAXIS'] = len(axes)

ValueError: incorrect array type

Does not work. Several other trials neither. End of the game for today.

-- WolfgangGaessler - 16 Jan 2019
Topic revision: r5 - 16 Jan 2019, WolfgangGaessler
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback