Error with list of exclusion regions in the 3D case with gammapy 1.2
Closed this issue · 2 comments
mdebony commented
An exception is raised when provided a list of exclusion region when using gammapy 1.2.
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/cProfile.py", line 191, in <module>
main()
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/cProfile.py", line 180, in main
runctx(code, globs, None, options.outfile, options.sort)
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/cProfile.py", line 20, in runctx
return _pyprofile._Utils(Profile).runctx(statement, globals, locals,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/profile.py", line 63, in runctx
prof.runctx(statement, globals, locals)
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/cProfile.py", line 101, in runctx
exec(cmd, globals, locals)
File "Test3DFull_HESS.py", line 24, in <module>
a = acceptance_creator.create_acceptance_map_per_observation(obs_collection, zenith_binning=True, zenith_interpolation=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/post_doc_cea/bkgmodel/test_dev/acceptance_modelisation/base_acceptance_map_creator.py", line 981, in create_acceptance_map_per_observation
acceptance_map = self.create_acceptance_map_cos_zenith_interpolated(observations=observations,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/post_doc_cea/bkgmodel/test_dev/acceptance_modelisation/base_acceptance_map_creator.py", line 902, in create_acceptance_map_cos_zenith_interpolated
dict_binned_model = base_model or self.create_model_cos_zenith_binned(off_observations)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/post_doc_cea/bkgmodel/test_dev/acceptance_modelisation/base_acceptance_map_creator.py", line 636, in create_model_cos_zenith_binned
binned_model = [self.create_acceptance_map(binned_obs) for binned_obs in binned_observations]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/post_doc_cea/bkgmodel/test_dev/acceptance_modelisation/base_acceptance_map_creator.py", line 636, in <listcomp>
binned_model = [self.create_acceptance_map(binned_obs) for binned_obs in binned_observations]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/post_doc_cea/bkgmodel/test_dev/acceptance_modelisation/grid3d_acceptance_map_creator.py", line 210, in create_acceptance_map
count_map_background, exp_map_background, exp_map_background_total, livetime = self._create_base_computation_map(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/post_doc_cea/bkgmodel/test_dev/acceptance_modelisation/base_acceptance_map_creator.py", line 369, in _create_base_computation_map
geom = RegionGeom.from_regions(self.exclude_regions)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/site-packages/gammapy/maps/region/geom.py", line 747, in from_regions
return cls(region=regions, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/site-packages/gammapy/maps/region/geom.py", line 95, in __init__
width=tuple(self.width),
^^^^^^^^^^
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/site-packages/gammapy/maps/region/geom.py", line 165, in width
rectangle = self._rectangle_bbox
^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/site-packages/astropy/utils/decorators.py", line 837, in __get__
val = self.fget(obj)
^^^^^^^^^^^^^^
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/site-packages/gammapy/maps/region/geom.py", line 142, in _rectangle_bbox
bbox = regions_pix[0].bounding_box
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/site-packages/regions/shapes/circle.py", line 103, in bounding_box
return RegionBoundingBox.from_float(xmin, xmax, ymin, ymax)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/md274436/software/miniforge3/envs/gammapy-analysis/lib/python3.11/site-packages/regions/core/bounding_box.py", line 118, in from_float
ixmin = int(np.floor(xmin + 0.5))
^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: cannot convert float NaN to integer
gabemery commented
This feels like a gammapy bug since from_region supports list even in 1.2
@classmethod
def from_regions(cls, regions, **kwargs):
"""Create region geometry from list of regions.
The regions are combined with union to a compound region.
Parameters
----------
regions : list of `~regions.SkyRegion` or str
Regions.