Commit 9968f648f0b2dbbc39d83e0ea0271b1392ed6148
Committed by
Luigi Tibaldo
1 parent
597dbdd3
Add exclusion_map() methods to ctskymap, csphagen, cslightcrv and csphasecrv (#2725)
Showing
10 changed files
with
98 additions
and
76 deletions
ChangeLog
| ... | ... | @@ -5,6 +5,8 @@ |
| 5 | 5 | |
| 6 | 6 | ctbkgcube now requires an input counts cube (#2763) |
| 7 | 7 | CTA background rates are now per ontime (#2758) |
| 8 | + Add exclusion_map() methods to ctskymap, csphagen, cslightcrv and | |
| 9 | + csphasecrv (#2725) | |
| 8 | 10 | Apply event bin weighting in ctmodel for stacked computation (#2721) |
| 9 | 11 | Enable ctbin to produce counts cubes for a joint binned analysis (#2714) |
| 10 | 12 | Add ctfindvar tool (#2713) | ... | ... |
NEWS
| ... | ... | @@ -203,6 +203,8 @@ of the input observations (#2054). |
| 203 | 203 | |
| 204 | 204 | ctskymap - CTA sky mapping |
| 205 | 205 | -------------------------- |
| 206 | +Add exclusion_map() methods (#2725) | |
| 207 | + | |
| 206 | 208 | Add the "inmap", "iterations" and "threshold" parameters. The hidden |
| 207 | 209 | "inmap" parameter allows specifying a sky map file containing a "COUNTS" |
| 208 | 210 | and "ACCEPTANCE" extension which avoids looping over event lists in an |
| ... | ... | @@ -281,6 +283,8 @@ None |
| 281 | 283 | |
| 282 | 284 | cslightcrv - Generate light curve |
| 283 | 285 | --------------------------------- |
| 286 | +Add exclusion_map() methods (#2725) | |
| 287 | + | |
| 284 | 288 | Add hidden "use_model_bkg" parameter for forwarding to csphagen. |
| 285 | 289 | |
| 286 | 290 | Add hidden "nthreads" parameter and implement parallelisation of light |
| ... | ... | @@ -334,6 +338,8 @@ Use time reference of input observations if time selection is given in MET |
| 334 | 338 | |
| 335 | 339 | csphagen - Generate On/Off observations |
| 336 | 340 | --------------------------------------- |
| 341 | +Add exclusion_map() methods (#2725) | |
| 342 | + | |
| 337 | 343 | A "outmodel" parameter was added and the script now produces an appropriate |
| 338 | 344 | background model for maximum likelihood model fitting. The script now also |
| 339 | 345 | sets the appropriate fit statistic depending on the "use_model_bkg" parameter |
| ... | ... | @@ -367,6 +373,8 @@ tutorial was added to the user documentation (#2404). |
| 367 | 373 | |
| 368 | 374 | csphasecrv - Generate phase curve |
| 369 | 375 | --------------------------------- |
| 376 | +Add exclusion_map() methods (#2725) | |
| 377 | + | |
| 370 | 378 | Add hidden "nthreads" parameter and implement parallelisation of computations |
| 371 | 379 | (#2421). |
| 372 | 380 | ... | ... |
cscripts/cslightcrv.py
| ... | ... | @@ -79,7 +79,7 @@ class cslightcrv(ctools.csobservation): |
| 79 | 79 | self._stacked = False |
| 80 | 80 | self._fits = gammalib.GFits() |
| 81 | 81 | self._nthreads = 0 |
| 82 | - self._excl_reg_map = None # Exclusion region map for on/off analysis | |
| 82 | + self._excl_reg_map = None # Exclusion region map for on/off analysis | |
| 83 | 83 | |
| 84 | 84 | # Return |
| 85 | 85 | return |
| ... | ... | @@ -736,26 +736,30 @@ class cslightcrv(ctools.csobservation): |
| 736 | 736 | # Return |
| 737 | 737 | return |
| 738 | 738 | |
| 739 | - def exclregmap(self, regmapobj=None): | |
| 739 | + def exclusion_map(self, object): | |
| 740 | 740 | """ |
| 741 | - Access exclusion region map object | |
| 741 | + Set exclusion regions map | |
| 742 | 742 | |
| 743 | 743 | Parameters |
| 744 | 744 | ---------- |
| 745 | - regmapobj : `~gammalib.GSkyRegionMap` | |
| 746 | - Excluded regions region map instance | |
| 745 | + object : `~gammalib.GSkyRegion` or `~gammalib.GSkyMap` or `~gammalib.GFilename` | |
| 746 | + Exclusion regions object | |
| 747 | + """ | |
| 748 | + # Set exclusion region map | |
| 749 | + self._excl_reg_map = gammalib.GSkyRegionMap(object) | |
| 750 | + | |
| 751 | + # Return | |
| 752 | + return | |
| 753 | + | |
| 754 | + def exclusion_map(self): | |
| 755 | + """ | |
| 756 | + Get exclusion regions map | |
| 747 | 757 | |
| 748 | 758 | Returns |
| 749 | 759 | ------- |
| 750 | - reg : `~gammalib.GSkyRegionMap` | |
| 751 | - Excluded regions region map instance | |
| 760 | + region : `~gammalib.GSkyRegionMap` | |
| 761 | + Exclusion regions map | |
| 752 | 762 | """ |
| 753 | - # Check if exclusion map object was provided | |
| 754 | - if regmapobj is not None: | |
| 755 | - | |
| 756 | - # Set exclusion region map | |
| 757 | - self._excl_reg_map = gammalib.GSkyRegionMap(regmapobj) | |
| 758 | - | |
| 759 | 763 | # Return |
| 760 | 764 | return self._excl_reg_map |
| 761 | 765 | ... | ... |
cscripts/csphagen.py
| ... | ... | @@ -829,29 +829,30 @@ class csphagen(ctools.csobservation): |
| 829 | 829 | # Return |
| 830 | 830 | return |
| 831 | 831 | |
| 832 | - def exclregmap(self, regmapobj=None): | |
| 832 | + def exclusion_map(self, object): | |
| 833 | 833 | """ |
| 834 | - Access exclusion region map object | |
| 834 | + Set exclusion regions map | |
| 835 | 835 | |
| 836 | 836 | Parameters |
| 837 | 837 | ---------- |
| 838 | - regmapobj : `~gammalib.GSkyRegionMap` | |
| 839 | - Excluded regions region map instance | |
| 840 | - | |
| 841 | - Returns | |
| 842 | - ------- | |
| 843 | - reg : `~gammalib.GSkyRegionMap` | |
| 844 | - Excluded regions region map instance | |
| 838 | + object : `~gammalib.GSkyRegion` or `~gammalib.GSkyMap` or `~gammalib.GFilename` | |
| 839 | + Exclusion regions object | |
| 845 | 840 | """ |
| 846 | - # Check if exclusion map object was provided | |
| 847 | - if regmapobj is not None: | |
| 841 | + # Set exclusion region map | |
| 842 | + self._excl_reg = gammalib.GSkyRegionMap(object) | |
| 848 | 843 | |
| 849 | - # Set exclusion region map | |
| 850 | - self._excl_reg = gammalib.GSkyRegionMap(regmapobj) | |
| 844 | + # Return | |
| 845 | + return | |
| 851 | 846 | |
| 852 | - # Set has exclusion to yes | |
| 853 | - self._has_exclusion = True | |
| 847 | + def exclusion_map(self): | |
| 848 | + """ | |
| 849 | + Get exclusion regions map | |
| 854 | 850 | |
| 851 | + Returns | |
| 852 | + ------- | |
| 853 | + region : `~gammalib.GSkyRegionMap` | |
| 854 | + Exclusion regions map | |
| 855 | + """ | |
| 855 | 856 | # Return |
| 856 | 857 | return self._excl_reg |
| 857 | 858 | ... | ... |
cscripts/csphasecrv.py
| ... | ... | @@ -69,7 +69,7 @@ class csphasecrv(ctools.csobservation): |
| 69 | 69 | self._fits = gammalib.GFits() |
| 70 | 70 | self._fitmodels = {} |
| 71 | 71 | self._nthreads = 0 |
| 72 | - self._excl_reg_map = None # Exclusion region map for on/off analysis | |
| 72 | + self._excl_reg_map = None # Exclusion region map for on/off analysis | |
| 73 | 73 | |
| 74 | 74 | # Return |
| 75 | 75 | return |
| ... | ... | @@ -548,26 +548,30 @@ class csphasecrv(ctools.csobservation): |
| 548 | 548 | # Return |
| 549 | 549 | return self._fitmodels |
| 550 | 550 | |
| 551 | - def exclregmap(self, regmapobj=None): | |
| 551 | + def exclusion_map(self, object): | |
| 552 | 552 | """ |
| 553 | - Access exclusion region map object | |
| 553 | + Set exclusion regions map | |
| 554 | 554 | |
| 555 | 555 | Parameters |
| 556 | 556 | ---------- |
| 557 | - regmapobj : `~gammalib.GSkyRegionMap` | |
| 558 | - Excluded regions region map instance | |
| 557 | + object : `~gammalib.GSkyRegion` or `~gammalib.GSkyMap` or `~gammalib.GFilename` | |
| 558 | + Exclusion regions object | |
| 559 | + """ | |
| 560 | + # Set exclusion region map | |
| 561 | + self._excl_reg_map = gammalib.GSkyRegionMap(object) | |
| 562 | + | |
| 563 | + # Return | |
| 564 | + return | |
| 565 | + | |
| 566 | + def exclusion_map(self): | |
| 567 | + """ | |
| 568 | + Get exclusion regions map | |
| 559 | 569 | |
| 560 | 570 | Returns |
| 561 | 571 | ------- |
| 562 | - reg : `~gammalib.GSkyRegionMap` | |
| 563 | - Excluded regions region map instance | |
| 572 | + region : `~gammalib.GSkyRegionMap` | |
| 573 | + Exclusion regions map | |
| 564 | 574 | """ |
| 565 | - # Check if exclusion map object was provided | |
| 566 | - if regmapobj is not None: | |
| 567 | - | |
| 568 | - # Set exclusion region map | |
| 569 | - self._excl_reg_map = gammalib.GSkyRegionMap(regmapobj) | |
| 570 | - | |
| 571 | 575 | # Return |
| 572 | 576 | return self._excl_reg_map |
| 573 | 577 | ... | ... |
cscripts/obsutils.py
| ... | ... | @@ -815,11 +815,11 @@ def get_onoff_obs(cls, obs, nthreads=0): |
| 815 | 815 | phagen['debug'] = cls['debug'].boolean() |
| 816 | 816 | phagen['nthreads'] = nthreads |
| 817 | 817 | |
| 818 | - # Pipe exclusion region map | |
| 819 | - if hasattr(cls, 'exclregmap'): | |
| 820 | - excl_reg_map = cls.exclregmap() | |
| 821 | - if excl_reg_map is not None: | |
| 822 | - phagen.exclregmap(excl_reg_map) | |
| 818 | + # Pipe exclusion map | |
| 819 | + if hasattr(cls, 'exclusion_map'): | |
| 820 | + exclusion_map = cls.exclusion_map() | |
| 821 | + if exclusion_map is not None: | |
| 822 | + phagen.exclusion_map(exclusion_map) | |
| 823 | 823 | |
| 824 | 824 | # Run csphagen |
| 825 | 825 | phagen.run() | ... | ... |
doc/source/admin/release_history/1.6.rst
| ... | ... | @@ -46,6 +46,9 @@ Improvements |
| 46 | 46 | |
| 47 | 47 | * [`2763 <https://cta-redmine.irap.omp.eu/issues/2763>`_] - |
| 48 | 48 | :ref:`ctbkgcube` now requires an input counts cube |
| 49 | +* [`2725 <https://cta-redmine.irap.omp.eu/issues/2725>`_] - | |
| 50 | + Add exclusion_map() methods to :ref:`ctskymap`, :ref:`csphagen`, | |
| 51 | + :ref:`cslightcrv` and :ref:`csphasecrv` | |
| 49 | 52 | * [`2714 <https://cta-redmine.irap.omp.eu/issues/2714>`_] - |
| 50 | 53 | Enable :ref:`ctbin` to produce counts cubes for a joint binned analysis. |
| 51 | 54 | Rename ``outcube`` to ``outobs`` parameter. | ... | ... |
pyext/ctskymap.i
| 1 | 1 | /*************************************************************************** |
| 2 | 2 | * ctskymap - Sky mapping tool * |
| 3 | 3 | * ----------------------------------------------------------------------- * |
| 4 | - * copyright (C) 2012-2016 by Juergen Knoedlseder * | |
| 4 | + * copyright (C) 2012-2018 by Juergen Knoedlseder * | |
| 5 | 5 | * ----------------------------------------------------------------------- * |
| 6 | 6 | * * |
| 7 | 7 | * This program is free software: you can redistribute it and/or modify * |
| ... | ... | @@ -48,10 +48,9 @@ public: |
| 48 | 48 | void run(void); |
| 49 | 49 | void save(void); |
| 50 | 50 | void publish(const std::string& name = ""); |
| 51 | - | |
| 52 | - void exclmap(const GSkyMap& exclusionmap); | |
| 53 | - const GSkyMap& exclmap(void) const; | |
| 54 | 51 | const GSkyMap& skymap(void) const; |
| 52 | + void exclusion_map(const GSkyRegionMap& exclusion_map); | |
| 53 | + GSkyRegionMap exclusion_map(void) const; | |
| 55 | 54 | }; |
| 56 | 55 | |
| 57 | 56 | ... | ... |
src/ctskymap/ctskymap.cpp
| ... | ... | @@ -337,21 +337,6 @@ void ctskymap::publish(const std::string& name) |
| 337 | 337 | } |
| 338 | 338 | |
| 339 | 339 | |
| 340 | -/***********************************************************************//** | |
| 341 | - * @brief Set the exclusion map | |
| 342 | - * | |
| 343 | - * @param[in] exclmap Exclusion map object. | |
| 344 | - ***************************************************************************/ | |
| 345 | -void ctskymap::exclmap(const GSkyMap& exclusionmap) | |
| 346 | -{ | |
| 347 | - // Assign exclusion map | |
| 348 | - m_exclmap = exclusionmap; | |
| 349 | - | |
| 350 | - // Return | |
| 351 | - return; | |
| 352 | -} | |
| 353 | - | |
| 354 | - | |
| 355 | 340 | /*========================================================================== |
| 356 | 341 | = = |
| 357 | 342 | = Private methods = | ... | ... |
src/ctskymap/ctskymap.hpp
| ... | ... | @@ -60,10 +60,9 @@ public: |
| 60 | 60 | void run(void); |
| 61 | 61 | void save(void); |
| 62 | 62 | void publish(const std::string& name = ""); |
| 63 | - | |
| 64 | - void exclmap(const GSkyMap& exclusionmap); | |
| 65 | - const GSkyMap& exclmap(void) const; | |
| 66 | 63 | const GSkyMap& skymap(void) const; |
| 64 | + void exclusion_map(const GSkyRegionMap& exclusion_map); | |
| 65 | + GSkyRegionMap exclusion_map(void) const; | |
| 67 | 66 | |
| 68 | 67 | protected: |
| 69 | 68 | // Protected methods |
| ... | ... | @@ -135,26 +134,43 @@ protected: |
| 135 | 134 | |
| 136 | 135 | |
| 137 | 136 | /***********************************************************************//** |
| 138 | - * @brief Return exclusion map | |
| 137 | + * @brief Return observation container | |
| 139 | 138 | * |
| 140 | - * @return Reference to exclusion map | |
| 139 | + * @return Reference to observation container | |
| 141 | 140 | ***************************************************************************/ |
| 142 | 141 | inline |
| 143 | -const GSkyMap& ctskymap::exclmap(void) const | |
| 142 | +const GSkyMap& ctskymap::skymap(void) const | |
| 144 | 143 | { |
| 145 | - return m_exclmap; | |
| 144 | + return m_skymap; | |
| 146 | 145 | } |
| 147 | 146 | |
| 148 | 147 | |
| 149 | 148 | /***********************************************************************//** |
| 150 | - * @brief Return observation container | |
| 149 | + * @brief Set exclusion region map | |
| 151 | 150 | * |
| 152 | - * @return Reference to observation container | |
| 151 | + * @param[in] exclusion_map Exclusion region map. | |
| 153 | 152 | ***************************************************************************/ |
| 154 | 153 | inline |
| 155 | -const GSkyMap& ctskymap::skymap(void) const | |
| 154 | +void ctskymap::exclusion_map(const GSkyRegionMap& exclusion_map) | |
| 156 | 155 | { |
| 157 | - return m_skymap; | |
| 156 | + // Assign exclusion map | |
| 157 | + m_exclmap = exclusion_map.map(); | |
| 158 | + | |
| 159 | + // Return | |
| 160 | + return; | |
| 161 | +} | |
| 162 | + | |
| 163 | + | |
| 164 | +/***********************************************************************//** | |
| 165 | + * @brief Return exclusion region map | |
| 166 | + * | |
| 167 | + * @return Exclusion region map | |
| 168 | + ***************************************************************************/ | |
| 169 | +inline | |
| 170 | +GSkyRegionMap ctskymap::exclusion_map(void) const | |
| 171 | +{ | |
| 172 | + GSkyRegionMap exclusion_map(m_exclmap); | |
| 173 | + return exclusion_map; | |
| 158 | 174 | } |
| 159 | 175 | |
| 160 | 176 | #endif /* CTSKYMAP_HPP */ | ... | ... |