Commit 80f82c6d3b466bb3d2aeb43f820a5542785affa7

Authored by Jürgen Knödlseder
1 parent ae4014dd

Integrate code

ChangeLog
1 -2017-08-08 1 +2017-10-11
2 2
3 * Version 1.5.0 released 3 * Version 1.5.0 released
4 ======================== 4 ========================
5 5
  6 + Add csmodelsois script (#2180)
6 Use t-type parameters for all "tmin" and "tmax" parameters (#1864) 7 Use t-type parameters for all "tmin" and "tmax" parameters (#1864)
7 8
8 9
1 New Features and Important Changes in ctools 1.5.0 1 New Features and Important Changes in ctools 1.5.0
2 2
3 -8 August 2017 3 +11 October 2017
4 4
5 5
6 Introduction 6 Introduction
@@ -119,6 +119,9 @@ None @@ -119,6 +119,9 @@ None
119 119
120 cscripts 120 cscripts
121 -------- 121 --------
  122 +Add csmodelsois script that replaces selected models in a model container by
  123 +a diffuse map cube (#2180).
  124 +
122 Use t-type parameters for "tmin" and "tmax" to all specifying times in various 125 Use t-type parameters for "tmin" and "tmax" to all specifying times in various
123 formats (#1864). 126 formats (#1864).
124 127
cscripts/__init__.py.in
1 # ========================================================================== 1 # ==========================================================================
2 # cscripts Python module 2 # cscripts Python module
3 # 3 #
4 -# Copyright (C) 2015-2016 Juergen Knoedlseder 4 +# Copyright (C) 2015-2017 Juergen Knoedlseder
5 # 5 #
6 # This program is free software: you can redistribute it and/or modify 6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by 7 # it under the terms of the GNU General Public License as published by
cscripts/csmodelsois.par
@@ -16,11 +16,11 @@ @@ -16,11 +16,11 @@
16 # 16 #
17 # General parameters 17 # General parameters
18 #=================== 18 #===================
19 -inmodel, f, a, "$CTOOLS/share/models/crab.xml",,, "Input model definition XML file"  
20 -outcube, f, a, "mapcube.fits",,, "Output map cube file" 19 +inmodel, f, a, $CTOOLS/share/models/crab.xml,,, "Input model definition XML file"
  20 +outcube, f, a, mapcube.fits,,, "Output map cube file"
21 ptsrcsig, r, h, 1.0,0,60, "Point source Gaussian sigma in arcmin" 21 ptsrcsig, r, h, 1.0,0,60, "Point source Gaussian sigma in arcmin"
22 -soilist, s, a, "",,, "CSV list of sources to exclude from cube model"  
23 -outmodel, f, a, "NONE",,, "Output model definition XML file" 22 +soilist, s, a, ,,, "CSV list of sources to exclude from cube model"
  23 +outmodel, f, a, model.xml,,, "Output model definition XML file"
24 24
25 # 25 #
26 # Energy binning parameters 26 # Energy binning parameters
@@ -52,4 +52,4 @@ chatter, i, h, 2,0,4, "Chattiness of output" @@ -52,4 +52,4 @@ chatter, i, h, 2,0,4, "Chattiness of output"
52 clobber, b, h, yes,,, "Overwrite existing output files with new output files?" 52 clobber, b, h, yes,,, "Overwrite existing output files with new output files?"
53 debug, b, h, no,,, "Debugging mode activated" 53 debug, b, h, no,,, "Debugging mode activated"
54 mode, s, h, "ql",,, "Mode of automatic parameters" 54 mode, s, h, "ql",,, "Mode of automatic parameters"
55 -logfile, f, h, "ctmapcube.log",,, "Log filename" 55 +logfile, f, h, "csmodelsois.log",,, "Log filename"
cscripts/csmodelsois.py
1 #! /usr/bin/env python 1 #! /usr/bin/env python
2 # ========================================================================== 2 # ==========================================================================
3 -# Allows generation of DiffuseMapCube model from subset of sources in a  
4 -# model definition XML file 3 +# Puts subset of sources in diffuse model cube
5 # 4 #
6 # Copyright (C) 2017 Josh Cardenzana 5 # Copyright (C) 2017 Josh Cardenzana
7 # 6 #
@@ -23,19 +22,24 @@ import sys @@ -23,19 +22,24 @@ import sys
23 import gammalib 22 import gammalib
24 import ctools 23 import ctools
25 24
26 -#=============#  
27 -# csmodelsois #  
28 -#=============# 25 +
  26 +# ================= #
  27 +# csmodelsois class #
  28 +# ================= #
29 class csmodelsois(ctools.cscript): 29 class csmodelsois(ctools.cscript):
30 """ 30 """
31 - Generates a DiffuseMapCube model from a subset of sources in a model  
32 - definition XML file. All background models will be ignored! 31 + Puts subset of sources in diffuse model cube
  32 +
  33 + The csmodelsois class puts a subset of sources in a model definition
  34 + XML file into a model cube and generates a new model definition XML file
  35 + in which the subset of sources is replaced by a model of type
  36 + DiffuseMapCube.
33 """ 37 """
34 38
35 # Constructor 39 # Constructor
36 def __init__(self, *argv): 40 def __init__(self, *argv):
37 """ 41 """
38 - Constructor. 42 + Constructor
39 43
40 Parameters 44 Parameters
41 ---------- 45 ----------
@@ -44,7 +48,7 @@ class csmodelsois(ctools.cscript): @@ -44,7 +48,7 @@ class csmodelsois(ctools.cscript):
44 Raises 48 Raises
45 ------ 49 ------
46 TypeError 50 TypeError
47 - An invalid number of command line arguments was provided. 51 + An invalid number of command line arguments was provided.
48 """ 52 """
49 # Set name and version 53 # Set name and version
50 self._name = 'csmodelsois' 54 self._name = 'csmodelsois'
@@ -60,56 +64,60 @@ class csmodelsois(ctools.cscript): @@ -60,56 +64,60 @@ class csmodelsois(ctools.cscript):
60 return 64 return
61 65
62 66
  67 + # Private methods
63 def _init_members(self): 68 def _init_members(self):
64 """ 69 """
65 Initialize the parameters for this object 70 Initialize the parameters for this object
66 """ 71 """
67 - self.cubegen = ctools.ctmapcube() # Implements ctmapcube for generate the cube  
68 - self.m_models = gammalib.GModels() # Stores the full list of input models  
69 - self.cubemodels = gammalib.GModels() # Stores the list of models to be written to file  
70 - return 72 + # Initialise parameters
  73 + self.cubegen = ctools.ctmapcube() # Implements ctmapcube for generate the cube
  74 + self.m_models = gammalib.GModels() # Stores the full list of input models
  75 + self.cubemodels = gammalib.GModels() # Stores the list of models to be written to file
71 76
  77 + # Return
  78 + return
72 79
73 - def _set_cube_parameters(self): 80 + def _get_parameters(self):
74 """ 81 """
75 - Fill in the parameters associated with this object 82 + Get parameters from parfile
76 """ 83 """
  84 + # Query input parameters
  85 + self['inmodel'].filename()
  86 + self['soilist'].string()
  87 +
  88 + # Read input parameters
  89 + ptsrcsig = self['ptsrcsig'].real()
77 90
78 # Get the cube centre coordinates 91 # Get the cube centre coordinates
79 - self.cubegen['coordsys'].string( self['coordsys'].string() ) 92 + self.cubegen['coordsys'].string(self['coordsys'].string())
80 if self['coordsys'].string() == 'CEL': 93 if self['coordsys'].string() == 'CEL':
81 - # Center in celestial coordinates  
82 - self.cubegen['xref'].real( self['ra'].real() )  
83 - self.cubegen['yref'].real( self['dec'].real() ) 94 + self.cubegen['xref'].real(self['ra'].real())
  95 + self.cubegen['yref'].real(self['dec'].real())
84 else: 96 else:
85 - # Otherwise assume center in galactic coordinates  
86 - self.cubegen['xref'].real( self['glon'].real() )  
87 - self.cubegen['yref'].real( self['glat'].real() ) 97 + self.cubegen['xref'].real(self['glon'].real())
  98 + self.cubegen['yref'].real(self['glat'].real())
88 99
89 # Get spatial binning parameters 100 # Get spatial binning parameters
90 - self.cubegen['binsz'].real( self['binsz'].real() )  
91 - self.cubegen['nxpix'].integer( self['nxpix'].integer() )  
92 - self.cubegen['nypix'].integer( self['nypix'].integer() )  
93 - self.cubegen['proj'].string( self['proj'].string() ) 101 + self.cubegen['binsz'].real(self['binsz'].real())
  102 + self.cubegen['nxpix'].integer(self['nxpix'].integer())
  103 + self.cubegen['nypix'].integer(self['nypix'].integer())
  104 + self.cubegen['proj'].string(self['proj'].string())
94 105
95 # Get the energy binning parameters 106 # Get the energy binning parameters
96 - self.cubegen['ebinalg'].string( self['ebinalg'].string() )  
97 - if self['ebinalg'].string() == "FILE":  
98 - # Read energy binning from a file  
99 - self.cubegen['ebinfile'].filename( self['ebinfile'].filename() ) 107 + self.cubegen['ebinalg'].string(self['ebinalg'].string())
  108 + if self['ebinalg'].string() == 'FILE':
  109 + self.cubegen['ebinfile'].filename(self['ebinfile'].filename())
100 else: 110 else:
101 - # Create the energy binning information  
102 - self.cubegen['emin'].real( self['emin'].real() )  
103 - self.cubegen['emax'].real( self['emax'].real() )  
104 - self.cubegen['enumbins'].integer( self['enumbins'].integer() ) 111 + self.cubegen['emin'].real(self['emin'].real())
  112 + self.cubegen['emax'].real(self['emax'].real())
  113 + self.cubegen['enumbins'].integer(self['enumbins'].integer())
105 114
106 # Get remaining hidden parameters 115 # Get remaining hidden parameters
107 - self.cubegen['ptsrcsig'].real( self['ptsrcsig'].real() ) 116 + self.cubegen['ptsrcsig'].real(ptsrcsig)
108 117
109 # Read optionally output cube filenames 118 # Read optionally output cube filenames
110 if self._read_ahead(): 119 if self._read_ahead():
111 - self.cubegen['outcube'].filename( self['outcube'].filename() )  
112 - self['soilist'].string() 120 + self.cubegen['outcube'].filename(self['outcube'].filename())
113 self['outmodel'].filename() 121 self['outmodel'].filename()
114 122
115 # Write parameters into logger 123 # Write parameters into logger
@@ -117,11 +125,9 @@ class csmodelsois(ctools.cscript): @@ -117,11 +125,9 @@ class csmodelsois(ctools.cscript):
117 125
118 return 126 return
119 127
120 -  
121 def _gen_cubemodel(self): 128 def _gen_cubemodel(self):
122 """ 129 """
123 Generates a binned model from the model file using ctmapcube 130 Generates a binned model from the model file using ctmapcube
124 - returns: updated model filename  
125 """ 131 """
126 # Get a list of sources we DONT want to put into the cube 132 # Get a list of sources we DONT want to put into the cube
127 sources = self['soilist'].string().split(',') 133 sources = self['soilist'].string().split(',')
@@ -129,52 +135,32 @@ class csmodelsois(ctools.cscript): @@ -129,52 +135,32 @@ class csmodelsois(ctools.cscript):
129 # Load the model into a model container 135 # Load the model into a model container
130 if (self.m_models.size() == 0): 136 if (self.m_models.size() == 0):
131 self.m_models = gammalib.GModels(self['inmodel'].filename()) 137 self.m_models = gammalib.GModels(self['inmodel'].filename())
132 - 138 +
  139 + # Store a copy of the models
133 self.cubemodels = self.m_models.copy() 140 self.cubemodels = self.m_models.copy()
134 141
135 # Loop through models and pull out all models not in the list 142 # Loop through models and pull out all models not in the list
136 models2remove = [] 143 models2remove = []
137 for model in self.m_models: 144 for model in self.m_models:
138 - # Convert the model to a GModelSky  
139 - mod = model.classname()  
140 145
141 - # Check the model  
142 - if mod != "GModelSky":  
143 - # Model is most likely a background model, so continue 146 + # If model is not a sky model then continue
  147 + if model.classname() != 'GModelSky':
144 self.cubemodels.remove(model.name()) 148 self.cubemodels.remove(model.name())
  149 +
  150 + # ... otherwise, if model is in list of sources the remove it
  151 + # from the container
145 elif model.name() in sources: 152 elif model.name() in sources:
146 - # Model is a source of interest, so remove it from list of models  
147 - # to be used in generating the cube  
148 self.cubemodels.remove(model.name()) 153 self.cubemodels.remove(model.name())
149 154
150 # Log the number of models to be put into the cube 155 # Log the number of models to be put into the cube
151 - self._log_value(self['chatter'].integer(), 'Cube models', self.cubemodels.size())  
152 -  
153 - return  
154 -  
155 -  
156 - def mapcube(self):  
157 - """  
158 - Return the mapcube generated by the underlying 'ctmapcube' object  
159 - """  
160 - return self.cubegen.mapcube() 156 + self._log_value(self['chatter'].integer(), 'Numner of cube models',
  157 + self.cubemodels.size())
161 158
162 -  
163 - def cubemodelname(self):  
164 - """  
165 - Return the name to be given to the cube model in the output XML file  
166 - """  
167 - return "FixedSourcesCube"  
168 -  
169 -  
170 - def models(self, models:gammalib.GModels):  
171 - """  
172 - Set the models for analysis  
173 - """  
174 - self.m_models = models 159 + # Return
175 return 160 return
176 161
177 162
  163 + # Public methods
178 def run(self): 164 def run(self):
179 """ 165 """
180 Implements the actual bulk of the script's tasks 166 Implements the actual bulk of the script's tasks
@@ -184,41 +170,62 @@ class csmodelsois(ctools.cscript): @@ -184,41 +170,62 @@ class csmodelsois(ctools.cscript):
184 self._log.cout(True) 170 self._log.cout(True)
185 171
186 # Get parameters 172 # Get parameters
187 - self._set_cube_parameters() 173 + self._get_parameters()
188 174
189 # Set the models to put into the cube 175 # Set the models to put into the cube
190 self._gen_cubemodel() 176 self._gen_cubemodel()
191 177
192 # Only run if there still models to be filled into the cube 178 # Only run if there still models to be filled into the cube
193 if not self.cubemodels.is_empty(): 179 if not self.cubemodels.is_empty():
194 - self._log_string(gammalib.NORMAL, 'Generting model cube') 180 +
  181 + # Log action
  182 + self._log_string(gammalib.NORMAL, 'Generating model cube')
195 183
196 # Fill the cube models into the ctmapcube object 184 # Fill the cube models into the ctmapcube object
197 - self.cubegen.models( self.cubemodels ) 185 + self.cubegen.models(self.cubemodels)
198 186
199 # Run the map generating method 187 # Run the map generating method
200 self.cubegen.run() 188 self.cubegen.run()
201 189
202 else: 190 else:
203 - self._log_string(gammalib.NORMAL, 'List of models is empty, nothing will be done') 191 + self._log_string(gammalib.NORMAL,
  192 + 'List of models is empty, nothing will be done')
204 193
  194 + # Return
205 return 195 return
206 196
  197 + def execute(self):
  198 + """
  199 + Execute the script
  200 + """
  201 + # Open logfile
  202 + self.logFileOpen()
  203 +
  204 + # Read ahead output parameters
  205 + self._read_ahead(True)
  206 +
  207 + # Run the script
  208 + self.run()
  209 +
  210 + # Save model
  211 + self.save()
  212 +
  213 + # Return
  214 + return
207 215
208 def save(self): 216 def save(self):
209 """ 217 """
210 Save the cube and optionally the updated XML model file 218 Save the cube and optionally the updated XML model file
211 """ 219 """
212 - #cube = gammalib.GModelSpatialDiffuseCube(self.cubegen.mapcube())  
213 -  
214 # Save the generated cube if the cube and filename are not empty 220 # Save the generated cube if the cube and filename are not empty
215 if ((not self.cubegen.mapcube().cube().is_empty()) and 221 if ((not self.cubegen.mapcube().cube().is_empty()) and
216 self._is_valid_filename(self['outcube'].filename())): 222 self._is_valid_filename(self['outcube'].filename())):
217 -  
218 - self.cubegen.mapcube().save( self['outcube'].filename(), self['clobber'].boolean() ) 223 + self.cubegen.mapcube().save(self['outcube'].filename(),
  224 + self['clobber'].boolean())
219 225
220 # If requested, save the updated list of models 226 # If requested, save the updated list of models
221 - if self._is_valid_filename( self['outmodel'].filename() ): 227 + if self._is_valid_filename(self['outmodel'].filename()):
  228 +
222 # Generate a list of models that will be output to file 229 # Generate a list of models that will be output to file
223 outmodels = gammalib.GModels(self.m_models) 230 outmodels = gammalib.GModels(self.m_models)
224 231
@@ -227,35 +234,47 @@ class csmodelsois(ctools.cscript): @@ -227,35 +234,47 @@ class csmodelsois(ctools.cscript):
227 outmodels.remove(model.name()) 234 outmodels.remove(model.name())
228 235
229 # Generate the actual cube model 236 # Generate the actual cube model
230 - spat = gammalib.GModelSpatialDiffuseCube( self['outcube'].filename() ) 237 + spat = gammalib.GModelSpatialDiffuseCube(self['outcube'].filename())
231 spec = gammalib.GModelSpectralConst() 238 spec = gammalib.GModelSpectralConst()
232 newmodel = gammalib.GModelSky(spat, spec) 239 newmodel = gammalib.GModelSky(spat, spec)
233 240
234 # Give the model a default name 241 # Give the model a default name
235 - newmodel.name( self.cubemodelname() ) 242 + newmodel.name(self.cubemodelname())
236 243
237 # Now append the model to the list of output models 244 # Now append the model to the list of output models
238 outmodels.append(newmodel) 245 outmodels.append(newmodel)
239 246
240 # Save the model list 247 # Save the model list
241 - outmodels.save( self['outmodel'].filename() ) 248 + outmodels.save(self['outmodel'].filename())
242 249
  250 + # Return
243 return 251 return
244 252
  253 + def mapcube(self):
  254 + """
  255 + Return the mapcube generated by the underlying 'ctmapcube' object
  256 + """
  257 + # Return
  258 + return self.cubegen.mapcube()
245 259
246 - def execute(self): 260 + def cubemodelname(self):
247 """ 261 """
248 - Execute the script 262 + Return the name to be given to the cube model in the output XML file
249 """ 263 """
250 - # Open logfile  
251 - self.logFileOpen() 264 + # Return
  265 + return 'FixedSourcesCube'
252 266
253 - # Read ahead output parameters  
254 - self._read_ahead(True) 267 + def models(self, models):
  268 + """
  269 + Set the models
255 270
256 - # Run the script  
257 - self.run()  
258 - self.save() 271 + Parameters
  272 + -------
  273 + models : `~gammalib.GModels`
  274 + Model container
  275 + """
  276 + # Set models
  277 + self.m_models = models
259 278
260 # Return 279 # Return
261 return 280 return
doc/source/admin/release_history/1.5.rst
@@ -28,5 +28,7 @@ Improvements @@ -28,5 +28,7 @@ Improvements
28 New features 28 New features
29 ------------ 29 ------------
30 30
  31 +* [`2180 <https://cta-redmine.irap.omp.eu/issues/2180>`_] -
  32 + Add :ref:`csmodelsois` script
31 * [`1864 <https://cta-redmine.irap.omp.eu/issues/1864>`_] - 33 * [`1864 <https://cta-redmine.irap.omp.eu/issues/1864>`_] -
32 Use t-type parameters for all ``tmin`` and ``tmax`` parameters 34 Use t-type parameters for all ``tmin`` and ``tmax`` parameters
doc/source/users/reference_manual/csmodelsois.rst
@@ -35,7 +35,7 @@ General parameters @@ -35,7 +35,7 @@ General parameters
35 Input model XML file. 35 Input model XML file.
36 36
37 ``outmodel [file]`` 37 ``outmodel [file]``
38 - Output model XML file (not generated if set to 'NONE'). 38 + Output model XML file (not generated if set to ``NONE``).
39 39
40 ``outcube [file]`` 40 ``outcube [file]``
41 Output map cube file. 41 Output map cube file.
@@ -48,37 +48,37 @@ General parameters @@ -48,37 +48,37 @@ General parameters
48 48
49 ``ebinalg <FILE|LIN|LOG> [string]`` 49 ``ebinalg <FILE|LIN|LOG> [string]``
50 Algorithm for defining energy bins. 50 Algorithm for defining energy bins.
51 - 51 +
52 ``emin [real]`` 52 ``emin [real]``
53 Lower energy value for first energy bin (in TeV). 53 Lower energy value for first energy bin (in TeV).
54 - 54 +
55 ``emax [real]`` 55 ``emax [real]``
56 Upper energy value for last energy bin (in TeV). 56 Upper energy value for last energy bin (in TeV).
57 - 57 +
58 ``enumbins [integer]`` 58 ``enumbins [integer]``
59 Number of energy bins. 59 Number of energy bins.
60 - 60 +
61 ``ebinfile [file]`` 61 ``ebinfile [file]``
62 Name of the file containing the energy bin definition. 62 Name of the file containing the energy bin definition.
63 - 63 +
64 ``nxpix [integer]`` 64 ``nxpix [integer]``
65 Number of cube bins in Right Ascension or Galactic longitude. 65 Number of cube bins in Right Ascension or Galactic longitude.
66 - 66 +
67 ``nypix [integer]`` 67 ``nypix [integer]``
68 Number of cube bins in Declination or Galactic latitude. 68 Number of cube bins in Declination or Galactic latitude.
69 - 69 +
70 ``binsz [real]`` 70 ``binsz [real]``
71 Image scale (in degrees/pixel). 71 Image scale (in degrees/pixel).
72 - 72 +
73 ``coordsys <CEL|GAL> [string]`` 73 ``coordsys <CEL|GAL> [string]``
74 Coordinate system (CEL - celestial, GAL - galactic). 74 Coordinate system (CEL - celestial, GAL - galactic).
75 - 75 +
76 ``proj <AIT|AZP|CAR|GLS|MER|MOL|SFL|SIN|STG|TAN> [string]`` 76 ``proj <AIT|AZP|CAR|GLS|MER|MOL|SFL|SIN|STG|TAN> [string]``
77 Projection method. 77 Projection method.
78 - 78 +
79 ``ra [real]`` 79 ``ra [real]``
80 Right Ascension of cube centre (J2000, in degrees). 80 Right Ascension of cube centre (J2000, in degrees).
81 - 81 +
82 ``dec [real]`` 82 ``dec [real]``
83 Declination of cube centre (J2000, in degrees). 83 Declination of cube centre (J2000, in degrees).
84 84
@@ -88,6 +88,7 @@ General parameters @@ -88,6 +88,7 @@ General parameters
88 ``glat [real]`` 88 ``glat [real]``
89 Galactic latitude of cube centre (in degrees). 89 Galactic latitude of cube centre (in degrees).
90 90
  91 +
91 Standard parameters 92 Standard parameters
92 ------------------- 93 -------------------
93 94
@@ -97,21 +98,21 @@ Standard parameters @@ -97,21 +98,21 @@ Standard parameters
97 ``(chatter = 2) [integer]`` 98 ``(chatter = 2) [integer]``
98 Verbosity of the executable: 99 Verbosity of the executable:
99 ``chatter = 0``: no information will be logged 100 ``chatter = 0``: no information will be logged
100 - 101 +
101 ``chatter = 1``: only errors will be logged 102 ``chatter = 1``: only errors will be logged
102 - 103 +
103 ``chatter = 2``: errors and actions will be logged 104 ``chatter = 2``: errors and actions will be logged
104 - 105 +
105 ``chatter = 3``: report about the task execution 106 ``chatter = 3``: report about the task execution
106 - 107 +
107 ``chatter = 4``: detailed report about the task execution 108 ``chatter = 4``: detailed report about the task execution
108 - 109 +
109 ``(clobber = yes) [boolean]`` 110 ``(clobber = yes) [boolean]``
110 Specifies whether an existing output counts cube file should be overwritten. 111 Specifies whether an existing output counts cube file should be overwritten.
111 - 112 +
112 ``(debug = no) [boolean]`` 113 ``(debug = no) [boolean]``
113 Enables debug mode. In debug mode the executable will dump any log file output to the console. 114 Enables debug mode. In debug mode the executable will dump any log file output to the console.
114 - 115 +
115 ``(mode = ql) [string]`` 116 ``(mode = ql) [string]``
116 Mode of automatic parameters (default is "ql", i.e. "query and learn"). 117 Mode of automatic parameters (default is "ql", i.e. "query and learn").
117 118
@@ -122,4 +123,4 @@ Standard parameters @@ -122,4 +123,4 @@ Standard parameters
122 Related tools or scripts 123 Related tools or scripts
123 ------------------------ 124 ------------------------
124 125
125 -ctmapcube  
126 \ No newline at end of file 126 \ No newline at end of file
  127 +:ref:`ctmapcube`
doc/source/users/reference_manual/ctmapcube.rst
@@ -36,40 +36,40 @@ General parameters @@ -36,40 +36,40 @@ General parameters
36 36
37 ``ebinalg <FILE|LIN|LOG> [string]`` 37 ``ebinalg <FILE|LIN|LOG> [string]``
38 Algorithm for defining energy bins. 38 Algorithm for defining energy bins.
39 - 39 +
40 ``emin [real]`` 40 ``emin [real]``
41 Lower energy value for first energy bin (in TeV). 41 Lower energy value for first energy bin (in TeV).
42 - 42 +
43 ``emax [real]`` 43 ``emax [real]``
44 Upper energy value for last energy bin (in TeV). 44 Upper energy value for last energy bin (in TeV).
45 - 45 +
46 ``enumbins [integer]`` 46 ``enumbins [integer]``
47 Number of energy bins. 47 Number of energy bins.
48 - 48 +
49 ``ebinfile [file]`` 49 ``ebinfile [file]``
50 Name of the file containing the energy bin definition. 50 Name of the file containing the energy bin definition.
51 - 51 +
52 ``nxpix [integer]`` 52 ``nxpix [integer]``
53 Number of cube bins in Right Ascension or Galactic longitude. 53 Number of cube bins in Right Ascension or Galactic longitude.
54 - 54 +
55 ``nypix [integer]`` 55 ``nypix [integer]``
56 Number of cube bins in Declination or Galactic latitude. 56 Number of cube bins in Declination or Galactic latitude.
57 - 57 +
58 ``binsz [real]`` 58 ``binsz [real]``
59 Image scale (in degrees/pixel). 59 Image scale (in degrees/pixel).
60 - 60 +
61 ``coordsys <CEL|GAL> [string]`` 61 ``coordsys <CEL|GAL> [string]``
62 Coordinate system (CEL - celestial, GAL - galactic). 62 Coordinate system (CEL - celestial, GAL - galactic).
63 - 63 +
64 ``proj <AIT|AZP|CAR|GLS|MER|MOL|SFL|SIN|STG|TAN> [string]`` 64 ``proj <AIT|AZP|CAR|GLS|MER|MOL|SFL|SIN|STG|TAN> [string]``
65 Projection method. 65 Projection method.
66 - 66 +
67 ``xref [real]`` 67 ``xref [real]``
68 Right Ascension / Galactic longitude of cube centre (J2000, in degrees). 68 Right Ascension / Galactic longitude of cube centre (J2000, in degrees).
69 - 69 +
70 ``yref [real]`` 70 ``yref [real]``
71 Declination / Galactic latitude of cube centre (J2000, in degrees). 71 Declination / Galactic latitude of cube centre (J2000, in degrees).
72 - 72 +
73 73
74 Standard parameters 74 Standard parameters
75 ------------------- 75 -------------------
@@ -80,21 +80,21 @@ Standard parameters @@ -80,21 +80,21 @@ Standard parameters
80 ``(chatter = 2) [integer]`` 80 ``(chatter = 2) [integer]``
81 Verbosity of the executable: 81 Verbosity of the executable:
82 ``chatter = 0``: no information will be logged 82 ``chatter = 0``: no information will be logged
83 - 83 +
84 ``chatter = 1``: only errors will be logged 84 ``chatter = 1``: only errors will be logged
85 - 85 +
86 ``chatter = 2``: errors and actions will be logged 86 ``chatter = 2``: errors and actions will be logged
87 - 87 +
88 ``chatter = 3``: report about the task execution 88 ``chatter = 3``: report about the task execution
89 - 89 +
90 ``chatter = 4``: detailed report about the task execution 90 ``chatter = 4``: detailed report about the task execution
91 - 91 +
92 ``(clobber = yes) [boolean]`` 92 ``(clobber = yes) [boolean]``
93 Specifies whether an existing output counts cube file should be overwritten. 93 Specifies whether an existing output counts cube file should be overwritten.
94 - 94 +
95 ``(debug = no) [boolean]`` 95 ``(debug = no) [boolean]``
96 Enables debug mode. In debug mode the executable will dump any log file output to the console. 96 Enables debug mode. In debug mode the executable will dump any log file output to the console.
97 - 97 +
98 ``(mode = ql) [string]`` 98 ``(mode = ql) [string]``
99 Mode of automatic parameters (default is "ql", i.e. "query and learn"). 99 Mode of automatic parameters (default is "ql", i.e. "query and learn").
100 100
@@ -105,4 +105,4 @@ Standard parameters @@ -105,4 +105,4 @@ Standard parameters
105 Related tools or scripts 105 Related tools or scripts
106 ------------------------ 106 ------------------------
107 107
108 -csmodelsois 108 +:ref:`csmodelsois`
test/test_csmodelsois.py
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 # ========================================================================== 2 # ==========================================================================
3 # This scripts performs unit tests for the csmodelsois tool. 3 # This scripts performs unit tests for the csmodelsois tool.
4 # 4 #
5 -# Copyright (C) 2016-2017 Juergen Knoedlseder 5 +# Copyright (C) 2017 Josh Cardenzana
6 # 6 #
7 # This program is free software: you can redistribute it and/or modify 7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by 8 # it under the terms of the GNU General Public License as published by
@@ -71,12 +71,12 @@ class Test(test): @@ -71,12 +71,12 @@ class Test(test):
71 71
72 # Setup csmodelsois command 72 # Setup csmodelsois command
73 cmd = csmodelsois+' inmodel="'+self._model+'"'+ \ 73 cmd = csmodelsois+' inmodel="'+self._model+'"'+ \
74 - ' outcube="csmodelsois_cmd1.fits"'+\  
75 - ' emin=0.1 emax=100.0 enumbins=10 ebinalg=LOG'+ \  
76 - ' nxpix=100 nypix=100 binsz=0.04 coordsys=CEL'+ \  
77 - ' soilist="" outmodel=NONE'+ \  
78 - ' ra=83.63 dec=22.01 proj=CAR'+ \  
79 - ' logfile="csmodelsois_cmd1.log" chatter=1' 74 + ' outcube="csmodelsois_cmd1.fits"'+\
  75 + ' emin=0.1 emax=100.0 enumbins=10 ebinalg=LOG'+ \
  76 + ' nxpix=100 nypix=100 binsz=0.04 coordsys=CEL'+ \
  77 + ' soilist="" outmodel=NONE'+ \
  78 + ' ra=83.63 dec=22.01 proj=CAR'+ \
  79 + ' logfile="csmodelsois_cmd1.log" chatter=1'
80 80
81 # Check if execution of wrong command fails 81 # Check if execution of wrong command fails
82 self.test_assert(self._execute('command_that_does_not_exist') != 0, 82 self.test_assert(self._execute('command_that_does_not_exist') != 0,
@@ -91,12 +91,12 @@ class Test(test): @@ -91,12 +91,12 @@ class Test(test):
91 91
92 # Setup csmodelsois command 92 # Setup csmodelsois command
93 cmd = csmodelsois+' inmodel="events_that_do_not_exist.fits"'+ \ 93 cmd = csmodelsois+' inmodel="events_that_do_not_exist.fits"'+ \
94 - ' outcube="ccsmodelsois_cmd2.fits"'+\  
95 - ' emin=0.1 emax=100.0 enumbins=10 ebinalg=LOG'+ \  
96 - ' nxpix=100 nypix=100 binsz=0.04 coordsys=CEL'+ \  
97 - ' soilist="" outmodel=NONE'+ \  
98 - ' ra=83.63 dec=22.01 proj=CAR'+ \  
99 - ' logfile="csmodelsois_cmd2.log"' 94 + ' outcube="ccsmodelsois_cmd2.fits"'+\
  95 + ' emin=0.1 emax=100.0 enumbins=10 ebinalg=LOG'+ \
  96 + ' nxpix=100 nypix=100 binsz=0.04 coordsys=CEL'+ \
  97 + ' soilist="" outmodel=NONE'+ \
  98 + ' ra=83.63 dec=22.01 proj=CAR'+ \
  99 + ' logfile="csmodelsois_cmd2.log"'
100 100
101 # Check if execution failed 101 # Check if execution failed
102 self.test_assert(self._execute(cmd) != 0, 102 self.test_assert(self._execute(cmd) != 0,
@@ -202,7 +202,8 @@ class Test(test): @@ -202,7 +202,8 @@ class Test(test):
202 202
203 # Now check that the output model file doesnt contain a Crab Sources 203 # Now check that the output model file doesnt contain a Crab Sources
204 models3 = gammalib.GModels('csmodelsois_py3.xml') 204 models3 = gammalib.GModels('csmodelsois_py3.xml')
205 - self.test_assert(not models3.contains("Crab"), 'Check Crab model is not present') 205 + self.test_assert(not models3.contains('Crab'),
  206 + 'Check Crab model is not present')
206 self.test_assert(models3.contains(modelsois.cubemodelname()), 207 self.test_assert(models3.contains(modelsois.cubemodelname()),
207 'Check cube model is present') 208 'Check cube model is present')
208 self._check_result_file('csmodelsois_py3.fits') 209 self._check_result_file('csmodelsois_py3.fits')
test/test_python_cscripts.py
@@ -147,7 +147,7 @@ def test(installed=False, debug=False): @@ -147,7 +147,7 @@ def test(installed=False, debug=False):
147 147
148 # Check for VHEFITS environment variable 148 # Check for VHEFITS environment variable
149 if 'VHEFITS' in os.environ: 149 if 'VHEFITS' in os.environ:
150 - 150 +
151 # If the environment variable exists then unset it for the test 151 # If the environment variable exists then unset it for the test
152 # cases. Since Python is executed in a subprocess this will not 152 # cases. Since Python is executed in a subprocess this will not
153 # impact the environment variable in the parent shell. 153 # impact the environment variable in the parent shell.