def test_compound_region_center(): region_1 = make_region("galactic;circle(1,1,0.1)") region_2 = make_region("galactic;circle(-1,1,0.1)") region_3 = make_region("galactic;circle(1,-1,0.1)") region_4 = make_region("galactic;circle(-1,-1,0.1)") for region in [region_2, region_3, region_4]: region_1 = region_1.union(region) center = compound_region_center(region_1) assert_allclose(center.galactic.l.wrap_at("180d"), 0 * u.deg, atol=1e-6) assert_allclose(center.galactic.b, 0 * u.deg, atol=1e-6)
def test_compound_region_center(): regions_ds9 = ("galactic;" "circle(1,1,0.1);" "circle(-1,1,0.1);" "circle(1,-1,0.1);" "circle(-1,-1,0.1);") regions = Regions.parse(regions_ds9, format="ds9") region = regions_to_compound_region(regions) center = compound_region_center(region) assert_allclose(center.galactic.l.wrap_at("180d"), 0 * u.deg, atol=1e-6) assert_allclose(center.galactic.b, 0 * u.deg, atol=1e-6)
def __init__(self, region, axes=None, wcs=None, binsz_wcs="0.1 deg"): self._region = region self._axes = MapAxes.from_default(axes, n_spatial_axes=2) self._binsz_wcs = binsz_wcs if wcs is None and region is not None: if isinstance(region, CompoundSkyRegion): self._center = compound_region_center(region) else: self._center = region.center wcs = WcsGeom.create( binsz=binsz_wcs, skydir=self._center, proj=self.projection, frame=self._center.frame.name, ).wcs self._wcs = wcs self.ndim = len(self.data_shape) # define cached methods self.get_wcs_coord_and_weights = lru_cache()(self.get_wcs_coord_and_weights)
def test_compound_region_center_single(): region = Regions.parse("galactic;circle(1,1,0.1)", format="ds9")[0] center = compound_region_center(region) assert_allclose(center.galactic.l.wrap_at("180d"), 1 * u.deg, atol=1e-6) assert_allclose(center.galactic.b, 1 * u.deg, atol=1e-6)