Commit c6d08e4c56251e8a0f0e383b42af09ff20f74f37
1 parent
4e528698
Allow setting of regions from FITS files in csphagen
Showing
1 changed file
with
35 additions
and
7 deletions
cscripts/csphagen.py
| @@ -140,6 +140,34 @@ class csphagen(ctools.csobservation): | @@ -140,6 +140,34 @@ class csphagen(ctools.csobservation): | ||
| 140 | # Return | 140 | # Return |
| 141 | return | 141 | return |
| 142 | 142 | ||
| 143 | + def _get_regions(self, filename): | ||
| 144 | + """ | ||
| 145 | + Get regions from DS9 file or FITS file | ||
| 146 | + | ||
| 147 | + Parameters | ||
| 148 | + ---------- | ||
| 149 | + filename : `~gammalib.GFilename` | ||
| 150 | + Filename | ||
| 151 | + | ||
| 152 | + Returns | ||
| 153 | + ------- | ||
| 154 | + regs : `~gammalib.GSkyRegions` | ||
| 155 | + Region container | ||
| 156 | + """ | ||
| 157 | + # If filename is a FITS file then load region map and append to | ||
| 158 | + # list of regions | ||
| 159 | + if filename.is_fits(): | ||
| 160 | + map = gammalib.GSkyRegionMap(filename) | ||
| 161 | + regs = gammalib.GSkyRegions() | ||
| 162 | + regs.append(map) | ||
| 163 | + | ||
| 164 | + # ... otherwise load DS9 file | ||
| 165 | + else: | ||
| 166 | + regs = gammalib.GSkyRegions(filename) | ||
| 167 | + | ||
| 168 | + # Return region container | ||
| 169 | + return regs | ||
| 170 | + | ||
| 143 | def _get_parameters_bkgmethod_reflected(self): | 171 | def _get_parameters_bkgmethod_reflected(self): |
| 144 | """ | 172 | """ |
| 145 | Get parameters for REFLECTED background method | 173 | Get parameters for REFLECTED background method |
| @@ -177,18 +205,18 @@ class csphagen(ctools.csobservation): | @@ -177,18 +205,18 @@ class csphagen(ctools.csobservation): | ||
| 177 | """ | 205 | """ |
| 178 | # Set up source region | 206 | # Set up source region |
| 179 | filename = self['srcregfile'].filename() | 207 | filename = self['srcregfile'].filename() |
| 180 | - self._src_reg = gammalib.GSkyRegions(filename) | 208 | + self._src_reg = self._get_regions(filename) |
| 181 | 209 | ||
| 182 | # Raise an exception if there is more than one source region | 210 | # Raise an exception if there is more than one source region |
| 183 | if len(self._src_reg) != 1: | 211 | if len(self._src_reg) != 1: |
| 184 | raise RuntimeError('Only one On region is allowed') | 212 | raise RuntimeError('Only one On region is allowed') |
| 185 | 213 | ||
| 186 | # Set up source direction. Query parameters if neccessary. | 214 | # Set up source direction. Query parameters if neccessary. |
| 187 | - if isinstance(self._src_reg[0], gammalib.GSkyRegionCircle): | ||
| 188 | - self._src_dir = self._src_reg[0].centre() | ||
| 189 | - self._rad = self._src_reg[0].radius() | ||
| 190 | - else: | ||
| 191 | - self._query_src_direction() | 215 | + #if isinstance(self._src_reg[0], gammalib.GSkyRegionCircle): |
| 216 | + # self._src_dir = self._src_reg[0].centre() | ||
| 217 | + # self._rad = self._src_reg[0].radius() | ||
| 218 | + #else: | ||
| 219 | + # self._query_src_direction() | ||
| 192 | 220 | ||
| 193 | # Make sure that all CTA observations have an Off region by loading the | 221 | # Make sure that all CTA observations have an Off region by loading the |
| 194 | # Off region region the parameter 'bkgregfile' for all CTA observations | 222 | # Off region region the parameter 'bkgregfile' for all CTA observations |
| @@ -197,7 +225,7 @@ class csphagen(ctools.csobservation): | @@ -197,7 +225,7 @@ class csphagen(ctools.csobservation): | ||
| 197 | if obs.classname() == 'GCTAObservation': | 225 | if obs.classname() == 'GCTAObservation': |
| 198 | if obs.off_regions().is_empty(): | 226 | if obs.off_regions().is_empty(): |
| 199 | filename = self['bkgregfile'].filename() | 227 | filename = self['bkgregfile'].filename() |
| 200 | - regions = gammalib.GSkyRegions(filename) | 228 | + regions = self._get_regions(filename) |
| 201 | obs.off_regions(regions) | 229 | obs.off_regions(regions) |
| 202 | 230 | ||
| 203 | # Return | 231 | # Return |