Commit 90577754fd4e6e8ab52e58d21f6b10b297033622

Authored by Jürgen Knödlseder
1 parent 721eb80b

Enhance 1DC tutorial

doc/source/users/tutorials/1dc/first_detect.rst
@@ -30,6 +30,7 @@ iteratively finds all peaks in the sky map above a given threshold. @@ -30,6 +30,7 @@ iteratively finds all peaks in the sky map above a given threshold.
30 The detection threshold was set here to ``10.0`` which means that only peaks 30 The detection threshold was set here to ``10.0`` which means that only peaks
31 are considered that are ten standard deviations above the mean value of the 31 are considered that are ten standard deviations above the mean value of the
32 sky map pixels. 32 sky map pixels.
  33 +
33 The script generated also a `ds9 <http://ds9.si.edu>`_ region file that can 34 The script generated also a `ds9 <http://ds9.si.edu>`_ region file that can
34 be overlaid on the sky map. 35 be overlaid on the sky map.
35 Due to the relatively high threshold of ten standard deviations, only two 36 Due to the relatively high threshold of ten standard deviations, only two
@@ -44,10 +45,13 @@ sources were detected. @@ -44,10 +45,13 @@ sources were detected.
44 Below is the content of the 45 Below is the content of the
45 :ref:`model definition XML file <glossary_moddef>` 46 :ref:`model definition XML file <glossary_moddef>`
46 that was generated by :ref:`cssrcdetect`. 47 that was generated by :ref:`cssrcdetect`.
47 -In addition to the two point sources the file also contains a background model  
48 -component of type ``CTAIrfBackground``.  
49 -This component was added since the background model type was set to ``IRF``  
50 -in the :ref:`cssrcdetect` run. 48 +There are three model components in the file and each model component is
  49 +identified using a unique ``name`` attribute.
  50 +The first two components, ``"Src001"`` and ``"Src002"`` are the two point sources
  51 +detected by :ref:`cssrcdetect`, the third component ``"Background"`` is a
  52 +background model component of type ``"CTAIrfBackground"``.
  53 +The latter component was added because the background model type was set to
  54 +``IRF`` in the :ref:`cssrcdetect` run.
51 Having a background model component added allows to directly use the 55 Having a background model component added allows to directly use the
52 :ref:`model definition XML file <glossary_moddef>` 56 :ref:`model definition XML file <glossary_moddef>`
53 for a model fitting with :ref:`ctlike`. 57 for a model fitting with :ref:`ctlike`.
doc/source/users/tutorials/1dc/first_fitting.rst
@@ -3,13 +3,75 @@ @@ -3,13 +3,75 @@
3 Fitting the model components to the data 3 Fitting the model components to the data
4 ---------------------------------------- 4 ----------------------------------------
5 5
  6 +Now you are ready to fit the model to the data and to determine its maximum
  7 +likelihood parameters.
  8 +You do this with the :ref:`ctlike` tool that adjusts all parameters in the
  9 +:ref:`model definition XML file <glossary_moddef>`
  10 +that have the attribute ``free`` set to ``"1"``.
  11 +In the current example, the free model parameters are the positions and spectral
  12 +parameters of the two point sources and the spectral normalisation of the
  13 +background component.
  14 +You run the :ref:`ctlike` tool as follows:
  15 +
