Phased Analysis

Fermipy provides several options to support analysis with selections on pulsar phase.

This example script will use the pre-made event files included in the repository. These event files have the PULSE_PHASE column added, which lists the pulsar phase for each recorded event. We can then use this information to perform analyses on the pulsar both during and between the pulses.

Also included is a tutorial on how to add the PULSE_PHASE column to an event file. Note that performing the analysis from the raw data can take multiple hours to process.

To perform a phased analysis, the configuration file must have some additional parameters.

The gtlike.expscale parameter defines the correction that should be applied to the nominal exposure to account for the phase selection defined by selection.phasemin and selection.phasemax. Normally this should be set to the size of the phase selection interval, i.e. \(\rm{expscale}=\rm{phasemax}-\rm{phasemin}\).

To perform a joint analysis of multiple phase selections we need to use the components section to define separate ON- and OFF-phase components. We use the gtlike.src_expscale parameter to zero out the 3FGL source component in the OFF phase. For the ON-phase of ``3FGL J0633.9+1746’’ we set \(\rm{src\_expscale}=1\), and for the OFF-phase we set \(\rm{src\_expscale}=0\).

The components selection of the config file is then constructed as:

components: - selection : {phasemin : 0.05, phasemax: 0.20} gtlike : {expscale : 0.15, src_expscale : {'3FGL J0633.9+1746':1.0}} - selection : {phasemin : 0.20 , phasemax: 0.55} gtlike : {expscale : 0.35, src_expscale : {'3FGL J0633.9+1746':0.0}}

Where the process of determining the values used for the phases will be shown later. In general the src_expscale parameter can be used to define an exposure correction for indvidual sources.

Data Preparation

This section will go over adding the pulsar ephemeris to the event files. This will require downloading the raw data from the Fermi SSC website.

This section can be skipped by using the pre-processed data included in the repository.

To analyse from scratch, download the data from the FSSC website using the following selections:

  • Object name or coordinates: 98.4792,17.7729

  • Coordinate system: J2000

  • Search radius (deg): 12

  • Observation dates: 239804670,743358091

  • Time system: MET

  • Energy Range (MeV): 1000, 316228

  • LAT data type: photon

  • Spacecraft data: yes

