Quickstart guide
To import the library:
from agilepy.api import AGAnalysis
You can create the (required) yaml configuration file, calling the following static method:
AGAnalysis.getConfiguration(
"./agconfig.yaml", # the destination path of the configuration file
"username", # the name of the flare advocate
"OJ287", # the name of the source
58930, # tmin
58936, # tmax
"MJD", # time type
206.8121188769472, # glon
35.8208923457401, # glat
"$HOME/agilepy_analysis", # the destination path of the output directory
1, # the verbosity level
evtfile="/AGILE_PROC3/FM3.119_ASDC2/INDEX/EVT.index", # optional parameter
logfile="/AGILE_PROC3/DATA_ASDC2/INDEX/LOG.log.index" # optional parameter
)
In order to interact with the library you need to obtain an instance of the AGAnalysis class:
ag = AGAnalysis('agconfig.yaml')
Then you have to load the models of the sources (you can filter them by their distance (degree) from l,b provided within the configuration file):
sources = ag.loadSourcesFromCatalog('2AGL', rangeDist=(0, 10))
Keyword arguments can be passed via setOptions() to override configuration parameters:
ag.setOptions(binsize=0.50, outdir="./output")
To generate sky maps:
maplistfile = ag.generateMaps()
To display and interact with the sky maps:
ag.displayCtsSkyMaps(smooth=True, sigma=3)
ag.displayExpSkyMaps()
ag.displayGasSkyMaps()
To perform an maximum likelyhood estimation analysis:
sourcefiles = ag.mle()
You can query the sources with an arbitrary boolean expression string..
selectedSources = ag.selectSources("flux > 0 AND dist <= 1 OR sqrtTS > 3")
..and fix or free a source’s parameter:
sourcefiles = ag.freeSources('name == "CYGX3"', "flux", True)
You can generate a light curve data file with…
lightCurveData = ag.lightCurveMLE("CYGX3", tmin=58930 , tmax=58936, binsize=10800)
…and display the interactive light curve plot with:
ag.displayLightCurve("mle")
If you want to manually update the value of a source’s spectrum parameter, you can do it with:
sources = ag.selectSources('name == "2AGLJ2021+4029"')
source = sources.pop()
source.spectrum.set("index", 1.8)
Hint
Check out the API documentation and the Jupiter notebooks section!