6 .. code-block:: bash 16 .. code-block:: bash
7 17
8 $ ctlike 18 $ ctlike
9 Input event list, counts cube or observation definition XML file [events.fits] obs.xml 19 Input event list, counts cube or observation definition XML file [events.fits] obs.xml
10 - Input model XML file [$CTOOLS/share/models/crab.xml] models.xml  
11 - Output model XML file [crab_results.xml] results.xml 20 + Input model definition XML file [$CTOOLS/share/models/crab.xml] models.xml
  21 + Output model definition XML file [crab_results.xml] results.xml
  22 +
  23 +The tool will take a few minutes to perform the model fitting, and will write
  24 +the results into an updated
  25 +:ref:`model definition XML file <glossary_moddef>`
  26 +containing the fitted model parameters and their statistical uncertainties.
  27 +You may inspect the log file ``ctlike.log`` to verify that the model fit
  28 +converged properly, as illustrated in the example below:
  29 +
  30 +.. code-block:: bash
  31 +
  32 + 2016-12-02T12:06:03: +=================================+
  33 + 2016-12-02T12:06:03: | Maximum likelihood optimisation |
  34 + 2016-12-02T12:06:03: +=================================+
  35 + 2016-12-02T12:06:19: >Iteration 0: -logL=13460292.282, Lambda=1.0e-03
  36 + 2016-12-02T12:06:34: >Iteration 1: -logL=13447430.338, Lambda=1.0e-03, delta=12861.944, max(|grad|)=38643.139247 [Index:13]
  37 + 2016-12-02T12:06:49: >Iteration 2: -logL=13444219.743, Lambda=1.0e-04, delta=3210.595, max(|grad|)=18223.630095 [RA:0]
  38 + 2016-12-02T12:07:05: >Iteration 3: -logL=13442740.130, Lambda=1.0e-05, delta=1479.613, max(|grad|)=12560.528406 [RA:0]
  39 + 2016-12-02T12:07:20: >Iteration 4: -logL=13442178.499, Lambda=1.0e-06, delta=561.631, max(|grad|)=5836.127526 [RA:0]
  40 + 2016-12-02T12:07:35: >Iteration 5: -logL=13442096.088, Lambda=1.0e-07, delta=82.411, max(|grad|)=1183.057138 [RA:0]
  41 + 2016-12-02T12:07:50: >Iteration 6: -logL=13442094.149, Lambda=1.0e-08, delta=1.939, max(|grad|)=55.233391 [RA:0]
  42 + 2016-12-02T12:08:06: >Iteration 7: -logL=13442094.147, Lambda=1.0e-09, delta=0.002, max(|grad|)=-3.893441 [RA:6]
  43 + 2016-12-02T12:08:21:
  44 + 2016-12-02T12:08:21: +=========================================+
  45 + 2016-12-02T12:08:21: | Maximum likelihood optimisation results |
  46 + 2016-12-02T12:08:21: +=========================================+
  47 + 2016-12-02T12:08:21: === GOptimizerLM ===
  48 + 2016-12-02T12:08:21: Optimized function value ..: 13442094.147
  49 + 2016-12-02T12:08:21: Absolute precision ........: 0.005
  50 + 2016-12-02T12:08:21: Acceptable value decrease .: 2
  51 + 2016-12-02T12:08:21: Optimization status .......: converged
  52 + 2016-12-02T12:08:21: Number of parameters ......: 16
  53 + 2016-12-02T12:08:21: Number of free parameters .: 10
  54 + 2016-12-02T12:08:21: Number of iterations ......: 7
  55 + 2016-12-02T12:08:21: Lambda ....................: 1e-10
  56 + 2016-12-02T12:08:21: Maximum log likelihood ....: -13442094.147
  57 + 2016-12-02T12:08:21: Observed events (Nobs) ...: 1899265.000
  58 + 2016-12-02T12:08:21: Predicted events (Npred) ..: 1899225.997 (Nobs - Npred = 39.0025871018879)
  59 +
  60 +You may also convert the fitted model positions into a `ds9 <http://ds9.si.edu>`_
  61 +region file using the :ref:`csmodelinfo` script so that you can overlay the
  62 +fit results over a sky map:
12 63
  64 +.. code-block:: bash
  65 +
  66 + $ csmodelinfo
  67 + Input model definition XML file [model.xml] results.xml
  68 + Output DS9 region file [ds9.reg] positions.reg
  69 +
  70 +The following image shows a zoom of the sky map that comprises both point
  71 +sources, with the initial source positions determined by :ref:`cssrcdetect`
  72 +as green crosses and the positions fitted by :ref:`ctlike` as blue circles.
  73 +Obviously, the initial positions were already nearby the fitted position,
  74 +which is required to assure the proper convergence of the fit.