The following cell can be used to set up the directory structure and download the data from the FSSC servers. Note that you will likely need to change the file names for the `wget’ lines.

[1]:
# # Set up a subdirectory for the data
# !mkdir -p Geminga_data/

# # Set up a subdirectory for the raw data
# !mkdir -p Geminga_rawdata/PH
# !mkdir -p Geminga_rawdata/SC

# # Download the data and place into the subdirectory
# !wget -P ./Geminga_rawdata/PH/ https://fermi.gsfc.nasa.gov/FTP/fermi/data/lat/queries/L240723161301912CDF4657_PH00.fits
# !wget -P ./Geminga_rawdata/PH/ https://fermi.gsfc.nasa.gov/FTP/fermi/data/lat/queries/L240723161301912CDF4657_PH01.fits
# !wget -P ./Geminga_rawdata/PH/ https://fermi.gsfc.nasa.gov/FTP/fermi/data/lat/queries/L240723161301912CDF4657_PH02.fits
# !wget -P ./Geminga_rawdata/PH/ https://fermi.gsfc.nasa.gov/FTP/fermi/data/lat/queries/L240723161301912CDF4657_PH03.fits
# !wget -P ./Geminga_rawdata/PH/ https://fermi.gsfc.nasa.gov/FTP/fermi/data/lat/queries/L240723161301912CDF4657_PH04.fits

# !wget -P ./Geminga_rawdata/SC/ https://fermi.gsfc.nasa.gov/FTP/fermi/data/lat/queries/L240723161301912CDF4657_SC00.fits

# # As the preprocessing steps append data to the SC file, create a copy
# !cp ./Geminga_rawdata/SC/L240723161301912CDF4657_SC00.fits ./Geminga_rawdata/SC/SC_copy.fits

# # Make a file list of the photon files
# !ls ./Geminga_rawdata/PH/*PH*.fits > ./Geminga_rawdata/PH.txt

Download the ephemeris data from the FSSC website. A list of all ephermiris data can be found here, though more up-to-date ephemerides will likely be required for use in current analyses.

[2]:
# # Download the ephemeris data for the Geminga pulsar
# !wget -P ./Geminga_data/ https://fermi.gsfc.nasa.gov/ssc/data/access/lat/ephems/0633+1746/0633+1746_ApJ_720_272_2010_D4.fits
# !wget -P ./Geminga_data/ https://fermi.gsfc.nasa.gov/ssc/data/access/lat/ephems/0633+1746/0633+1746_ApJ_720_272_2010.par

The following is a brief tutorial of using ephemeris data to add the PULSE_PHASE column to the event file. We will use the bash fermitools to both prepare the evfile and to add the column.

For this tutorial we will use a simplified form of ephemeris file (named a D4 file). These files cover shorter time frames. The benefit is that we can use the built-in functions within the bash fermitools to perform the calculations.

For more complicated ephemerides that cover larger time frames, such as those stored in .par files, you will need to install TEMPO2 to perform the required calculations to add the PULSE_PHASE column.

The bash commands we use to prepare the data are: gtselect, gtmktime, gtbin, gtpphase (click for documentation).

[3]:
# %%bash
# gtselect evclass=128 evtype=3
#     @./Geminga_rawdata/PH.txt
#     ./Geminga_data/Geminga.fits
#     INDEF
#     INDEF
#     INDEF
#     INDEF
#     INDEF
#     100
#     316227.76
#     105
[4]:
# %%bash
# gtmktime
#     ./Geminga_rawdata/SC/SC_copy.fits
#     (DATA_QUAL>0)&&(LAT_CONFIG==1)
#     no
#     ./Geminga_data/Geminga.fits
#     ./Geminga_data/Geminga_gtis.fits
[5]:
# %%bash
# gtbin
#     CMAP
#     ./Geminga_data/Geminga_gtis.fits
#     ./Geminga_data/Geminga_cmap.fits
#     ./Geminga_rawdata/SC/SC_copy.fits
#     300
#     300
#     0.1
#     CEL
#     98.4756
#     17.7703
#     0
#     CAR
[6]:
# %%bash
# gtpphase
#     ./Geminga_data/Geminga_gtis.fits
#     ./Geminga_rawdata/SC/SC_copy.fits
#     ./Geminga_data/0633+1746_ApJ_720_272_2010_D4.fits
#     J0633+1746
#     DB

Combined ON- and OFF-phase analysis

Import libraries

[7]:
from fermipy import utils
from fermipy.gtanalysis import GTAnalysis
import argparse
from fermipy.castro import CastroData
from fermipy.plotting import ROIPlotter, SEDPlotter
import astropy.io.fits as pyfits
from math import *
import matplotlib.pyplot as plt
utils.init_matplotlib_backend()
import numpy as np
from scipy.integrate import quad
from IPython.display import Image
import os

If the data is not available, download it from the repository.

If you want to perform the analysis on data that hasn’t been pre-processed, only unpack the config file from the tarball.

[8]:
if not os.path.isfile('./Geminga_data/config_phase.yaml'):

    if not os.path.isfile('./../data/Geminga_data.tar.gz'):

        !curl -OL --output-dir ./../data/ https://raw.githubusercontent.com/fermiPy/fermipy-extras/master/data/Geminga_data.tar.gz

    !tar xzf ./../data/Geminga_data.tar.gz

Plot a phase diagram for the pulsar.

[9]:
table = pyfits.open('./Geminga_data/Geminga_gtis.fits')

tabledata = table[1].data
phasevec = tabledata.field('PULSE_PHASE')

phase_bins = np.arange(0.,1.01,0.01)
phase_val = np.arange(0.+0.005,1.0,0.01)
histo_phase = np.histogram(phasevec,phase_bins)

plt.clf()
fig = plt.figure(figsize=(8,6))
plt.errorbar(phase_val, histo_phase[0], yerr=np.sqrt(histo_phase[0]), fmt="o", color="black",label="Geminga")
plt.ylabel(r'$N counts$')
plt.xlabel(r'$x$')
plt.axis([0.,1.0,0.0,1.5e4])
plt.grid(True)
plt.yscale('linear')
plt.xscale('linear')
plt.xticks([0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1],
           [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1])
plt.legend(loc=3,prop={'size':15},numpoints=1, scatterpoints=1, ncol=1)
fig.tight_layout(pad=0.5)
plt.savefig("./Geminga_data/phase_Geminga.png")
plt.show()

From the phase plot we can see P1 in the range \(0.05<x<0.20\), off-peak in the range \(0.20>x>0.55\), P2 in the range \(0.55<x<0.70\), and bridge emission for \(0.70<x<1.00\).

In this tutorial we will compare the ON- and OFF-phase emission, i.e. we will analyse P1 and the off-peak emission. Hence, we choose phasemax=0.20, phasemin=0.05 for the ON-phase analysis, and phasemax=0.55, phasemin=0.20 for the OFF-phase analysis. These values are included in the configuration file that we will use.

Begin the analysis. If using the pre-processed data this step should take on the order of minutes. If the pre-processed data is not available, this step will take on the order of hours. If re-running this block after generating the srcmap .fits files, it should take approximately a minute.

[10]:
gta = GTAnalysis('./Geminga_data/config_phase.yaml')
gta.setup()
2024-12-19 21:01:17 INFO    GTAnalysis.__init__():
--------------------------------------------------------------------------------
fermipy version 1.3.1+6.g74aa
ScienceTools version 2.2.0
{'Prefactor': 0, 'Index1': 1, 'Scale': 2, 'Cutoff': 3, 'Index2': 4}
2024-12-19 21:01:17 INFO    GTAnalysis.setup(): Running setup.
2024-12-19 21:01:17 INFO    GTBinnedAnalysis.setup(): Running setup for component 00
2024-12-19 21:01:17 INFO    GTBinnedAnalysis._select_data(): Skipping data selection.
2024-12-19 21:01:17 INFO    GTBinnedAnalysis._create_ltcube(): Skipping LT Cube.
{'Prefactor': 0, 'Index1': 1, 'Scale': 2, 'Cutoff': 3, 'Index2': 4}
2024-12-19 21:01:18 INFO    GTBinnedAnalysis.run_gtapp(): Running gtexpcube2.
2024-12-19 21:01:18 INFO    GTBinnedAnalysis.run_gtapp(): time -p gtexpcube2 infile=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/ltcube_00.fits cmap=none outfile=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/bexpmap_00.fits irfs="P8R2_SOURCE_V6" evtype=3 edisp_bins=-1 nxpix=360 nypix=180 binsz=1.0 coordsys="GAL" xref=0.0 yref=0.0 axisrot=0.0 proj="CAR" ebinalg="LOG" emin=1000.0 emax=316227.76 enumbins=20 ebinfile="NONE" hpx_ordering_scheme="RING" hpx_order=6 bincalc="EDGE" ignorephi=no thmax=180.0 thmin=0.0 table="EXPOSURE" chatter=3 clobber=yes debug=no mode="ql"
2024-12-19 21:01:18 INFO    GTBinnedAnalysis.run_gtapp(): This is gtexpcube2 version HEAD
2024-12-19 21:01:18 INFO    GTBinnedAnalysis.run_gtapp(): Using evtype=3 (i.e., FRONT/BACK irfs)
2024-12-19 21:01:18 INFO    GTBinnedAnalysis.run_gtapp(): ResponseFunctions::load: IRF used: P8R2_SOURCE_V6
2024-12-19 21:01:18 INFO    GTBinnedAnalysis.run_gtapp(): event_types:  0  1
2024-12-19 21:01:22 INFO    GTBinnedAnalysis.run_gtapp(): Computing binned exposure map....................!
2024-12-19 21:01:22 INFO    GTBinnedAnalysis.run_gtapp(): Finished gtexpcube2. Execution time: 3.99 s
2024-12-19 21:01:22 INFO    GTBinnedAnalysis.run_gtapp(): Running gtexpcube2.
2024-12-19 21:01:22 INFO    GTBinnedAnalysis.run_gtapp(): time -p gtexpcube2 infile=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/ltcube_00.fits cmap=none outfile=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/bexpmap_roi_00.fits irfs="P8R2_SOURCE_V6" evtype=3 edisp_bins=0 nxpix=150 nypix=150 binsz=0.08 coordsys="GAL" xref=195.13259294771035 yref=4.269835915614621 axisrot=0.0 proj="CAR" ebinalg="LOG" emin=1000.0 emax=316227.76 enumbins=20 ebinfile="NONE" hpx_ordering_scheme="RING" hpx_order=6 bincalc="EDGE" ignorephi=no thmax=180.0 thmin=0.0 table="EXPOSURE" chatter=3 clobber=yes debug=no mode="ql"
2024-12-19 21:01:22 INFO    GTBinnedAnalysis.run_gtapp(): This is gtexpcube2 version HEAD
2024-12-19 21:01:22 INFO    GTBinnedAnalysis.run_gtapp(): Using evtype=3 (i.e., FRONT/BACK irfs)
2024-12-19 21:01:22 INFO    GTBinnedAnalysis.run_gtapp(): ResponseFunctions::load: IRF used: P8R2_SOURCE_V6
2024-12-19 21:01:22 INFO    GTBinnedAnalysis.run_gtapp(): event_types:  0  1
2024-12-19 21:01:23 INFO    GTBinnedAnalysis.run_gtapp(): Computing binned exposure map....................!
2024-12-19 21:01:23 INFO    GTBinnedAnalysis.run_gtapp(): Finished gtexpcube2. Execution time: 1.64 s
WARNING: FITSFixedWarning: 'datfix' made the change 'Set DATEREF to '2001-01-01T00:01:04.184' from MJDREF.
Set MJD-OBS to 54682.655283 from DATE-OBS.
Set MJD-END to 55195.999977 from DATE-END'. [astropy.wcs.wcs]
2024-12-19 21:01:24 INFO    GTBinnedAnalysis.run_gtapp(): Running gtsrcmaps.
2024-12-19 21:01:24 INFO    GTBinnedAnalysis.run_gtapp(): time -p gtsrcmaps scfile=./Geminga_rawdata/SC/SC_copy.fits sctable="SC_DATA" expcube=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/ltcube_00.fits cmap=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/ccube_00.fits srcmdl=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/srcmdl_00.xml bexpmap=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/bexpmap_00.fits wmap=none outfile=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/srcmap_00.fits irfs="P8R2_SOURCE_V6" evtype=3 convol=yes resample=yes rfactor=2 minbinsz=0.05 ptsrc=yes psfcorr=yes emapbnds=no edisp_bins=-1 copyall=no chatter=3 clobber=yes debug=no gui=no mode="ql"
2024-12-19 21:01:24 INFO    GTBinnedAnalysis.run_gtapp(): This is gtsrcmaps version HEAD
2024-12-19 21:01:24 INFO    GTBinnedAnalysis.run_gtapp(): Using evtype=3 (i.e., FRONT/BACK irfs)
2024-12-19 21:01:24 INFO    GTBinnedAnalysis.run_gtapp(): ResponseFunctions::load: IRF used: P8R2_SOURCE_V6
2024-12-19 21:01:24 INFO    GTBinnedAnalysis.run_gtapp(): event_types:  0  1
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0633.9+1746
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0626.8+1743
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0631.2+2019
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0647.8+1751
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0648.1+1606
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0648.8+1516
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0650.5+2055
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0610.6+1728
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0611.5+1957
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0619.4+2242
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0700.0+1709
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0609.2+2051c
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0659.5+1414
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0605.9+2039c
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named isodiff
2024-12-19 21:01:27 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named galdiff
2024-12-19 21:01:28 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0605.9+2039c 21....................!
2024-12-19 21:01:28 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0609.2+2051c 21....................!
2024-12-19 21:01:29 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0610.6+1728 21....................!
2024-12-19 21:01:30 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0611.5+1957 21....................!
2024-12-19 21:01:30 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0619.4+2242 21....................!
2024-12-19 21:01:31 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0626.8+1743 21....................!
2024-12-19 21:01:31 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0631.2+2019 21....................!
2024-12-19 21:01:32 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0633.9+1746 21....................!
2024-12-19 21:01:33 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0647.8+1751 21....................!
2024-12-19 21:01:33 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0648.1+1606 21....................!
2024-12-19 21:01:34 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0648.8+1516 21....................!
2024-12-19 21:01:34 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0650.5+2055 21....................!
2024-12-19 21:01:35 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0659.5+1414 21....................!
2024-12-19 21:01:35 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0700.0+1709 21....................!
2024-12-19 21:02:05 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for galdiff 21....................!
2024-12-19 21:02:28 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for isodiff 21....................!
2024-12-19 21:02:29 INFO    GTBinnedAnalysis.run_gtapp(): Finished gtsrcmaps. Execution time: 65.23 s
2024-12-19 21:02:29 INFO    GTBinnedAnalysis.setup(): Finished setup for component 00
2024-12-19 21:02:29 INFO    GTBinnedAnalysis.setup(): Running setup for component 01
2024-12-19 21:02:29 INFO    GTBinnedAnalysis._select_data(): Skipping data selection.
2024-12-19 21:02:29 INFO    GTBinnedAnalysis._create_ltcube(): Skipping LT Cube.
2024-12-19 21:02:29 INFO    GTBinnedAnalysis.run_gtapp(): Running gtexpcube2.
2024-12-19 21:02:29 INFO    GTBinnedAnalysis.run_gtapp(): time -p gtexpcube2 infile=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/ltcube_01.fits cmap=none outfile=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/bexpmap_01.fits irfs="P8R2_SOURCE_V6" evtype=3 edisp_bins=-1 nxpix=360 nypix=180 binsz=1.0 coordsys="GAL" xref=0.0 yref=0.0 axisrot=0.0 proj="CAR" ebinalg="LOG" emin=1000.0 emax=316227.76 enumbins=20 ebinfile="NONE" hpx_ordering_scheme="RING" hpx_order=6 bincalc="EDGE" ignorephi=no thmax=180.0 thmin=0.0 table="EXPOSURE" chatter=3 clobber=yes debug=no mode="ql"
2024-12-19 21:02:29 INFO    GTBinnedAnalysis.run_gtapp(): This is gtexpcube2 version HEAD
2024-12-19 21:02:29 INFO    GTBinnedAnalysis.run_gtapp(): Using evtype=3 (i.e., FRONT/BACK irfs)
2024-12-19 21:02:29 INFO    GTBinnedAnalysis.run_gtapp(): ResponseFunctions::load: IRF used: P8R2_SOURCE_V6
2024-12-19 21:02:29 INFO    GTBinnedAnalysis.run_gtapp(): event_types:  0  1
2024-12-19 21:02:33 INFO    GTBinnedAnalysis.run_gtapp(): Computing binned exposure map....................!
2024-12-19 21:02:33 INFO    GTBinnedAnalysis.run_gtapp(): Finished gtexpcube2. Execution time: 4.06 s
2024-12-19 21:02:33 INFO    GTBinnedAnalysis.run_gtapp(): Running gtexpcube2.
2024-12-19 21:02:33 INFO    GTBinnedAnalysis.run_gtapp(): time -p gtexpcube2 infile=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/ltcube_01.fits cmap=none outfile=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/bexpmap_roi_01.fits irfs="P8R2_SOURCE_V6" evtype=3 edisp_bins=0 nxpix=150 nypix=150 binsz=0.08 coordsys="GAL" xref=195.13259294771035 yref=4.269835915614621 axisrot=0.0 proj="CAR" ebinalg="LOG" emin=1000.0 emax=316227.76 enumbins=20 ebinfile="NONE" hpx_ordering_scheme="RING" hpx_order=6 bincalc="EDGE" ignorephi=no thmax=180.0 thmin=0.0 table="EXPOSURE" chatter=3 clobber=yes debug=no mode="ql"
2024-12-19 21:02:33 INFO    GTBinnedAnalysis.run_gtapp(): This is gtexpcube2 version HEAD
2024-12-19 21:02:33 INFO    GTBinnedAnalysis.run_gtapp(): Using evtype=3 (i.e., FRONT/BACK irfs)
2024-12-19 21:02:33 INFO    GTBinnedAnalysis.run_gtapp(): ResponseFunctions::load: IRF used: P8R2_SOURCE_V6
2024-12-19 21:02:33 INFO    GTBinnedAnalysis.run_gtapp(): event_types:  0  1
2024-12-19 21:02:35 INFO    GTBinnedAnalysis.run_gtapp(): Computing binned exposure map....................!
2024-12-19 21:02:35 INFO    GTBinnedAnalysis.run_gtapp(): Finished gtexpcube2. Execution time: 1.49 s
WARNING: FITSFixedWarning: 'datfix' made the change 'Set DATEREF to '2001-01-01T00:01:04.184' from MJDREF.
Set MJD-OBS to 54682.655283 from DATE-OBS.
Set MJD-END to 55195.999977 from DATE-END'. [astropy.wcs.wcs]
2024-12-19 21:02:35 INFO    GTBinnedAnalysis.run_gtapp(): Running gtsrcmaps.
2024-12-19 21:02:35 INFO    GTBinnedAnalysis.run_gtapp(): time -p gtsrcmaps scfile=./Geminga_rawdata/SC/SC_copy.fits sctable="SC_DATA" expcube=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/ltcube_01.fits cmap=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/ccube_01.fits srcmdl=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/srcmdl_01.xml bexpmap=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/bexpmap_01.fits wmap=none outfile=/home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/srcmap_01.fits irfs="P8R2_SOURCE_V6" evtype=3 convol=yes resample=yes rfactor=2 minbinsz=0.05 ptsrc=yes psfcorr=yes emapbnds=no edisp_bins=-1 copyall=no chatter=3 clobber=yes debug=no gui=no mode="ql"
2024-12-19 21:02:35 INFO    GTBinnedAnalysis.run_gtapp(): This is gtsrcmaps version HEAD
2024-12-19 21:02:35 INFO    GTBinnedAnalysis.run_gtapp(): Using evtype=3 (i.e., FRONT/BACK irfs)
2024-12-19 21:02:35 INFO    GTBinnedAnalysis.run_gtapp(): ResponseFunctions::load: IRF used: P8R2_SOURCE_V6
2024-12-19 21:02:35 INFO    GTBinnedAnalysis.run_gtapp(): event_types:  0  1
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0633.9+1746
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0626.8+1743
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0631.2+2019
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0647.8+1751
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0648.1+1606
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0648.8+1516
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0650.5+2055
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0610.6+1728
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0611.5+1957
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0619.4+2242
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0700.0+1709
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0609.2+2051c
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0659.5+1414
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named 3FGL J0605.9+2039c
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named isodiff
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Creating source named galdiff
2024-12-19 21:02:39 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0605.9+2039c 21....................!
2024-12-19 21:02:40 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0609.2+2051c 21....................!
2024-12-19 21:02:40 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0610.6+1728 21....................!
2024-12-19 21:02:41 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0611.5+1957 21....................!
2024-12-19 21:02:41 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0619.4+2242 21....................!
2024-12-19 21:02:42 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0626.8+1743 21....................!
2024-12-19 21:02:43 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0631.2+2019 21....................!
2024-12-19 21:02:43 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0633.9+1746 21....................!
2024-12-19 21:02:44 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0647.8+1751 21....................!
2024-12-19 21:02:44 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0648.1+1606 21....................!
2024-12-19 21:02:45 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0648.8+1516 21....................!
2024-12-19 21:02:46 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0650.5+2055 21....................!
2024-12-19 21:02:46 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0659.5+1414 21....................!
2024-12-19 21:02:47 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for 3FGL J0700.0+1709 21....................!
2024-12-19 21:03:16 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for galdiff 21....................!
2024-12-19 21:03:40 INFO    GTBinnedAnalysis.run_gtapp(): Generating SourceMap for isodiff 21....................!
2024-12-19 21:03:40 INFO    GTBinnedAnalysis.run_gtapp(): Finished gtsrcmaps. Execution time: 65.33 s
2024-12-19 21:03:40 INFO    GTBinnedAnalysis.setup(): Finished setup for component 01
2024-12-19 21:03:40 INFO    GTBinnedAnalysis._create_binned_analysis(): Creating BinnedAnalysis for component 00.
2024-12-19 21:03:44 INFO    GTBinnedAnalysis._create_binned_analysis(): Creating BinnedAnalysis for component 01.
2024-12-19 21:03:48 WARNING GTBinnedAnalysis._scale_srcmap(): The expscale parameter was zero, setting it to 1e-8
2024-12-19 21:03:49 INFO    GTAnalysis.setup(): Initializing source properties
2024-12-19 21:03:52 INFO    GTAnalysis.setup(): Finished setup.
[11]:
gta.print_model()
2024-12-19 21:03:52 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.000   2.976   0.00151   3.12       nan     42003.8
3FGL J0626.8+1743      1.684   2.300  1.69e-06   2.70       nan        21.4
3FGL J0631.2+2019      2.634   0.529  1.95e-06   2.46       nan        20.1
3FGL J0647.8+1751      3.317   2.178  9.76e-07   2.70       nan        12.4
3FGL J0648.1+1606      3.793   0.431  2.26e-06   1.77       nan         7.6
3FGL J0648.8+1516      4.358   1.092   1.2e-05   1.83       nan        45.1
3FGL J0650.5+2055      5.040   0.802  6.84e-06   1.56       nan        13.7
3FGL J0610.6+1728      5.546   0.522  2.26e-06   4.85       nan        42.9
3FGL J0611.5+1957      5.714   0.967  3.93e-06   2.38       nan        36.5
3FGL J0619.4+2242      5.980   0.381  7.81e-06   2.01       nan        27.4
3FGL J0700.0+1709      6.273   0.544  1.29e-06   2.69       nan        14.9
3FGL J0609.2+2051c     6.582   1.310  3.62e-06   2.27       nan        27.4
3FGL J0659.5+1414      7.107   2.874  7.42e-07  15.34       nan        11.0
3FGL J0605.9+2039c     7.210   1.036  4.63e-06   2.36       nan        36.1
isodiff                  ---   1.000    0.0302   2.12       nan       682.3
galdiff                  ---   1.000     0.131   0.00       nan      9763.6

Now we perform a first fit to the ROI.

[12]:
gta.free_sources()
gta.optimize()
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0633.9+1746     : ['Prefactor', 'Index1', 'Cutoff']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0626.8+1743     : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0631.2+2019     : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0647.8+1751     : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0648.1+1606     : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0648.8+1516     : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0650.5+2055     : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0610.6+1728     : ['norm', 'alpha', 'beta']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0611.5+1957     : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0619.4+2242     : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0700.0+1709     : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0609.2+2051c    : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0659.5+1414     : ['Prefactor', 'Index1', 'Cutoff']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0605.9+2039c    : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for isodiff               : ['Normalization']
2024-12-19 21:03:52 INFO    GTAnalysis.free_source(): Freeing parameters for galdiff               : ['Prefactor', 'Index']
2024-12-19 21:03:52 INFO    GTAnalysis.optimize(): Starting
Joint fit  ['3FGL J0633.9+1746', 'galdiff']
Fitting shape 3FGL J0633.9+1746 TS: 179148.448
Drm_Cache::update Measured counts < 0 3FGL J0633.9+1746 19 -1.08122e-12 2.76718e-12
0.024396 0.0141712 0.00789076 0.00421511 0.00216053 0.00106886 0.000514622 0.000240783 0.000106373 4.40127e-05 1.69327e-05 6.0463e-06 1.95686e-06 5.5132e-07 1.31927e-07 2.62205e-08 4.17742e-09 5.10758e-10 4.5519e-11 2.76718e-12
Fitting shape galdiff TS:  49872.792
Fitting shape 3FGL J0619.4+2242 TS:    520.300
Fitting shape 3FGL J0648.8+1516 TS:    126.285
Fitting shape 3FGL J0650.5+2055 TS:     31.704
Fitting shape isodiff TS:     30.288
2024-12-19 21:03:54 INFO    GTAnalysis.optimize(): Finished
2024-12-19 21:03:54 INFO    GTAnalysis.optimize(): LogLike: -26231.637120 Delta-LogLike: 7660.387064
2024-12-19 21:03:54 INFO    GTAnalysis.optimize(): Execution time: 1.85 s
[12]:
{'loglike0': -33892.024184608636,
 'loglike1': -26231.63712026418,
 'dloglike': 7660.387064344457,
 'config': {'npred_threshold': 1.0,
  'npred_frac': 0.95,
  'shape_ts_threshold': 25.0,
  'max_free_sources': 5,
  'skip': [],
  'optimizer': {'optimizer': 'MINUIT',
   'tol': 0.001,
   'max_iter': 100,
   'init_lambda': 0.0001,
   'retries': 3,
   'min_fit_quality': 2,
   'verbosity': 0}}}

Delete sources with TS<12.

[13]:
gta.print_model()
gta.delete_sources(minmax_ts=[None,12])
gta.print_model()
2024-12-19 21:03:54 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.000   1.109    0.0008   2.80 201341.12     20155.5    *
3FGL J0626.8+1743      1.684   6.861  5.03e-06   2.70     13.40        63.8    *
3FGL J0631.2+2019      2.634   0.022  8.15e-08   2.46      0.02         0.8    *
3FGL J0647.8+1751      3.317   0.690  3.09e-07   2.70      0.40         3.9    *
3FGL J0648.1+1606      3.793   0.057  2.97e-07   1.77      0.11         1.0    *
3FGL J0648.8+1516      4.358   1.096  2.07e-05   1.60    134.69        45.6    *
3FGL J0650.5+2055      5.040   0.559  8.65e-06   1.26     34.12         8.7    *
3FGL J0610.6+1728      5.546   0.000  4.32e-11   4.85     -0.00         0.0    *
3FGL J0611.5+1957      5.714   0.000  4.07e-11   2.38     -0.00         0.0    *
3FGL J0619.4+2242      5.980   3.228  5.79e-05   2.71    602.85       451.2    *
3FGL J0700.0+1709      6.273   0.101   2.4e-07   2.69      0.45         2.8    *
3FGL J0609.2+2051c     6.582   0.000  2.77e-11   2.27     -0.00         0.0    *
3FGL J0659.5+1414      7.107   1.446  3.74e-07  15.34      2.02         5.5    *
3FGL J0605.9+2039c     7.210   0.000  3.16e-10   2.36     -0.00         0.0    *
isodiff                  ---   0.767    0.0232   2.12     40.51       523.4    *
galdiff                  ---   1.360     0.159   0.07  56821.10     12683.5    *

2024-12-19 21:03:54 INFO    GTAnalysis.delete_source(): Deleting source 3FGL J0631.2+2019
2024-12-19 21:03:54 INFO    GTAnalysis.delete_source(): Deleting source 3FGL J0647.8+1751
2024-12-19 21:03:54 INFO    GTAnalysis.delete_source(): Deleting source 3FGL J0648.1+1606
2024-12-19 21:03:54 INFO    GTAnalysis.delete_source(): Deleting source 3FGL J0610.6+1728
2024-12-19 21:03:54 INFO    GTAnalysis.delete_source(): Deleting source 3FGL J0611.5+1957
2024-12-19 21:03:54 INFO    GTAnalysis.delete_source(): Deleting source 3FGL J0700.0+1709
2024-12-19 21:03:54 INFO    GTAnalysis.delete_source(): Deleting source 3FGL J0609.2+2051c
2024-12-19 21:03:54 INFO    GTAnalysis.delete_source(): Deleting source 3FGL J0659.5+1414
2024-12-19 21:03:54 INFO    GTAnalysis.delete_source(): Deleting source 3FGL J0605.9+2039c
2024-12-19 21:03:54 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.000   1.109    0.0008   2.80 201341.12     20155.5    *
3FGL J0626.8+1743      1.684   6.861  5.03e-06   2.70     13.40        63.8    *
3FGL J0648.8+1516      4.358   1.096  2.07e-05   1.60    134.69        45.6    *
3FGL J0650.5+2055      5.040   0.559  8.65e-06   1.26     34.12         8.7    *
3FGL J0619.4+2242      5.980   3.228  5.79e-05   2.71    602.85       451.2    *
isodiff                  ---   0.767    0.0232   2.12     40.51       523.4    *
galdiff                  ---   1.360     0.159   0.07  56821.10     12683.5    *

Perform a fit.

[14]:
gta.fit()
gta.print_model()
2024-12-19 21:03:54 INFO    GTAnalysis.fit(): Starting fit.
2024-12-19 21:03:55 INFO    GTAnalysis.fit(): Fit returned successfully. Quality:   3 Status:   0
2024-12-19 21:03:55 INFO    GTAnalysis.fit(): LogLike:   -26228.310 DeltaLogLike:        4.704
2024-12-19 21:03:55 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.000   1.110    0.0008   2.80 180476.66     20144.4    *
3FGL J0626.8+1743      1.684  46.829   4.7e-06   5.00     22.63       110.7    *
3FGL J0648.8+1516      4.358   1.090  2.06e-05   1.60    131.36        45.4    *
3FGL J0650.5+2055      5.040   0.544   8.6e-06   1.25     32.94         8.5    *
3FGL J0619.4+2242      5.980   3.203  5.78e-05   2.73    604.13       454.2    *
isodiff                  ---   0.900    0.0272   2.12     43.27       613.9    *
galdiff                  ---   1.329     0.158   0.06  44669.89     12482.8    *

Now we run the gta.tsmap tool and gta.residmap to make a TS map and residual map to find the residuals in the ROI with respect to our initial model.

[15]:
tsmap_initial = gta.tsmap(prefix='TSmap_initial',
                          make_plots=True,
                          write_fits=True,
                          write_npy=True)
2024-12-19 21:03:55 INFO    GTAnalysis.tsmap(): Generating TS map
2024-12-19 21:03:56 INFO    GTAnalysis._make_tsmap_fast(): Fitting test source.
2024-12-19 21:04:09 INFO    GTAnalysis.tsmap(): Finished TS map
2024-12-19 21:04:15 WARNING GTAnalysis.tsmap(): Saving TS maps in .npy files is disabled b/c of incompatibilities in python3, remove the maps from the /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/TSmap_initial_pointsource_powerlaw_2.00_tsmap.npy
2024-12-19 21:04:15 INFO    GTAnalysis.tsmap(): Execution time: 19.98 s
[16]:
plt.clf()
fig = plt.figure(figsize=(14,6))
ROIPlotter(tsmap_initial['sqrt_ts'],roi=gta.roi).plot(levels=[0,3,6,10],vmin=0,vmax=10,subplot=121,cmap='magma')
plt.gca().set_title('Sqrt(TS)')
ROIPlotter(tsmap_initial['npred'],roi=gta.roi).plot(vmin=0,vmax=100,subplot=122,cmap='magma')
plt.gca().set_title('NPred')
plt.show()
[17]:
resid = gta.residmap('residualmap_initial',
                     write_fits=True,
                     write_npy=True,
                     make_plots=True)
2024-12-19 21:04:15 INFO    GTAnalysis.residmap(): Generating residual maps
2024-12-19 21:04:15 INFO    GTAnalysis.add_source(): Adding source residmap_testsource
2024-12-19 21:04:18 INFO    GTAnalysis.delete_source(): Deleting source residmap_testsource
2024-12-19 21:04:20 INFO    GTAnalysis.residmap(): Finished residual maps
2024-12-19 21:04:25 WARNING GTAnalysis.residmap(): Saving maps in .npy files is disabled b/c of incompatibilities in python3, remove the maps from the /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/residualmap_initial_pointsource_powerlaw_2.00_residmap.npy
2024-12-19 21:04:25 INFO    GTAnalysis.residmap(): Execution time: 9.14 s
[18]:
plt.clf()
fig = plt.figure(figsize=(14,6))
ROIPlotter(resid['data'],roi=gta.roi).plot(vmin=0,vmax=400,subplot=121,cmap='magma')
plt.gca().set_title('Data')
ROIPlotter(resid['model'],roi=gta.roi).plot(vmin=0,vmax=400,subplot=122,cmap='magma')
plt.gca().set_title('Model')
plt.show()
[19]:
plt.clf()
fig = plt.figure(figsize=(14,6))
ROIPlotter(resid['sigma'],roi=gta.roi).plot(vmin=-5,vmax=5,levels=[-5,-3,3,5],subplot=121,cmap='RdBu_r')
plt.gca().set_title('Significance')
ROIPlotter(resid['excess'],roi=gta.roi).plot(vmin=-100,vmax=100,subplot=122,cmap='RdBu_r')
plt.gca().set_title('Excess')
plt.show()
[20]:
gta.write_roi('initial',
              make_plots=True,
              save_model_map=True)
plt.show()
2024-12-19 21:04:25 INFO    GTBinnedAnalysis.write_xml(): Writing /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/initial_00.xml...
2024-12-19 21:04:25 INFO    GTBinnedAnalysis.write_xml(): Writing /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/initial_01.xml...
2024-12-19 21:04:25 INFO    GTAnalysis.write_fits(): Writing /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/initial.fits...
WARNING: Format %s cannot be mapped to the accepted TDISPn keyword values.  Format will not be moved into TDISPn keyword. [astropy.io.fits.column]
WARNING: Format %f cannot be mapped to the accepted TDISPn keyword values.  Format will not be moved into TDISPn keyword. [astropy.io.fits.column]
WARNING: Format %s cannot be mapped to the accepted TDISPn keyword values.  Format will not be moved into TDISPn keyword. [astropy.io.fits.column]
2024-12-19 21:04:31 INFO    GTBinnedAnalysis.write_model_map(): Generating model map for component 00.
2024-12-19 21:04:31 INFO    GTBinnedAnalysis.write_model_map(): Generating model map for component 01.
2024-12-19 21:04:33 INFO    GTAnalysis.write_roi(): Writing /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/initial.npy...
[21]:
Image(filename='./Geminga_data/initial_counts_spectrum.png')
[21]:
../_images/notebooks_phase_analysis_40_0.png
[22]:
Image(filename='./Geminga_data/initial_counts_map_xproj_3.000_5.500.png')
[22]:
../_images/notebooks_phase_analysis_41_0.png
[23]:
Image(filename='./Geminga_data/initial_counts_map_yproj_3.000_5.500.png')
[23]:
../_images/notebooks_phase_analysis_42_0.png

It is clear from the TS and residual map there is an excess at the location of Geminga.

To improve our model, we first relocalise the Geminga PSR.

[24]:
gta.print_model()
gta.free_sources(free=False)
gta.free_sources(skydir=gta.roi[gta.roi.sources[0].name].skydir,distance=[3.0],free=True)
localsmc = gta.localize(gta.roi.sources[0].name, update=True, make_plots=True)
gta.print_model()
2024-12-19 21:04:35 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.000   1.110    0.0008   2.80 180476.66     20144.4    *
3FGL J0626.8+1743      1.684  46.829   4.7e-06   5.00     22.63       110.7    *
3FGL J0648.8+1516      4.358   1.090  2.06e-05   1.60    131.36        45.4    *
3FGL J0650.5+2055      5.040   0.544   8.6e-06   1.25     32.94         8.5    *
3FGL J0619.4+2242      5.980   3.203  5.78e-05   2.73    604.13       454.2    *
isodiff                  ---   0.900    0.0272   2.12     43.27       613.9    *
galdiff                  ---   1.329     0.158   0.06  44669.89     12482.8    *

2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0633.9+1746     : ['Prefactor', 'Index1', 'Cutoff']
2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0626.8+1743     : ['Prefactor', 'Index']
2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0648.8+1516     : ['Prefactor', 'Index']
2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0650.5+2055     : ['Prefactor', 'Index']
2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0619.4+2242     : ['Prefactor', 'Index']
2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Fixing parameters for isodiff               : ['Normalization']
2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Fixing parameters for galdiff               : ['Prefactor', 'Index']
2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0633.9+1746     : ['Prefactor', 'Index1', 'Cutoff']
2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0626.8+1743     : ['Prefactor', 'Index']
2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Freeing parameters for isodiff               : ['Normalization']
2024-12-19 21:04:35 INFO    GTAnalysis.free_source(): Freeing parameters for galdiff               : ['Prefactor', 'Index']
2024-12-19 21:04:35 INFO    GTAnalysis.localize(): Running localization for 3FGL J0633.9+1746
2024-12-19 21:04:42 INFO    GTAnalysis._localize(): Localization succeeded.
2024-12-19 21:04:42 INFO    GTAnalysis._localize(): Updating source 3FGL J0633.9+1746 to localized position.
2024-12-19 21:04:42 INFO    GTAnalysis.delete_source(): Deleting source 3FGL J0633.9+1746
2024-12-19 21:04:42 INFO    GTAnalysis.add_source(): Adding source 3FGL J0633.9+1746
2024-12-19 21:04:44 WARNING GTBinnedAnalysis._scale_srcmap(): The expscale parameter was zero, setting it to 1e-8
2024-12-19 21:04:44 INFO    GTAnalysis._localize(): Localization completed with new position:
(  ra, dec) = (   98.4767 +/-   0.0015,   17.7719 +/-   0.0015)
(glon,glat) = (  195.1329 +/-   0.0015,    4.2674 +/-   0.0015)
offset =   0.0024 r68 =   0.0022 r95 =   0.0036 r99 =   0.0045
2024-12-19 21:04:44 INFO    GTAnalysis._localize(): LogLike:   -26228.501 DeltaLogLike:       -0.191
2024-12-19 21:04:44 INFO    GTAnalysis.localize(): Finished localization.
2024-12-19 21:04:48 WARNING GTAnalysis.localize(): Saving TS maps in .npy files is disabled b/c of incompatibilities in python3, remove the maps from the /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/3fgl_j0633.9+1746_loc.npy
2024-12-19 21:04:48 INFO    GTAnalysis.localize(): Execution time: 12.88 s
2024-12-19 21:04:48 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.002   1.028  0.000766   2.78 201386.60     20144.7    *
3FGL J0626.8+1743      1.684  46.829   4.7e-06   5.00     22.63       110.7    *
3FGL J0648.8+1516      4.358   1.090  2.06e-05   1.60    131.36        45.4
3FGL J0650.5+2055      5.040   0.544   8.6e-06   1.25     32.94         8.5
3FGL J0619.4+2242      5.980   3.203  5.78e-05   2.73    604.13       454.2
isodiff                  ---   0.900    0.0272   2.12     43.27       613.9    *
galdiff                  ---   1.329     0.158   0.06  44669.89     12482.8    *

Find new sources. This step will look in the OFF-phase evfile.

[25]:
findsource = gta.find_sources(sqrt_ts_threshold=5,
                              min_separation=0.2,
                              tsmap_fitter='tsmap')

gta.print_model()
2024-12-19 21:04:48 INFO    GTAnalysis.find_sources(): Starting.
2024-12-19 21:04:48 INFO    GTAnalysis.tsmap(): Generating TS map
2024-12-19 21:04:49 INFO    GTAnalysis._make_tsmap_fast(): Fitting test source.
2024-12-19 21:05:02 INFO    GTAnalysis.tsmap(): Finished TS map
2024-12-19 21:05:07 WARNING GTAnalysis.tsmap(): Saving TS maps in .npy files is disabled b/c of incompatibilities in python3, remove the maps from the /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/sourcefind_00_pointsource_powerlaw_2.00_tsmap.npy
2024-12-19 21:05:07 INFO    GTAnalysis.tsmap(): Execution time: 19.10 s
2024-12-19 21:05:07 INFO    GTAnalysis._build_src_dicts_from_peaks(): Found source
name: PS J0633.9+1746
ts: 10107.000935
2024-12-19 21:05:07 INFO    GTAnalysis._build_src_dicts_from_peaks(): Found source
name: PS J0617.2+2224
ts: 905.764875
2024-12-19 21:05:07 INFO    GTAnalysis.add_source(): Adding source PS J0633.9+1746
2024-12-19 21:05:09 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0633.9+1746       : ['Prefactor']
2024-12-19 21:05:09 INFO    GTAnalysis.add_source(): Adding source PS J0617.2+2224
2024-12-19 21:05:10 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0617.2+2224       : ['Prefactor']
2024-12-19 21:05:10 INFO    GTAnalysis._find_sources_iterate(): Performing spectral fit for PS J0633.9+1746.
2024-12-19 21:05:10 INFO    GTAnalysis.free_source(): Freeing parameters for PS J0633.9+1746       : ['Prefactor', 'Index']
2024-12-19 21:05:10 INFO    GTAnalysis.fit(): Starting fit.
/home/runner/miniconda3/envs/fermipy/lib/python3.9/site-packages/scipy/interpolate/_fitpack2.py:313: UserWarning:
The maximal number of iterations maxit (set to 20 by the program)
allowed for finding a smoothing spline with fp=s has been reached: s
too small.
There is an approximation returned but the corresponding weighted sum
of squared residuals does not satisfy the condition abs(fp-s)/s < tol.
  warnings.warn(message)
2024-12-19 21:05:11 INFO    GTAnalysis.fit(): Fit returned successfully. Quality:   3 Status:   0
2024-12-19 21:05:11 INFO    GTAnalysis.fit(): LogLike:   -19915.528 DeltaLogLike:      783.891
2024-12-19 21:05:11 INFO    GTAnalysis._find_sources_iterate(): {'Index': {'error': 0.038711225866265145, 'value': -2.938259075077796},
 'Prefactor': {'error': 6.324420094491686e-12, 'value': 2.1839883984371711e-10},
 'Scale': {'error': nan, 'value': 1000.0}}
2024-12-19 21:05:11 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0633.9+1746       : ['Prefactor', 'Index']
2024-12-19 21:05:11 INFO    GTAnalysis._find_sources_iterate(): Performing spectral fit for PS J0617.2+2224.
2024-12-19 21:05:11 INFO    GTAnalysis.free_source(): Freeing parameters for PS J0617.2+2224       : ['Prefactor', 'Index']
2024-12-19 21:05:11 INFO    GTAnalysis.fit(): Starting fit.
2024-12-19 21:05:12 INFO    GTAnalysis.fit(): Fit returned successfully. Quality:   3 Status:   0
2024-12-19 21:05:12 INFO    GTAnalysis.fit(): LogLike:   -19895.015 DeltaLogLike:       20.513
2024-12-19 21:05:12 INFO    GTAnalysis._find_sources_iterate(): {'Index': {'error': 0.06463374008790608, 'value': -2.378966256416391},
 'Prefactor': {'error': 2.941838802992821e-12, 'value': 3.671385621748616e-11},
 'Scale': {'error': nan, 'value': 1000.0}}
2024-12-19 21:05:12 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0617.2+2224       : ['Prefactor', 'Index']
2024-12-19 21:05:12 INFO    GTAnalysis.find_sources(): Found 2 sources in iteration 0.
2024-12-19 21:05:12 INFO    GTAnalysis.tsmap(): Generating TS map
2024-12-19 21:05:13 INFO    GTAnalysis._make_tsmap_fast(): Fitting test source.
2024-12-19 21:05:25 INFO    GTAnalysis.tsmap(): Finished TS map
2024-12-19 21:05:31 WARNING GTAnalysis.tsmap(): Saving TS maps in .npy files is disabled b/c of incompatibilities in python3, remove the maps from the /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/sourcefind_01_pointsource_powerlaw_2.00_tsmap.npy
2024-12-19 21:05:31 INFO    GTAnalysis.tsmap(): Execution time: 19.25 s
2024-12-19 21:05:31 INFO    GTAnalysis._build_src_dicts_from_peaks(): Found source
name: PS J0616.3+2219
ts: 27.518989
2024-12-19 21:05:31 INFO    GTAnalysis.add_source(): Adding source PS J0616.3+2219
Each lower bound must be strictly less than each upper bound.
2024-12-19 21:05:32 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0616.3+2219       : ['Prefactor']
2024-12-19 21:05:32 INFO    GTAnalysis._find_sources_iterate(): Performing spectral fit for PS J0616.3+2219.
2024-12-19 21:05:32 INFO    GTAnalysis.free_source(): Freeing parameters for PS J0616.3+2219       : ['Prefactor', 'Index']
2024-12-19 21:05:32 INFO    GTAnalysis.fit(): Starting fit.
/home/runner/miniconda3/envs/fermipy/lib/python3.9/site-packages/scipy/interpolate/_fitpack2.py:313: UserWarning:
The maximal number of iterations maxit (set to 20 by the program)
allowed for finding a smoothing spline with fp=s has been reached: s
too small.
There is an approximation returned but the corresponding weighted sum
of squared residuals does not satisfy the condition abs(fp-s)/s < tol.
  warnings.warn(message)
2024-12-19 21:05:33 INFO    GTAnalysis.fit(): Fit returned successfully. Quality:   3 Status:   0
2024-12-19 21:05:33 INFO    GTAnalysis.fit(): LogLike:   -19880.695 DeltaLogLike:        0.086
2024-12-19 21:05:33 INFO    GTAnalysis._find_sources_iterate(): {'Index': {'error': 0.19367335656495255, 'value': -2.003930035996887},
 'Prefactor': {'error': 1.3773391947844156e-12, 'value': 3.169479686926172e-12},
 'Scale': {'error': nan, 'value': 1000.0}}
2024-12-19 21:05:33 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0616.3+2219       : ['Prefactor', 'Index']
2024-12-19 21:05:33 INFO    GTAnalysis.find_sources(): Found 1 sources in iteration 1.
2024-12-19 21:05:33 INFO    GTAnalysis.tsmap(): Generating TS map
2024-12-19 21:05:34 INFO    GTAnalysis._make_tsmap_fast(): Fitting test source.
2024-12-19 21:05:46 INFO    GTAnalysis.tsmap(): Finished TS map
2024-12-19 21:05:52 WARNING GTAnalysis.tsmap(): Saving TS maps in .npy files is disabled b/c of incompatibilities in python3, remove the maps from the /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/sourcefind_02_pointsource_powerlaw_2.00_tsmap.npy
2024-12-19 21:05:52 INFO    GTAnalysis.tsmap(): Execution time: 19.32 s
2024-12-19 21:05:52 INFO    GTAnalysis.find_sources(): Found 0 sources in iteration 2.
2024-12-19 21:05:52 INFO    GTAnalysis.find_sources(): Done.
2024-12-19 21:05:52 INFO    GTAnalysis.find_sources(): Execution time: 63.97 s
2024-12-19 21:05:52 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.002   1.003  0.000737   2.78  78089.04     19242.0    *
PS J0633.9+1746        0.006   2.184  0.000232   2.94  12044.70      3626.1
3FGL J0626.8+1743      1.684   0.000  3.99e-11   4.94     -0.00         0.0    *
3FGL J0648.8+1516      4.358   1.090  2.06e-05   1.60    131.36        45.4
3FGL J0650.5+2055      5.040   0.544   8.6e-06   1.25     32.94         8.5
3FGL J0619.4+2242      5.980   3.203  5.78e-05   2.73    604.13       454.2
PS J0617.2+2224        6.068   3.671  8.59e-05   2.38   1087.18       543.8
PS J0616.3+2219        6.135   0.317   1.8e-05   2.00     28.68        63.3
isodiff                  ---   0.498     0.015   2.12     19.73       339.6    *
galdiff                  ---   0.994      0.13  -0.00  36746.87      9720.6    *

[26]:
gta.free_sources()
gta.fit()
gta.print_model()
2024-12-19 21:05:52 INFO    GTAnalysis.free_source(): Freeing parameters for PS J0633.9+1746       : ['Prefactor', 'Index']
2024-12-19 21:05:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0648.8+1516     : ['Prefactor', 'Index']
2024-12-19 21:05:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0650.5+2055     : ['Prefactor', 'Index']
2024-12-19 21:05:52 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0619.4+2242     : ['Prefactor', 'Index']
2024-12-19 21:05:52 INFO    GTAnalysis.free_source(): Freeing parameters for PS J0617.2+2224       : ['Prefactor', 'Index']
2024-12-19 21:05:52 INFO    GTAnalysis.free_source(): Freeing parameters for PS J0616.3+2219       : ['Prefactor', 'Index']
2024-12-19 21:05:52 INFO    GTAnalysis.fit(): Starting fit.
/home/runner/miniconda3/envs/fermipy/lib/python3.9/site-packages/scipy/interpolate/_fitpack2.py:313: UserWarning:
The maximal number of iterations maxit (set to 20 by the program)
allowed for finding a smoothing spline with fp=s has been reached: s
too small.
There is an approximation returned but the corresponding weighted sum
of squared residuals does not satisfy the condition abs(fp-s)/s < tol.
  warnings.warn(message)
2024-12-19 21:05:54 INFO    GTAnalysis.fit(): Fit returned successfully. Quality:   2 Status: 102
2024-12-19 21:05:54 INFO    GTAnalysis.fit(): LogLike:   -19823.592 DeltaLogLike:       57.103
2024-12-19 21:05:54 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.002   1.003  0.000737   2.78  59675.98     19239.7    *
PS J0633.9+1746        0.006   2.184  0.000232   2.94  12053.69      3625.7    *
3FGL J0626.8+1743      1.684   0.000  8.69e-12   4.94     -0.00         0.0    *
3FGL J0648.8+1516      4.358   1.310  2.03e-05   1.68    155.83        53.9    *
3FGL J0650.5+2055      5.040   0.731   8.2e-06   1.41     38.27        11.6    *
3FGL J0619.4+2242      5.980   1.288  2.27e-05   2.67    134.44       171.3    *
PS J0617.2+2224        6.068   4.217  7.59e-05   2.53    890.02       558.1    *
PS J0616.3+2219        6.135   0.410  2.08e-05   2.04     39.24        78.5    *
isodiff                  ---   0.459    0.0139   2.12     15.99       312.8    *
galdiff                  ---   1.002     0.132  -0.00  36762.71      9808.3    *

To see how much the model is improved let’s produce a TS map.

[27]:
tsmap_relnewsources = gta.tsmap(prefix='TSmap_relnewsources',
                                make_plots=True,
                                write_fits=True,
                                write_npy=True)
2024-12-19 21:05:54 INFO    GTAnalysis.tsmap(): Generating TS map
2024-12-19 21:05:55 INFO    GTAnalysis._make_tsmap_fast(): Fitting test source.
2024-12-19 21:06:08 INFO    GTAnalysis.tsmap(): Finished TS map
2024-12-19 21:06:14 WARNING GTAnalysis.tsmap(): Saving TS maps in .npy files is disabled b/c of incompatibilities in python3, remove the maps from the /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/TSmap_relnewsources_pointsource_powerlaw_2.00_tsmap.npy
2024-12-19 21:06:14 INFO    GTAnalysis.tsmap(): Execution time: 20.16 s
[28]:
plt.clf()
fig = plt.figure(figsize=(14,6))
ROIPlotter(tsmap_relnewsources['sqrt_ts'],roi=gta.roi).plot(levels=[0,3,6,10],vmin=0,vmax=5,subplot=121,cmap='magma')
plt.gca().set_title('Sqrt(TS)')
ROIPlotter(tsmap_relnewsources['npred'],roi=gta.roi).plot(vmin=0,vmax=100,subplot=122,cmap='magma')
plt.gca().set_title('NPred')
plt.show()

The TSmap now shows that the OFF-phase pulsar has been successfully modelled out.

[29]:
gta.write_roi('rel_newsources',make_plots=True,save_model_map=True)
plt.show()
2024-12-19 21:06:14 INFO    GTBinnedAnalysis.write_xml(): Writing /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/rel_newsources_00.xml...
2024-12-19 21:06:14 INFO    GTBinnedAnalysis.write_xml(): Writing /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/rel_newsources_01.xml...
2024-12-19 21:06:14 INFO    GTAnalysis.write_fits(): Writing /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/rel_newsources.fits...
WARNING: Format %s cannot be mapped to the accepted TDISPn keyword values.  Format will not be moved into TDISPn keyword. [astropy.io.fits.column]
WARNING: Format %f cannot be mapped to the accepted TDISPn keyword values.  Format will not be moved into TDISPn keyword. [astropy.io.fits.column]
WARNING: Format %s cannot be mapped to the accepted TDISPn keyword values.  Format will not be moved into TDISPn keyword. [astropy.io.fits.column]
2024-12-19 21:06:20 INFO    GTBinnedAnalysis.write_model_map(): Generating model map for component 00.
2024-12-19 21:06:21 INFO    GTBinnedAnalysis.write_model_map(): Generating model map for component 01.
2024-12-19 21:06:22 INFO    GTAnalysis.write_roi(): Writing /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/rel_newsources.npy...
[30]:
Image(filename='./Geminga_data/rel_newsources_counts_spectrum.png')
[30]:
../_images/notebooks_phase_analysis_54_0.png
[31]:
Image(filename='./Geminga_data/rel_newsources_counts_map_xproj_3.000_5.500.png')
[31]:
../_images/notebooks_phase_analysis_55_0.png
[32]:
Image(filename='./Geminga_data/rel_newsources_counts_map_yproj_3.000_5.500.png')
[32]:
../_images/notebooks_phase_analysis_56_0.png

As we can see from the plots above all the residuals have disappeared.

Now we derive the SED of the on and off-phase components of Geminga.

[33]:
gta.print_model()
gta.free_sources(free=False)
gta.free_sources(skydir=gta.roi[gta.roi.sources[0].name].skydir,distance=[3.0],free=True)
gta.print_model()
2024-12-19 21:06:25 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.002   1.003  0.000737   2.78  59675.98     19239.7    *
PS J0633.9+1746        0.006   2.184  0.000232   2.94  12053.69      3625.7    *
3FGL J0626.8+1743      1.684   0.000  8.69e-12   4.94     -0.00         0.0    *
3FGL J0648.8+1516      4.358   1.310  2.03e-05   1.68    155.83        53.9    *
3FGL J0650.5+2055      5.040   0.731   8.2e-06   1.41     38.27        11.6    *
3FGL J0619.4+2242      5.980   1.288  2.27e-05   2.67    134.44       171.3    *
PS J0617.2+2224        6.068   4.217  7.59e-05   2.53    890.02       558.1    *
PS J0616.3+2219        6.135   0.410  2.08e-05   2.04     39.24        78.5    *
isodiff                  ---   0.459    0.0139   2.12     15.99       312.8    *
galdiff                  ---   1.002     0.132  -0.00  36762.71      9808.3    *

2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0633.9+1746     : ['Prefactor', 'Index1', 'Cutoff']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0633.9+1746       : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0626.8+1743     : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0648.8+1516     : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0650.5+2055     : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0619.4+2242     : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0617.2+2224       : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0616.3+2219       : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for isodiff               : ['Normalization']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for galdiff               : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0633.9+1746     : ['Prefactor', 'Index1', 'Cutoff']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Freeing parameters for PS J0633.9+1746       : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0626.8+1743     : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Freeing parameters for isodiff               : ['Normalization']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Freeing parameters for galdiff               : ['Prefactor', 'Index']
2024-12-19 21:06:25 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.002   1.003  0.000737   2.78  59675.98     19239.7    *
PS J0633.9+1746        0.006   2.184  0.000232   2.94  12053.69      3625.7    *
3FGL J0626.8+1743      1.684   0.000  8.69e-12   4.94     -0.00         0.0    *
3FGL J0648.8+1516      4.358   1.310  2.03e-05   1.68    155.83        53.9
3FGL J0650.5+2055      5.040   0.731   8.2e-06   1.41     38.27        11.6
3FGL J0619.4+2242      5.980   1.288  2.27e-05   2.67    134.44       171.3
PS J0617.2+2224        6.068   4.217  7.59e-05   2.53    890.02       558.1
PS J0616.3+2219        6.135   0.410  2.08e-05   2.04     39.24        78.5
isodiff                  ---   0.459    0.0139   2.12     15.99       312.8    *
galdiff                  ---   1.002     0.132  -0.00  36762.71      9808.3    *

Calculate the SED for both the ON- and OFF-phase components of the model

[34]:
Geminga_onphase = gta.sed(gta.roi.sources[0].name, bin_index=2.2, outfile='sedGeminga_onphase.fits', loge_bins=None,write_npy=True,write_fits=True,make_plots=True)
2024-12-19 21:06:25 INFO    GTAnalysis.sed(): Computing SED for 3FGL J0633.9+1746
2024-12-19 21:06:25 INFO    GTAnalysis._make_sed(): Fitting SED
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0633.9+1746     : ['Index1', 'Cutoff']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0633.9+1746       : ['Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0626.8+1743     : ['Index']
2024-12-19 21:06:25 INFO    GTAnalysis.free_source(): Fixing parameters for galdiff               : ['Index']
/home/runner/miniconda3/envs/fermipy/lib/python3.9/site-packages/scipy/interpolate/_fitpack2.py:313: UserWarning:
The maximal number of iterations maxit (set to 20 by the program)
allowed for finding a smoothing spline with fp=s has been reached: s
too small.
There is an approximation returned but the corresponding weighted sum
of squared residuals does not satisfy the condition abs(fp-s)/s < tol.
  warnings.warn(message)
2024-12-19 21:06:26 INFO    GTAnalysis.sed(): Finished SED
2024-12-19 21:06:31 INFO    GTAnalysis.sed(): Execution time: 6.48 s
[35]:
Geminga_offphase = gta.sed(gta.roi.sources[1].name, bin_index=2.2, outfile='sedGeminga_offphase.fits', loge_bins=None,write_npy=True,write_fits=True,make_plots=True)
2024-12-19 21:06:31 INFO    GTAnalysis.sed(): Computing SED for PS J0633.9+1746
2024-12-19 21:06:31 INFO    GTAnalysis._make_sed(): Fitting SED
2024-12-19 21:06:31 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0633.9+1746     : ['Index1', 'Cutoff']
2024-12-19 21:06:31 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0633.9+1746       : ['Index']
2024-12-19 21:06:31 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0626.8+1743     : ['Index']
2024-12-19 21:06:31 INFO    GTAnalysis.free_source(): Fixing parameters for galdiff               : ['Index']
/home/runner/miniconda3/envs/fermipy/lib/python3.9/site-packages/scipy/interpolate/_fitpack2.py:313: UserWarning:
The maximal number of iterations maxit (set to 20 by the program)
allowed for finding a smoothing spline with fp=s has been reached: s
too small.
There is an approximation returned but the corresponding weighted sum
of squared residuals does not satisfy the condition abs(fp-s)/s < tol.
  warnings.warn(message)
2024-12-19 21:06:33 INFO    GTAnalysis.sed(): Finished SED
2024-12-19 21:06:38 INFO    GTAnalysis.sed(): Execution time: 6.32 s

Show the SED plots for both components.

[36]:
Image(filename='./Geminga_data/3fgl_j0633.9+1746_sed.png')
[36]:
../_images/notebooks_phase_analysis_64_0.png
[37]:
Image(filename='./Geminga_data/ps_j0633.9+1746_sed.png')
[37]:
../_images/notebooks_phase_analysis_65_0.png

The SED of the on phase and off-phase components of Geminga are very similar and they are both compatible with a power-law with an exponential cutoff. The off-phase flux is about a factor of two lower than the on-phase flux, which is approximately what would be expected by looking at the phase plot.

We can now search for a possible extension of the off-phase component.

[38]:
gta.free_sources(free=False)
gta.print_model()
gta.free_sources(skydir=gta.roi[gta.roi.sources[0].name].skydir,distance=[1.0],free=True)
gta.print_model()
extensionsmc = gta.extension(gta.roi.sources[1].name,update=True,make_plots=True,sqrt_ts_threshold=3.0,spatial_model='RadialGaussian')
gta.print_model()
2024-12-19 21:06:38 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0633.9+1746     : ['Prefactor', 'Index1', 'Cutoff']
2024-12-19 21:06:38 INFO    GTAnalysis.free_source(): Fixing parameters for PS J0633.9+1746       : ['Prefactor', 'Index']
2024-12-19 21:06:38 INFO    GTAnalysis.free_source(): Fixing parameters for 3FGL J0626.8+1743     : ['Prefactor', 'Index']
2024-12-19 21:06:38 INFO    GTAnalysis.free_source(): Fixing parameters for isodiff               : ['Normalization']
2024-12-19 21:06:38 INFO    GTAnalysis.free_source(): Fixing parameters for galdiff               : ['Prefactor', 'Index']
2024-12-19 21:06:38 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.002   1.003  0.000737   2.78  59675.98     19239.7
PS J0633.9+1746        0.006   2.184  0.000232   2.94  12053.69      3625.7
3FGL J0626.8+1743      1.684   0.000  8.69e-12   4.94     -0.00         0.0
3FGL J0648.8+1516      4.358   1.310  2.03e-05   1.68    155.83        53.9
3FGL J0650.5+2055      5.040   0.731   8.2e-06   1.41     38.27        11.6
3FGL J0619.4+2242      5.980   1.288  2.27e-05   2.67    134.44       171.3
PS J0617.2+2224        6.068   4.217  7.59e-05   2.53    890.02       558.1
PS J0616.3+2219        6.135   0.410  2.08e-05   2.04     39.24        78.5
isodiff                  ---   0.459    0.0139   2.12     15.99       312.8
galdiff                  ---   1.002     0.132  -0.00  36762.71      9808.3

2024-12-19 21:06:38 INFO    GTAnalysis.free_source(): Freeing parameters for 3FGL J0633.9+1746     : ['Prefactor', 'Index1', 'Cutoff']
2024-12-19 21:06:38 INFO    GTAnalysis.free_source(): Freeing parameters for PS J0633.9+1746       : ['Prefactor', 'Index']
2024-12-19 21:06:38 INFO    GTAnalysis.free_source(): Freeing parameters for isodiff               : ['Normalization']
2024-12-19 21:06:38 INFO    GTAnalysis.free_source(): Freeing parameters for galdiff               : ['Prefactor', 'Index']
2024-12-19 21:06:38 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.002   1.003  0.000737   2.78  59675.98     19239.7    *
PS J0633.9+1746        0.006   2.184  0.000232   2.94  12053.69      3625.7    *
3FGL J0626.8+1743      1.684   0.000  8.69e-12   4.94     -0.00         0.0
3FGL J0648.8+1516      4.358   1.310  2.03e-05   1.68    155.83        53.9
3FGL J0650.5+2055      5.040   0.731   8.2e-06   1.41     38.27        11.6
3FGL J0619.4+2242      5.980   1.288  2.27e-05   2.67    134.44       171.3
PS J0617.2+2224        6.068   4.217  7.59e-05   2.53    890.02       558.1
PS J0616.3+2219        6.135   0.410  2.08e-05   2.04     39.24        78.5
isodiff                  ---   0.459    0.0139   2.12     15.99       312.8    *
galdiff                  ---   1.002     0.132  -0.00  36762.71      9808.3    *

2024-12-19 21:06:38 INFO    GTAnalysis.extension(): Running extension fit for PS J0633.9+1746
2024-12-19 21:06:48 INFO    GTAnalysis._extension(): Fitting extended-source model.
2024-12-19 21:06:54 INFO    GTAnalysis._extension(): Generating TS map.
2024-12-19 21:06:55 INFO    GTAnalysis._extension(): Testing point-source model.
/home/runner/work/fermipy/fermipy/fermipy/extension.py:311: RuntimeWarning: invalid value encountered in sqrt
  np.sqrt(o['ts_ext']) > sqrt_ts_threshold):
2024-12-19 21:06:57 INFO    GTAnalysis._extension(): Best-fit extension: 0.0032 + 0.0355 -    nan
2024-12-19 21:06:57 INFO    GTAnalysis._extension(): TS_ext:        -0.004
2024-12-19 21:06:57 INFO    GTAnalysis._extension(): Extension UL: 0.0487
2024-12-19 21:06:57 INFO    GTAnalysis._extension(): LogLike:   -19823.547 DeltaLogLike:        0.045
2024-12-19 21:06:57 INFO    GTAnalysis.extension(): Finished extension fit.
{'spatial_model': 'RadialGaussian', 'width': [], 'fit_position': False, 'width_min': 0.01, 'width_max': 1.0, 'width_nstep': 21, 'free_background': False, 'fix_shape': False, 'free_radius': None, 'fit_ebin': False, 'update': True, 'save_model_map': False, 'sqrt_ts_threshold': 3.0, 'psf_scale_fn': None, 'make_tsmap': True, 'tsmap_fitter': 'tsmap', 'make_plots': True, 'write_fits': True, 'write_npy': True, 'reoptimize': False, 'optimizer': {'optimizer': 'MINUIT', 'tol': 0.001, 'max_iter': 100, 'init_lambda': 0.0001, 'retries': 3, 'min_fit_quality': 2, 'verbosity': 0}, 'prefix': '', 'outfile': None, 'loge_bins': []}
{'spatial_model': 'RadialGaussian', 'width': [], 'fit_position': False, 'width_min': 0.01, 'width_max': 1.0, 'width_nstep': 21, 'free_background': False, 'fix_shape': False, 'free_radius': None, 'fit_ebin': False, 'update': True, 'save_model_map': False, 'sqrt_ts_threshold': 3.0, 'psf_scale_fn': None, 'make_tsmap': True, 'tsmap_fitter': 'tsmap', 'make_plots': True, 'write_fits': True, 'write_npy': True, 'reoptimize': False, 'optimizer': {'optimizer': 'MINUIT', 'tol': 0.001, 'max_iter': 100, 'init_lambda': 0.0001, 'retries': 3, 'min_fit_quality': 2, 'verbosity': 0}, 'prefix': '', 'outfile': None, 'loge_bins': []}
2024-12-19 21:07:00 WARNING GTAnalysis.extension(): Saving maps in .npy files is disabled b/c of incompatibilities in python3, remove the maps from the /home/runner/work/fermipy/fermipy/fermipy-extra/notebooks/Geminga_data/ps_j0633.9+1746_ext.npy
2024-12-19 21:07:00 INFO    GTAnalysis.extension(): Execution time: 22.31 s
2024-12-19 21:07:00 INFO    GTAnalysis.print_model():
sourcename            offset    norm  eflux     index        ts       npred free
--------------------------------------------------------------------------------
3FGL J0633.9+1746      0.002   1.003  0.000737   2.78  59675.98     19239.7    *
PS J0633.9+1746        0.006   2.184  0.000232   2.94  12053.69      3625.7    *
3FGL J0626.8+1743      1.684   0.000  8.69e-12   4.94     -0.00         0.0
3FGL J0648.8+1516      4.358   1.310  2.03e-05   1.68    155.83        53.9
3FGL J0650.5+2055      5.040   0.731   8.2e-06   1.41     38.27        11.6
3FGL J0619.4+2242      5.980   1.288  2.27e-05   2.67    134.44       171.3
PS J0617.2+2224        6.068   4.217  7.59e-05   2.53    890.02       558.1
PS J0616.3+2219        6.135   0.410  2.08e-05   2.04     39.24        78.5
isodiff                  ---   0.459    0.0139   2.12     15.99       312.8    *
galdiff                  ---   1.002     0.132  -0.00  36762.71      9808.3    *

{'name': 'PS J0633.9+1746', 'file': None, 'config': {'spatial_model': 'RadialGaussian', 'width': [], 'fit_position': False, 'width_min': 0.01, 'width_max': 1.0, 'width_nstep': 21, 'free_background': False, 'fix_shape': False, 'free_radius': None, 'fit_ebin': False, 'update': True, 'save_model_map': False, 'sqrt_ts_threshold': 3.0, 'psf_scale_fn': None, 'make_tsmap': True, 'tsmap_fitter': 'tsmap', 'make_plots': True, 'write_fits': True, 'write_npy': True, 'reoptimize': False, 'optimizer': {'optimizer': 'MINUIT', 'tol': 0.001, 'max_iter': 100, 'init_lambda': 0.0001, 'retries': 3, 'min_fit_quality': 2, 'verbosity': 0}, 'prefix': '', 'outfile': None, 'loge_bins': []}, 'width': array([0.        , 0.01      , 0.01258925, 0.01584893, 0.01995262,
       0.02511886, 0.03162278, 0.03981072, 0.05011872, 0.06309573,
       0.07943282, 0.1       , 0.12589254, 0.15848932, 0.19952623,
       0.25118864, 0.31622777, 0.39810717, 0.50118723, 0.63095734,
       0.79432823, 1.        ]), 'dloglike': array([-2.04666689e-03, -2.13639701e-02, -3.56450121e-02, -6.07263384e-02,
       -1.06489222e-01, -1.93779998e-01, -3.68014969e-01, -7.29011353e-01,
       -1.49467855e+00, -3.13189880e+00, -6.58404228e+00, -1.36507556e+01,
       -2.74625189e+01, -5.36804741e+01, -9.97982142e+01, -1.72427487e+02,
       -2.87718389e+02, -4.53614789e+02, -6.80720630e+02, -9.78332018e+02,
       -1.35056834e+03, -1.79255568e+03]), 'loglike': array([-19823.54718137, -19823.56649867, -19823.58077972, -19823.60586104,
       -19823.65162393, -19823.7389147 , -19823.91314967, -19824.27414606,
       -19825.03981325, -19826.6770335 , -19830.12917698, -19837.19589035,
       -19851.00765365, -19877.22560877, -19923.34334887, -19995.97262134,
       -20111.26352399, -20277.15992397, -20504.26576437, -20801.87715258,
       -21174.11346998, -21616.10081646]), 'loglike_ptsrc': -19823.545134704145, 'loglike_ext': -19823.54718310932, 'loglike_init': -19823.592187568098, 'loglike_base': -19823.592186976275, 'ext': 0.0031622776601683794, 'ext_err_hi': 0.03553568631895012, 'ext_err_lo': nan, 'ext_err': 0.03553568631895012, 'ext_ul95': 0.04867742777048674, 'ts_ext': -0.004096810349437874, 'ebin_e_min': array([], dtype=float64), 'ebin_e_ctr': array([], dtype=float64), 'ebin_e_max': array([], dtype=float64), 'ebin_ext': array([], dtype=float64), 'ebin_ext_err': array([], dtype=float64), 'ebin_ext_err_hi': array([], dtype=float64), 'ebin_ext_err_lo': array([], dtype=float64), 'ebin_ext_ul95': array([], dtype=float64), 'ebin_ts_ext': array([], dtype=float64), 'ebin_dloglike': array([], shape=(0, 22), dtype=float64), 'ebin_loglike': array([], shape=(0, 22), dtype=float64), 'ebin_loglike_ptsrc': array([], dtype=float64), 'ebin_loglike_ext': array([], dtype=float64), 'ra': 98.48241809672234, 'dec': 17.76825047457844, 'glon': 195.13858599343803, 'glat': 4.270645947412207, 'ra_err': nan, 'dec_err': nan, 'glon_err': nan, 'glat_err': nan, 'pos_offset': 0.0, 'pos_err': nan, 'pos_r68': nan, 'pos_r95': nan, 'pos_r99': nan, 'pos_err_semimajor': nan, 'pos_err_semiminor': nan, 'pos_angle': nan, 'tsmap': <gammapy.maps.wcs.ndmap.WcsNDMap object at 0x7fb0e227c3d0>, 'ptsrc_tot_map': None, 'ptsrc_src_map': None, 'ptsrc_bkg_map': None, 'ext_tot_map': None, 'ext_src_map': None, 'ext_bkg_map': None, 'source_fit': {'param_names': array([b'Prefactor', b'Index', b'Scale', b'', b'', b'', b'', b'', b'',
       b''], dtype='|S32'), 'param_values': array([ 2.17917780e-10, -2.93927962e+00,  1.00000000e+03,             nan,
                   nan,             nan,             nan,             nan,
                   nan,             nan]), 'param_errors': array([6.44569908e-12, 4.00507114e-02,            nan,            nan,
                  nan,            nan,            nan,            nan,
                  nan,            nan]), 'ts': 12472.17350611194, 'loglike': -19823.54718310932, 'loglike_scan': array([-26059.63393617, -19826.27396667, -19825.62704997, -19825.06955703,
       -19824.60047823, -19824.21882178, -19823.92361325, -19823.7138952 ,
       -19823.58872671, -19823.54718311, -19823.57495188, -19823.65798736,
       -19823.79580115, -19823.98791163, -19824.23384378, -19824.53312914,
       -19824.88530559, -19825.28991732, -19825.74651467, -19826.25465401]), 'dloglike_scan': array([-6.23608675e+03, -2.72678356e+00, -2.07986686e+00, -1.52237392e+00,
       -1.05329512e+00, -6.71638670e-01, -3.76430145e-01, -1.66712086e-01,
       -4.15436050e-02,  0.00000000e+00, -2.77687746e-02, -1.10804254e-01,
       -2.48618046e-01, -4.40728518e-01, -6.86660674e-01, -9.85946027e-01,
       -1.33812248e+00, -1.74273421e+00, -2.19933156e+00, -2.70747090e+00]), 'eflux_scan': array([0.        , 0.00021979, 0.00022119, 0.0002226 , 0.000224  ,
       0.0002254 , 0.00022681, 0.00022821, 0.00022962, 0.00023102,
       0.00023218, 0.00023333, 0.00023448, 0.00023563, 0.00023679,
       0.00023794, 0.00023909, 0.00024025, 0.0002414 , 0.00024255]), 'flux_scan': array([0.00000000e+00, 1.07017183e-07, 1.07701026e-07, 1.08384869e-07,
       1.09068712e-07, 1.09752554e-07, 1.10436397e-07, 1.11120240e-07,
       1.11804083e-07, 1.12487926e-07, 1.13049403e-07, 1.13610879e-07,
       1.14172356e-07, 1.14733833e-07, 1.15295310e-07, 1.15856786e-07,
       1.16418263e-07, 1.16979740e-07, 1.17541217e-07, 1.18102693e-07]), 'norm_scan': array([0.        , 2.07319557, 2.08644335, 2.09969113, 2.11293891,
       2.12618669, 2.13943447, 2.15268225, 2.16593002, 2.1791778 ,
       2.19005504, 2.20093227, 2.21180951, 2.22268675, 2.23356398,
       2.24444122, 2.25531845, 2.26619569, 2.27707293, 2.28795016]), 'npred': 3620.7973021213293, 'npred_wt': 3620.7973021213293, 'pivot_energy': 1675.943804731014, 'flux': 1.1248792573749016e-07, 'flux100': 9.791121090520684e-06, 'flux1000': 1.1248792573749016e-07, 'flux10000': 1.2912260217689346e-09, 'flux_err': 2.3752578470244713e-09, 'flux100_err': 9.248234127511655e-07, 'flux1000_err': 2.3752578470244713e-09, 'flux10000_err': 1.2185614659900904e-10, 'flux_ul95': 1.1643613935527828e-07, 'flux100_ul95': 1.013477964204576e-05, 'flux1000_ul95': 1.1643613935527828e-07, 'flux10000_ul95': 1.3365467629006328e-09, 'eflux': 0.0002310219977221619, 'eflux100': 0.00201727365109177, 'eflux1000': 0.0002310219977221619, 'eflux10000': 2.5643644343049865e-05, 'eflux_err': 6.867312745314218e-06, 'eflux100_err': 0.0001482805737881156, 'eflux1000_err': 6.867312745314218e-06, 'eflux10000_err': 2.8357929726827678e-06, 'eflux_ul95': 0.00023913063864015567, 'eflux100_ul95': 0.0020880779373991954, 'eflux1000_ul95': 0.00023913063864015567, 'eflux10000_ul95': 2.6543710595860155e-05, 'dnde': 4.776738073987628e-11, 'dnde100': 1.8948388841844216e-07, 'dnde1000': 2.1791778026611987e-10, 'dnde10000': 2.506184528535934e-13, 'dnde_err': 1.0096963735514904e-12, 'dnde100_err': 2.176638907415179e-08, 'dnde1000_err': 6.445699081999604e-12, 'dnde10000_err': 1.869306858835905e-14, 'dnde_index': 2.9392796218690163, 'dnde100_index': 2.9392796218690163, 'dnde1000_index': 2.9392796218690163, 'dnde10000_index': 2.939279621857915, 'name': 'PS J0633.9+1746', 'spectral_pars': {'Prefactor': {'name': 'Prefactor', 'value': 2.1791778026611985, 'error': 0.06445699081999604, 'min': 1e-05, 'max': 1000.0, 'free': True, 'scale': 1e-10}, 'Index': {'name': 'Index', 'value': 2.9392796218642236, 'error': 0.04005071144191184, 'min': 0.0, 'max': 5.0, 'free': True, 'scale': -1.0}, 'Scale': {'name': 'Scale', 'value': 1.0, 'error': nan, 'min': 0.001, 'max': 1000.0, 'free': False, 'scale': 1000.0}}, 'model_counts': array([1.48948442e+03, 8.98718925e+02, 5.28726612e+02, 3.04527727e+02,
       1.72524281e+02, 9.71622569e+01, 5.52350871e+01, 3.18053991e+01,
       1.82024047e+01, 1.03764777e+01, 5.93396659e+00, 3.44361787e+00,
       2.00895453e+00, 1.15859657e+00, 6.62312890e-01, 3.77832758e-01,
       2.15360295e-01, 1.22812088e-01, 7.01745345e-02, 4.00804155e-02]), 'model_counts_wt': array([1.48948442e+03, 8.98718925e+02, 5.28726612e+02, 3.04527727e+02,
       1.72524281e+02, 9.71622569e+01, 5.52350871e+01, 3.18053991e+01,
       1.82024047e+01, 1.03764777e+01, 5.93396659e+00, 3.44361787e+00,
       2.00895453e+00, 1.15859657e+00, 6.62312890e-01, 3.77832758e-01,
       2.15360295e-01, 1.22812088e-01, 7.01745345e-02, 4.00804155e-02]), 'covar': array([[0.0041547 , 0.0018058 ],
       [0.0018058 , 0.00160406]]), 'model_flux': {'energies': array([  1000.        ,   1124.65782212,   1264.85521686,   1422.52931349,
         1599.85871961,   1799.29362329,   2023.58964773,   2275.84592607,
         2559.5479227 ,   2878.61559235,   3237.45754282,   3641.03194931,
         4094.91506238,   4605.37825582,   5179.47467923,   5825.13671247,
         6551.2855686 ,   7367.95455966,   8286.42772855,   9319.39576234,
        10481.13134155,  11787.68634794,  13257.1136559 ,  14909.71657184,
        16768.32936811,  18858.63278773,  21209.5088792 ,  23853.44006431,
        26826.9579528 ,  30171.14810529,  33932.21771895,  38162.13407949,
        42919.34260129,  48269.57437678,  54286.75439324,  61054.02296585,
        68664.88450043,  77224.49945836,  86851.13737514,  97677.81100895,
       109854.11419876, 123548.28882567, 138949.54943731, 156270.6976547 ,
       175751.06248548, 197659.80717016, 222299.64825262, 250011.03826179,
       281176.86979742, 316227.76601684]), 'log_energies': array([3.        , 3.05102041, 3.10204082, 3.15306122, 3.20408163,
       3.25510204, 3.30612245, 3.35714286, 3.40816327, 3.45918367,
       3.51020408, 3.56122449, 3.6122449 , 3.66326531, 3.71428571,
       3.76530612, 3.81632653, 3.86734694, 3.91836735, 3.96938776,
       4.02040816, 4.07142857, 4.12244898, 4.17346939, 4.2244898 ,
       4.2755102 , 4.32653061, 4.37755102, 4.42857143, 4.47959184,
       4.53061224, 4.58163265, 4.63265306, 4.68367347, 4.73469388,
       4.78571429, 4.83673469, 4.8877551 , 4.93877551, 4.98979592,
       5.04081633, 5.09183673, 5.14285714, 5.19387755, 5.24489796,
       5.29591837, 5.34693878, 5.39795918, 5.44897959, 5.5       ]), 'dnde': array([2.17917780e-10, 1.54287031e-10, 1.09236097e-10, 7.73397793e-11,
       5.47570046e-11, 3.87682713e-11, 2.74481571e-11, 1.94334517e-11,
       1.37589945e-11, 9.74144656e-12, 6.89699969e-12, 4.88311509e-12,
       3.45727332e-12, 2.44776921e-12, 1.73303456e-12, 1.22699834e-12,
       8.68721821e-13, 6.15060001e-13, 4.35465986e-13, 3.08312400e-13,
       2.18286937e-13, 1.54548395e-13, 1.09421145e-13, 7.74707942e-14,
       5.48497639e-14, 3.88339454e-14, 2.74946547e-14, 1.94663723e-14,
       1.37823025e-14, 9.75794873e-15, 6.90868332e-15, 4.89138717e-15,
       3.46313000e-15, 2.45191578e-15, 1.73597035e-15, 1.22907690e-15,
       8.70193450e-16, 6.16101923e-16, 4.36203673e-16, 3.08834687e-16,
       2.18656718e-16, 1.54810203e-16, 1.09606506e-16, 7.76020310e-17,
       5.49426803e-17, 3.88997308e-17, 2.75412311e-17, 1.94993486e-17,
       1.38056500e-17, 9.77447886e-18]), 'dnde_lo': array([2.11657259e-10, 1.50303752e-10, 1.06680123e-10, 7.56648070e-11,
       5.36191884e-11, 3.79587225e-11, 2.68456745e-11, 1.89700395e-11,
       1.33960315e-11, 9.45531180e-12, 6.67157356e-12, 4.70627561e-12,
       3.31935521e-12, 2.34087729e-12, 1.65069554e-12, 1.16393642e-12,
       8.20678547e-13, 5.78634099e-13, 4.07968125e-13, 2.87635740e-13,
       2.02794547e-13, 1.42977724e-13, 1.00804664e-13, 7.10712869e-14,
       5.01083342e-14, 3.53287874e-14, 2.49087011e-14, 1.75621431e-14,
       1.23825024e-14, 8.73060109e-15, 6.15580643e-15, 4.34041318e-15,
       3.06043166e-15, 2.15794288e-15, 1.52160867e-15, 1.07293121e-15,
       7.56565848e-16, 5.33491628e-16, 3.76196332e-16, 2.65281898e-16,
       1.87071151e-16, 1.31920467e-16, 9.30301502e-17, 6.56056808e-17,
       4.62663625e-17, 3.26283753e-17, 2.30107999e-17, 1.62283418e-17,
       1.14451826e-17, 8.07193095e-18]), 'dnde_hi': array([2.24363479e-10, 1.58375872e-10, 1.11853310e-10, 7.90518300e-11,
       5.59189656e-11, 3.95950855e-11, 2.80641608e-11, 1.99081844e-11,
       1.41317920e-11, 1.00362403e-11, 7.13004275e-12, 5.06659936e-12,
       3.60092188e-12, 2.55954216e-12, 1.81948075e-12, 1.29347696e-12,
       9.19577591e-13, 6.53778968e-13, 4.64817258e-13, 3.30475400e-13,
       2.34962860e-13, 1.67055440e-13, 1.18774137e-13, 8.44465355e-14,
       6.00398446e-14, 4.26868690e-14, 3.03490750e-14, 2.15770733e-14,
       1.53403453e-14, 1.09061865e-14, 7.75363972e-15, 5.51230205e-15,
       3.91881626e-15, 2.78593610e-15, 1.98053093e-15, 1.40794677e-15,
       1.00088663e-15, 7.11504284e-16, 5.05782827e-16, 3.59537776e-16,
       2.55575274e-16, 1.81671574e-16, 1.29136480e-16, 9.17919781e-17,
       6.52460654e-17, 4.63764758e-17, 3.29636265e-17, 2.34296641e-17,
       1.66529428e-17, 1.18361316e-17]), 'dnde_err': array([6.44569908e-12, 4.08884117e-12, 2.61721332e-12, 1.71205073e-12,
       1.16196102e-12, 8.26814202e-13, 6.16003756e-13, 4.74732724e-13,
       3.72797499e-13, 2.94793709e-13, 2.33043066e-13, 1.83484267e-13,
       1.43648561e-13, 1.11772945e-13, 8.64461991e-14, 6.64786141e-14,
       5.08557705e-14, 3.87189676e-14, 2.93512715e-14, 2.21630000e-14,
       1.66759229e-14, 1.25070446e-14, 9.35299180e-15, 6.97574132e-15,
       5.19008070e-15, 3.85292358e-15, 2.85442027e-15, 2.11070108e-15,
       1.55804276e-15, 1.14823773e-15, 8.44956401e-16, 6.20914875e-16,
       4.55686265e-16, 3.34020320e-16, 2.44560582e-16, 1.78869868e-16,
       1.30693178e-16, 9.54023612e-17, 6.95791542e-17, 5.07030896e-17,
       3.69185554e-17, 2.68613709e-17, 1.95299744e-17, 1.41899471e-17,
       1.03033851e-17, 7.47674499e-18, 5.42239532e-18, 3.93031544e-18,
       2.84729281e-18, 2.06165275e-18]), 'dnde_ferr': array([0.0291537 , 0.02615942, 0.02367893, 0.02189703, 0.02099984,
       0.02110441, 0.02219614, 0.02413737, 0.02673744, 0.02981736,
       0.03323686, 0.03689487, 0.04072092, 0.04466615, 0.04869644,
       0.05278758, 0.05692216, 0.06108743, 0.06527391, 0.06947444,
       0.07368355, 0.07789701, 0.08211152, 0.08632446, 0.09053376,
       0.09473776, 0.09893512, 0.10312477, 0.10730583, 0.1114776 ,
       0.11563949, 0.11979106, 0.12393191, 0.12806174, 0.13218033,
       0.13628747, 0.14038303, 0.14446689, 0.14853898, 0.15259924,
       0.15664765, 0.1606842 , 0.16470888, 0.16872173, 0.17272276,
       0.17671203, 0.18068957, 0.18465546, 0.18860974, 0.1925525 ]), 'pivot_energy': 1675.943804731014}}}