Commit 97a1d815997ab4deed432c701b45ee97a371e563

Authored by Jürgen Knödlseder
1 parent 21d6a36b

Add HDUCLASS keywords to csroot2caldb script

Showing 1 changed file with 59 additions and 35 deletions
cscripts/csroot2caldb.py
@@ -111,34 +111,48 @@ class csroot2caldb(ctools.cscript): @@ -111,34 +111,48 @@ class csroot2caldb(ctools.cscript):
111 cal_zenith, cal_azimuth] 111 cal_zenith, cal_azimuth]
112 112
113 # Set IRF information 113 # Set IRF information
114 - irf['CAL_TEL'] = 'CTA'  
115 - irf['CAL_INST'] = self['inst'].string().upper()  
116 - irf['CAL_OBSID'] = self['id'].string()  
117 - irf['CAL_DET'] = 'NONE'  
118 - irf['CAL_FLT'] = 'NONE'  
119 - irf['CAL_CLASS'] = 'BCF'  
120 - irf['CAL_TYPE'] = 'DATA'  
121 - irf['CAL_QUAL'] = 0 # 0=good, 1=bad, 2=dubious, ...  
122 - irf['CAL_DATE'] = '14/01/30'  
123 - irf['VAL_DATE'] = '2014-01-30'  
124 - irf['VAL_TIME'] = '00:00:00'  
125 - irf['REF_TIME'] = 51544.0  
126 - irf['EA_NAME'] = 'EFF_AREA'  
127 - irf['EA_DOC'] = 'CAL/GEN/92-019'  
128 - irf['EA_BOUNDS'] = copy.deepcopy(cal_bounds)  
129 - irf['EA_DESC'] = 'CTA effective area'  
130 - irf['PSF_NAME'] = 'RPSF'  
131 - irf['PSF_DOC'] = 'CAL/GEN/92-020'  
132 - irf['PSF_BOUNDS'] = copy.deepcopy(cal_bounds)  
133 - irf['PSF_DESC'] = 'CTA point spread function'  
134 - irf['EDISP_NAME'] = 'EDISP'  
135 - irf['EDISP_DOC'] = '???'  
136 - irf['EDISP_BOUNDS'] = copy.deepcopy(cal_bounds)  
137 - irf['EDISP_DESC'] = 'CTA energy dispersion'  
138 - irf['BGD_NAME'] = 'BGD'  
139 - irf['BGD_DOC'] = '???'  
140 - irf['BGD_BOUNDS'] = copy.deepcopy(cal_bounds)  
141 - irf['BGD_DESC'] = 'CTA background' 114 + irf['CAL_TEL'] = 'CTA'
  115 + irf['CAL_INST'] = self['inst'].string().upper()
  116 + irf['CAL_OBSID'] = self['id'].string()
  117 + irf['CAL_DET'] = 'NONE'
  118 + irf['CAL_FLT'] = 'NONE'
  119 + irf['CAL_CLASS'] = 'BCF'
  120 + irf['CAL_TYPE'] = 'DATA'
  121 + irf['CAL_QUAL'] = 0 # 0=good, 1=bad, 2=dubious, ...
  122 + irf['CAL_DATE'] = '14/01/30'
  123 + irf['VAL_DATE'] = '2014-01-30'
  124 + irf['VAL_TIME'] = '00:00:00'
  125 + irf['REF_TIME'] = 51544.0
  126 + irf['EA_NAME'] = 'EFF_AREA'
  127 + irf['EA_HDUCLAS3'] = 'FULL-ENCLOSURE'
  128 + irf['EA_HDUCLAS4'] = 'AEFF_2D'
  129 + irf['EA_DOC'] = 'CAL/GEN/92-019'
  130 + irf['EA_BOUNDS'] = copy.deepcopy(cal_bounds)
  131 + irf['EA_DESC'] = 'CTA effective area'
  132 + irf['PSF_NAME'] = 'RPSF'
  133 + irf['PSF_HDUCLAS3'] = 'FULL-ENCLOSURE'
  134 + irf['PSF_HDUCLAS4'] = 'PSF_3GAUSS'
  135 + irf['PSF_DOC'] = 'CAL/GEN/92-020'
  136 + irf['PSF_BOUNDS'] = copy.deepcopy(cal_bounds)
  137 + irf['PSF_DESC'] = 'CTA point spread function'
  138 + irf['EDISP_NAME'] = 'EDISP'
  139 + irf['EDISP_HDUCLAS3'] = 'FULL-ENCLOSURE'
  140 + irf['EDISP_HDUCLAS4'] = 'EDISP_2D'
  141 + irf['EDISP_DOC'] = '???'
  142 + irf['EDISP_BOUNDS'] = copy.deepcopy(cal_bounds)
  143 + irf['EDISP_DESC'] = 'CTA energy dispersion'
  144 + irf['BGD_NAME'] = 'BGD'
  145 + irf['BGD_HDUCLAS3'] = 'FULL-ENCLOSURE'
  146 + irf['BGD_HDUCLAS4'] = 'BKG_3D'
  147 + irf['BGD_DOC'] = '???'
  148 + irf['BGD_BOUNDS'] = copy.deepcopy(cal_bounds)
  149 + irf['BGD_DESC'] = 'CTA background'
  150 +
  151 + # Set parameter dependent IRF information
  152 + if self['psftype'].string() == 'King':
  153 + irf['PSF_HDUCLAS4'] = 'PSF_KING'
  154 + else:
  155 + irf['PSF_HDUCLAS4'] = 'PSF_3GAUSS'