13 75
14 .. figure:: first_skymap_fitted.png 76 .. figure:: first_skymap_fitted.png
15 :width: 600px 77 :width: 600px
@@ -17,21 +79,41 @@ Fitting the model components to the data @@ -17,21 +79,41 @@ Fitting the model components to the data
17 79
18 *Background subtracted sky map of the events recorded during the Galactic Plane Survey around the Galactic Centre with the fitted positions of the sources shown as blue circles* 80 *Background subtracted sky map of the events recorded during the Galactic Plane Survey around the Galactic Centre with the fitted positions of the sources shown as blue circles*
19 81
  82 +You can also convert the spectral parameters of the point sources into a
  83 +butterfly diagram for each source using the :ref:`ctbutterfly` tool.
  84 +The butterfly diagram shows the envelope of all power laws that are
  85 +statistically compatible with the data.
  86 +You create the butterfly diagram for the first source using:
  87 +
20 .. code-block:: bash 88 .. code-block:: bash
21 89
22 $ ctbutterfly 90 $ ctbutterfly
23 Input event list, counts cube or observation definition XML file [events.fits] obs.xml 91 Input event list, counts cube or observation definition XML file [events.fits] obs.xml
24 Source of interest [Crab] Src001 92 Source of interest [Crab] Src001
25 - Input model XML file [$CTOOLS/share/models/crab.xml] ctlike_unbinned_bkg_3ptsrc.xml 93 + Input model definition XML file [$CTOOLS/share/models/crab.xml] results.xml
26 Start value for first energy bin in TeV [0.1] 94 Start value for first energy bin in TeV [0.1]
27 Stop value for last energy bin in TeV [100.0] 95 Stop value for last energy bin in TeV [100.0]
28 Output ASCII file [butterfly.txt] butterfly_src001.txt 96 Output ASCII file [butterfly.txt] butterfly_src001.txt
29 97
  98 +You create the butterfly diagram for the second source by selecting ``Src002``
  99 +as ``"Source of interest"``.
  100 +The butterfly diagrams for both sources are displayed in the figure below:
  101 +
  102 +.. figure:: first_spectrum.png
  103 + :width: 600px
  104 + :align: center
  105 +
  106 + *Butterfly diagrams determined with ctbutterfly and spectral points determined with csspec for Src001 (top) and Src002 (bottom)*
  107 +
  108 +The figure also shows spectral points for each source that were determined
  109 +using the :ref:`csspec` script.
  110 +You create the spectrum for the first source using:
  111 +
30 .. code-block:: bash 112 .. code-block:: bash
31 113
32 $ csspec 114 $ csspec
33 Input event list, counts cube, or observation definition XML file [events.fits] obs.xml 115 Input event list, counts cube, or observation definition XML file [events.fits] obs.xml
34 - Input model XML file [results.xml] ctlike_unbinned_bkg_3ptsrc.xml 116 + Input model definition XML file [results.xml] results.xml
35 Source name [Crab] Src001 117 Source name [Crab] Src001
36 Binning algorithm (LIN|LOG|FILE) [LOG] 118 Binning algorithm (LIN|LOG|FILE) [LOG]
37 Lower energy limit (TeV) [0.1] 119 Lower energy limit (TeV) [0.1]
@@ -39,9 +121,9 @@ Fitting the model components to the data @@ -39,9 +121,9 @@ Fitting the model components to the data
39 Number of energy bins (0=unbinned) [10] 121 Number of energy bins (0=unbinned) [10]
40 Output spectrum file [spectrum.fits] spectrum_src001.fits 122 Output spectrum file [spectrum.fits] spectrum_src001.fits
41 123
42 -.. figure:: first_spectrum.png  
43 - :width: 600px  
44 - :align: center  
45 -  
46 - *Butterfly diagrams determined with ctbutterfly and spectral points determined with csspec for Src001 (top) and Src002 (bottom)*  
47 - 124 +Alike the :ref:`ctbutterfly` tool, you have to run the :ref:`csspec` script
  125 +for each source for which you want to obtain spectral points.
  126 +The script will divide the data into a number of logarithmically spaced energy
  127 +bins and determine the flux in each of the bins using a maximum likelihood
  128 +model fit.
  129 +Ten energy bins were used in this example.
