Source Localization
The localize()
method can be
used to spatially localize a source. Localization is performed by
scanning the likelihood surface in source position in a local patch
around the nominal source position. The fit to the source position
proceeds in two iterations:
TS Map Scan: Obtain a first estimate of the source position by generating a likelihood map of the region using the
tsmap
method. In this step all background parameters are fixed to their nominal values. The size of the search region used for this step is set with thedtheta_max
parameter.Likelihood Scan: Refine the position of the source by performing a scan of the likelihood surface in a box centered on the best-fit position found in the first iteration. The size of the search region is set to encompass the 99% positional uncertainty contour. This method uses a full likelihood fit at each point in the likelihood scan and will re-fit all free parameters of the model.
If a peak is found in the search region and the positional fit succeeds, the method will update the position of the source in the model to the new best-fit position.
Examples
The localization method is executed by passing the name of a source as its argument. The method returns a python dictionary with the best-fit source position and localization errors and also saves the same information to FITS and numpy files.
>>> loc = gta.localize('3FGL J1722.7+6104', make_plots=True)
>>> print(loc['ra'],loc['dec'],loc['pos_r68'],loc['pos_r95'])
(260.53164555483784, 61.04493807148745, 0.14384100879403075, 0.23213050350030126)
When running with make_plots=True
the method will save a
diagnostic plot to the working directory with a visualization of the
localization contours. The green and white contours show the
uncertainty ellipse derived from the first and second iterations of
the positional scan.
First Iteration |
Second Iteration |
---|---|
The default configuration for the localization analysis can be overriden by supplying one or more kwargs:
# Localize the source and update its properties in the model
# with the localized position
>>> o = gta.localize('3FGL J1722.7+6104', update=True)
By default all background parameters will be fixed when the positional
fit is performed. One can choose to free background parameters with
the free_background
and free_radius
options:
# Free a nearby source that may be be partially degenerate with the
# source of interest
gta.free_norm('sourceB')
gta.localize('3FGL J1722.7+6104', free_background=True)
# Free normalizations of background sources within a certain
# distance of the source of interest
gta.localize('3FGL J1722.7+6104', free_radius=1.0)
The contents of the output dictionary are described in the following table:
Key, Type, Description |
||
---|---|---|
|
Name of source. |
|
|
Name of output FITS file. |
|
|
Copy of the input configuration to this method. |
|
|
Right ascension of best-fit position (deg). |
|
|
Declination of best-fit position (deg). |
|
|
Galactic Longitude of best-fit position (deg). |
|
|
Galactic Latitude of best-fit position (deg). |
|
|
Longitude pixel coordinate of best-fit position. |
|
|
Latitude pixel coordinate of best-fit position. |
|
|
Longitude offset from old position (deg). |
|
|
Latitude offset from old position (deg). |
|
|
||
|
Right ascension of pre-localization position (deg). |
|
|
Declination of pre-localization position (deg). |
|
|
Galactic Longitude of pre-localization position (deg). |
|
|
Galactic Latitude of pre-localization position (deg). |
|
|
Std. deviation of positional uncertainty in right ascension (deg). |
|
|
Std. deviation of positional uncertainty in declination (deg). |
|
|
Std. deviation of positional uncertainty in galactic longitude (deg). |
|
|
Std. deviation of positional uncertainty in galactic latitude (deg). |
|
|
Angular offset (deg) between the old and new (localized) source positions. |
|
|
1-sigma positional uncertainty (deg). |
|
|
68% positional uncertainty (deg). |
|
|
95% positional uncertainty (deg). |
|
|
99% positional uncertainty (deg). |
|
|
1-sigma uncertainty (deg) along major axis of uncertainty ellipse. |
|
|
1-sigma uncertainty (deg) along minor axis of uncertainty ellipse. |
|
|
Position angle of uncertainty ellipse with respect to major axis. |
|
|
Eccentricity of uncertainty ellipse defined as sqrt(1-b**2/a**2). |
|
|
Eccentricity of uncertainty ellipse defined as sqrt(a**2/b**2-1). |
|
|
Covariance matrix of positional uncertainties in local projection in galactic coordinates. |
|
|
Correlation matrix of positional uncertainties in local projection in galactic coordinates. |
|
|
Covariance matrix of positional uncertainties in local projection in celestial coordinates. |
|
|
Correlation matrix of positional uncertainties in local projection in celestial coordinates. |
|
|
||
|
||
|
Log-Likelihood of model before localization. |
|
|
Log-Likelihood of model after initial spectral fit. |
|
|
Log-Likelihood of model after localization. |
|
|
Difference in log-likelihood before and after localization. |
|
|
||
|
||
|
||
|
Configuration
Option, Default, Description |
||
---|---|---|
|
0.5 |
Half-width of the search region in degrees used for the first pass of the localization search. |
|
False |
Fix spectral shape parameters of the source of interest. If True then only the normalization parameter will be fit. |
|
False |
Leave background parameters free when performing the fit. If True then any parameters that are currently free in the model will be fit simultaneously with the source of interest. |
|
None |
Free normalizations of background sources within this angular distance in degrees from the source of interest. If None then no sources will be freed. |
|
False |
Generate diagnostic plots. |
|
5 |
Number of steps in longitude/latitude that will be taken when refining the source position. The bounds of the scan range are set to the 99% positional uncertainty as determined from the TS map peak fit. The total number of sampling points will be nstep**2. |
|
tsmap |
Set the method for generating the TS map. Valid options are tsmap or tscube. |
|
True |
Update the source model with the best-fit position. |
|
True |
Write the output to a FITS file. |
|
True |
Write the output dictionary to a numpy file. |
Reference/API
- GTAnalysis.localize(name, **kwargs)
Find the best-fit position of a source. Localization is performed in two steps. First a TS map is computed centered on the source with half-width set by
dtheta_max
. A fit is then performed to the maximum TS peak in this map. The source position is then further refined by scanning the likelihood in the vicinity of the peak found in the first step. The size of the scan region is set to encompass the 99% positional uncertainty contour as determined from the peak fit.