def timePL(tstamp,obsPath,centroidPath): obs = ObsFile(obsPath) obs.loadAllCals() obs.setWvlCutoffs(3000,11000) obs.loadCentroidListFile(centroidPath) writePhotonList(obs,photListDescription=PulsarPhotonList,checkForExisting=False) del obs
def centroidObs(obsPath,centroidPath,centroidRa,centroidDec,haOffset,xGuess,yGuess,savePath,tstamp): obs = ObsFile(obsPath) # if not os.path.exists(hotPath): # hp.findHotPixels(obsFile=obs,outputFileName=hotPath) obs.loadAllCals() # obs.loadHotPixCalFile(hotPath,switchOnMask=True) # obs.loadBestWvlCalFile() # obs.loadFlatCalFile(flatPath) obs.setWvlCutoffs(3000,11000) obs.loadCentroidListFile(centroidPath) ctrdFile = obs.centroidListFile sliceTimes = ctrdFile.root.centroidlist.times.read() xPositions = ctrdFile.root.centroidlist.xPositions.read() yPositions = ctrdFile.root.centroidlist.yPositions.read() intTime = sliceTimes[1]-sliceTimes[0] for iTime,time in enumerate(sliceTimes): x = xPositions[iTime] y = yPositions[iTime] title='centroid_{}_{}s'.format(tstamp,time) imgDict = obs.getPixelCountImage(firstSec=time,integrationTime=intTime,weighted=True) imgPath=os.path.join(savePath,title+'.png') pop = PopUp(showMe=False) pop.plotArray(imgDict['image'],title=title) pop.axes.plot(x,y,color='g',marker='d') pop.fig.savefig(imgPath) print 'saved to',imgPath del obs
def centroidObs(obsPath,centroidPath,centroidRa,centroidDec,haOffset,xGuess,yGuess): obs = ObsFile(obsPath) print obsPath,obs.getFromHeader('exptime'),obs obs.loadAllCals() # obs.loadBestWvlCalFile() # obs.loadFlatCalFile(flatPath) obs.setWvlCutoffs(3000,11000) # if not os.path.exists(hotPath): # hp.findHotPixels(obsFile=obs,outputFileName=hotPath,display=True,fwhm=2.,boxSize=5, nSigmaHot=4.0,) # obs.loadHotPixCalFile(hotPath,switchOnMask=True) cc.centroidCalc(obs,centroidRa,centroidDec,guessTime=300,integrationTime=30,secondMaxCountsForDisplay=2000,HA_offset=haOffset,xyapprox=[xGuess,yGuess],outputFileName=centroidPath,usePsfFit=True,radiusOfSearch=8) print 'done centroid',centroidPath del obs
print "Loaded obsFile", fileName # if we tried to simply load a filter now, it would fail as we haven't defined our spectrum's binning. # Uncomment the following to see the error you would get. ''' obs.loadFilter() ''' # Wavelength bins can be provided during the filter loading, but the easiest way is to # just load the flat calibration first, as that sets everything to the binning used for # flat cal. This file already has all its calibrations associated # with it in /Scratch/calLookup/lookup.h5. If a file doesn't have it's data written into # this table the following will not work and calibrations must be loaded manually. obs.loadAllCals() print "Finished loading calibrations" # Now when we load a filter it works fine. A call to loadFilter() with no arguments applies # a Johnson V filter by default. To see a list of available filters try calling the function # with an unsupported filter. # Uncomment to following to see the error you would get. ''' obs.loadFilter('this is not a supported filter') ''' # You must be careful when using flat/flux calibrations that you don't try to change the # spectral binning later. Flat and flux calibrations have a pre-defined binning that the # filter must match. That's why it's easiest to just load the calibrations and let the