doc/source/users/tutorials/1dc/first_residuals.rst
1 .. _1dc_first_residuals: 1 .. _1dc_first_residuals:
2 2
3 -Inspecting the residuals  
4 ------------------------- 3 +Inspecting the fit residuals
  4 +----------------------------
  5 +
  6 +After doing the model fit you should investigate the residuals to verify that
  7 +the model components properly describe the observed event distribution.
  8 +You do this with the :ref:`csresmap` script by providing the output
  9 +:ref:`model definition XML file <glossary_moddef>`
  10 +``results.xml`` produced by :ref:`ctlike` as input:
5 11
6 .. code-block:: bash 12 .. code-block:: bash
7 13
8 $ csresmap 14 $ csresmap
9 - Input event list, counts cube, or observation definition XML file [obs.xml]  
10 - Input model XML file [results.xml]  
11 - First coordinate of image center in degrees (RA or galactic l) (0-360) [0.0]  
12 - Second coordinate of image center in degrees (DEC or galactic b) (-90-90) [0.0] 15 + Input event list, counts cube, or observation definition XML file [events.fits] obs.xml
  16 + Input model definition XML file [$CTOOLS/share/models/crab.xml] results.xml
  17 + First coordinate of image center in degrees (RA or galactic l) (0-360) [83.63] 0.0
  18 + Second coordinate of image center in degrees (DEC or galactic b) (-90-90) [22.01] 0.0
13 Lower energy limit (TeV) [0.1] 19 Lower energy limit (TeV) [0.1]
14 Upper energy limit (TeV) [100.0] 20 Upper energy limit (TeV) [100.0]
15 - Coordinate System (CEL|GAL) [GAL] 21 + Coordinate System (CEL|GAL) [CEL] GAL
16 Projection method (AIT|AZP|CAR|MER|MOL|STG|TAN) [CAR] 22 Projection method (AIT|AZP|CAR|MER|MOL|STG|TAN) [CAR]
17 - Size of the X axis in pixels [200]  
18 - Size of the Y axis in pixels [200] 100  
19 - Pixel size (deg/pixel) [0.1] 0.05  
20 - Residual map computation algorithm (SUB|SUBDIV|SUBDIVSQRT) [SUB] 23 + Size of the X axis in pixels [200] 500
  24 + Size of the Y axis in pixels [200] 250
  25 + Pixel size (deg/pixel) [0.02] 0.02
  26 + Residual map computation algorithm (SUB|SUBDIV|SUBDIVSQRT) [SUBDIV] SUB
21 Output residual map file [resmap.fits] 27 Output residual map file [resmap.fits]
  28 +
  29 +This produces a residual map that you can display for example with
  30 +`ds9 <http://ds9.si.edu>`_.
  31 +The figure below shows the result, with the fitted source positions indicated
  32 +by white circles.
  33 +The residuals near the positions of both point sources are relatively flat,
  34 +demonstrating that both excesses are well described by point sources.
  35 +Residuals along the Galactic plane indicate that not all sources that are
  36 +present in the data are described by the model, which is explained by the
  37 +relatively high detection threshold that you used in the source detection
  38 +step.
  39 +
  40 +.. figure:: first_skymap_residual.png
  41 + :width: 600px
  42 + :align: center
  43 +
  44 + *Residual sky map after subtraction of the fitted model*
doc/source/users/tutorials/1dc/first_skymap_fitted.png

452 KB | W: | H:

61.2 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
doc/source/users/tutorials/1dc/first_skymap_residual.png 0 → 100644

427 KB