Examples¶
Below are some examples of tasks you may wish to perform. If you would like to see more examples, please submit an issue on github or e-mail me at michael-dot-lam-at-nanograv-dot-org.
Calculating scintillation parameters¶
Below is the very simplest way to get scintillation parameters.
ar = Archive(FILENAME) #loads archive, dedispersed and polarization averaged by default
ds = ar.getDynamicSpectrum() #without a template shape, this will average the data across the phase axis. One can set maketemplate=True to take the average pulse shape and make an underlying template
print(ds.scintillation_parameters()) #will return the scintillation timescale, scintillation bandwidth, and drift rate (rotation) using a 2D Gaussian fit
Make a Joy Division plot¶
ar = Archive(FILENAME) #loads archive, dedispersed and polarization averaged by default
ar.fscrunch() #frequency-average the data, if applicable.
ar.joyDivision() #makes the Joy-Division-style plot for pulses in time and phase
Make a template shape¶
If you are starting from a PSRFITS file, the easiest thing to do is probably the following:
ar = Archive(FILENAME) #loads archive, dedispersed and polarization averaged by default
ar.tscrunch() #time-average the data, if applicable.
template = ar.calculateTemplate() #By default, will use von Mises functions
If you already have the data array extracted, then you can go straight to the underlying functionality:
sp = SinglePulse(data,windowsize=len(data)//8) #windowsize will auto-calculate an off-pulse region
template = sp.smooth() # By default, will use von Mises functions
Comment out TOAs in a .tim file with a given condition¶
Let’s say we wish to comment out TOAs with a flag representing a specific backend: “-be legacy”
t = Tim(FILENAME) #load tim file
def boolean_func(toa): #define a boolean function that takes in a TOA instance.
be = toa.get("be")
if be == "legacy":
return True
return False
t.comment(boolean_func,cut="cut_legacy") #add a flag that says why the data were cut
t.save(filename="new.tim") #saves a new tim file rather than rewrite the old one