from util.FileName import FileName from util.popup import plotArray import astrometry.CentroidCalc as cc from photonlist.photlist import writePhotonList from headers.ArconsHeaders import PulsarPhotonList if __name__=='__main__': run = 'PAL2014' date = '20140924' tstamp = '20140925-112538' obsFN = FileName(run=run,date=date,tstamp=tstamp) obsPath = obsFN.obs() flatPath = FileName(run=run,date=date).flatSoln() hotPath = obsFN.timeMask() centroidPath = obsFN.centroidList() fluxPath = FileName(run='PAL2012',date='20121211',tstamp='absolute_021727').fluxSoln() obs = ObsFile(obsPath) if not os.path.exists(hotPath): hp.findHotPixels(obsPath,hotPath) obs.loadHotPixCalFile(hotPath,switchOnMask=False) obs.loadBestWvlCalFile() obs.loadFlatCalFile(flatPath) obs.loadFluxCalFile(fluxPath) obs.loadCentroidListFile(centroidPath) obs.setWvlCutoffs(3000,11000) centroidRa = '03:37:43.826'
def main(): #open the sky file for hr9087 run = 'PAL2012' date = '20121210' wvlCal = '20121211-052230' obsTimestamp = '20121211-051650' flatCalDate = '20121211' flatCalTstamp = '20121212-074700' obsFN = FileName(run=run,date=date,tstamp=obsTimestamp) obsFileName = obsFN.obs() timeMaskFileName = obsFN.timeMask() wvlFileName = FileName(run=run,date=date,tstamp=wvlCal).calSoln() flatFileName = FileName(run=run,date=flatCalDate,tstamp=flatCalTstamp).flatSoln() if not os.path.exists(timeMaskFileName): print 'Running hotpix for ',obsFileName hp.findHotPixels(obsFileName,timeMaskFileName) print "Flux file pixel mask saved to %s"%(timeMaskFileName) obs = ObsFile(obsFileName) obs.loadTimeAdjustmentFile(FileName(run='PAL2012').timeAdjustments()) obs.loadWvlCalFile(wvlFileName) obs.loadFlatCalFile(flatFileName) obs.loadHotPixCalFile(timeMaskFileName) #obs.setWvlCutoffs(4000,8000) #get image before and after flat cal print 'getting images' beforeImgDict = obs.getPixelCountImage(weighted=False,fluxWeighted=False,scaleByEffInt=True) rawCubeDict = obs.getSpectralCube(weighted=False) rawCube = np.array(rawCubeDict['cube'],dtype=np.double) effIntTime = rawCubeDict['effIntTime'] maxIntTime = np.max(effIntTime) #add third dimension for broadcasting effIntTime3d = np.reshape(effIntTime,np.shape(effIntTime)+(1,)) rawCube *= maxIntTime / effIntTime3d rawCube[np.isnan(rawCube)] = 0 rawCube[rawCube == np.inf] = 0 beforeImg = np.sum(rawCube,axis=-1) print 'finished first cube' flatCubeDict = obs.getSpectralCube(weighted=True) flatCube = np.array(flatCubeDict['cube'],dtype=np.double) effIntTime = flatCubeDict['effIntTime'] maxIntTime = np.max(effIntTime) #add third dimension for broadcasting effIntTime3d = np.reshape(effIntTime,np.shape(effIntTime)+(1,)) flatCube *= maxIntTime / effIntTime3d flatCube[np.isnan(flatCube)] = 0 flatCube[flatCube == np.inf] = 0 afterImg = np.sum(flatCube,axis=-1) plotArray(title='before flatcal',image=beforeImg) plotArray(title='after flatcal',image=afterImg) print 'before sdev',np.std(beforeImg[afterImg!=0]) print 'after sdev',np.std(afterImg[afterImg!=0]) np.savez('flatCubeGem.npz',beforeImg=beforeImg,afterImg=afterImg,rawCube=rawCube,flatCube=flatCube)
# test the theory that that extra photons show up 23 clock ticks # after the beginning of each second. Plot properties of the photons offsets = [23, 100, 1234, 54321] #offsets = [23] beginTime = 0 expTime = 300 pickleFile = open("csb2.pkl","wb") fn = FileName(run, sundownDate, obsDate+"-"+seq) pickle.dump(fn,pickleFile) obsFile = ObsFile(fn.obs()) obsFile.loadTimeAdjustmentFile(FileName(run=run).timeAdjustments()) # Matt's time fix timeMaskFile = fn.timeMask() if os.path.exists(timeMaskFile): obsFile.loadHotPixCalFile(timeMaskfile, switchOnMask=True) if False: iRow0 = 25 iRow1 = iRow0+1 iCol0 = 40 iCol1 = iCol0+1 else: iRow0 = 0 iRow1 = obsFile.nRow iCol0 = 0 iCol1 = obsFile.nCol
#obsTimestamp ='20140925-124809' #early twilight #obsTimestamp ='20140925-124912' #early twilight #obsTimestamp ='20140925-125015' #late twilight #obsTimestamp ='20140925-125118' #late twilight #obsTimestamp ='20140925-125221' #late twilight #obsTimestamp ='20140925-125324' #late twilight #obsTimestamp ='20140925-125427' #late twilight #date = '20140925' #obsTimestamp ='20140926-104528' #psr J0337 obsFN = FileName(run=run,date=date,tstamp=obsTimestamp) obsFileName = obsFN.obs() print obsFileName timeMaskFileName = obsFN.timeMask() if wvlCal != '': wvlFileName = FileName(run=run,date=date,tstamp=wvlCal).calSoln() flatFileName = FileName(run=run,date=flatCalDate,tstamp=flatCalTstamp).flatSoln() illumFileName = FileName(run=run,date=flatCalDate,tstamp=flatCalTstamp).illumSoln() if not os.path.exists(timeMaskFileName): print 'Running hotpix for ',obsFileName hp.findHotPixels(inputFileName=obsFileName,outputFileName=timeMaskFileName) print "Flux file pixel mask saved to %s"%(timeMaskFileName) obs = ObsFile(obsFileName) exptime = obs.getFromHeader('exptime') #obs.loadTimeAdjustmentFile(FileName(run='PAL2012').timeAdjustments()) if wvlCal != '':