142 156
143 # Return metadata 157 # Return metadata
144 return irf 158 return irf
@@ -268,16 +282,20 @@ class csroot2caldb(ctools.cscript): @@ -268,16 +282,20 @@ class csroot2caldb(ctools.cscript):
268 282
269 # Open HDUs 283 # Open HDUs
270 ds['HDU_EA'] = self._open_hdu(ds['EA_FITS'], "EFFECTIVE AREA", 284 ds['HDU_EA'] = self._open_hdu(ds['EA_FITS'], "EFFECTIVE AREA",
271 - irf['EA_NAME'], irf['EA_DOC'], 285 + irf['EA_NAME'], irf['EA_HDUCLAS3'],
  286 + irf['EA_HDUCLAS4'], irf['EA_DOC'],
272 irf) 287 irf)
273 ds['HDU_PSF'] = self._open_hdu(ds['PSF_FITS'], "POINT SPREAD FUNCTION", 288 ds['HDU_PSF'] = self._open_hdu(ds['PSF_FITS'], "POINT SPREAD FUNCTION",
274 - irf['PSF_NAME'], irf['PSF_DOC'], 289 + irf['PSF_NAME'], irf['PSF_HDUCLAS3'],
  290 + irf['PSF_HDUCLAS4'], irf['PSF_DOC'],
275 irf) 291 irf)
276 ds['HDU_EDISP'] = self._open_hdu(ds['EDISP_FITS'], "ENERGY DISPERSION", 292 ds['HDU_EDISP'] = self._open_hdu(ds['EDISP_FITS'], "ENERGY DISPERSION",
277 - irf['EDISP_NAME'], irf['EDISP_DOC'], 293 + irf['EDISP_NAME'], irf['EDISP_HDUCLAS3'],
  294 + irf['EDISP_HDUCLAS4'], irf['EDISP_DOC'],
278 irf) 295 irf)
279 ds['HDU_BGD'] = self._open_hdu(ds['BGD_FITS'], "BACKGROUND", 296 ds['HDU_BGD'] = self._open_hdu(ds['BGD_FITS'], "BACKGROUND",
280 - irf['BGD_NAME'], irf['BGD_DOC'], 297 + irf['BGD_NAME'], irf['BGD_HDUCLAS3'],
  298 + irf['BGD_HDUCLAS4'], irf['BGD_DOC'],
281 irf) 299 irf)
282 300
283 # Return 301 # Return
@@ -319,7 +337,7 @@ class csroot2caldb(ctools.cscript): @@ -319,7 +337,7 @@ class csroot2caldb(ctools.cscript):
319 # Return 337 # Return
320 return 338 return
321 339
322 - def _open_hdu(self, fits, extname, name, doc, irf): 340 + def _open_hdu(self, fits, extname, name, hduclas3, hduclas4, doc, irf):
323 """ 341 """
324 Open HDU 342 Open HDU
325 343
@@ -334,6 +352,10 @@ class csroot2caldb(ctools.cscript): @@ -334,6 +352,10 @@ class csroot2caldb(ctools.cscript):
334 Extension name 352 Extension name
335 name : str 353 name : str
336 Name string 354 Name string
  355 + hduclas3 : str
  356 + HDU class 3 string
  357 + hduclas4 : str
  358 + HDU class 4 string
337 doc : str 359 doc : str
338 Document string 360 Document string
339 irf : dict 361 irf : dict
@@ -354,7 +376,9 @@ class csroot2caldb(ctools.cscript): @@ -354,7 +376,9 @@ class csroot2caldb(ctools.cscript):
354 table.extname(extname) 376 table.extname(extname)
355 377
356 # Set OGIP keywords 378 # Set OGIP keywords
357 - self._set_ogip_keywords(table, doc, ['RESPONSE', name], irf) 379 + self._set_ogip_keywords(table, doc,
  380 + ['RESPONSE', name, hduclas3, hduclas4],
  381 + irf)
358 382
359 # Append table to FITS file 383 # Append table to FITS file
360 fits.append(table) 384 fits.append(table)
@@ -391,7 +415,7 @@ class csroot2caldb(ctools.cscript): @@ -391,7 +415,7 @@ class csroot2caldb(ctools.cscript):
391 for i, item in enumerate(hduclas): 415 for i, item in enumerate(hduclas):
392 key = 'HDUCLAS%d' % (i+1) 416 key = 'HDUCLAS%d' % (i+1)
393 hdu.card(key, item, 'HDU class') 417 hdu.card(key, item, 'HDU class')
394 - hdu.card('HDUVERS', '1.0.0', 'HDU version') 418 + hdu.card('HDUVERS', '0.2', 'HDU version')
395 419
396 # Return 420 # Return
397 return 421 return