def make_concentric_annulus_sky_regions(center, radius_max, nbin=11): """Make a list of concentric annulus regions. Parameters ---------- center : `~astropy.coordinates.SkyCoord` Center coordinate radius_max : `~astropy.units.Quantity` Maximum radius. nbin : int Number of boxes along the line Returns ------- regions : list of `~regions.RectangleSkyRegion` Regions in which the profiles are made """ regions = [] edges = np.linspace(0 * u.deg, u.Quantity(radius_max), nbin) for r_in, r_out in zip(edges[:-1], edges[1:]): region = CircleAnnulusSkyRegion( center=center, inner_radius=r_in, outer_radius=r_out, ) regions.append(region) return regions
def to_region(self, **kwargs): """Model outline (`~regions.CircleAnnulusSkyRegion`).""" return CircleAnnulusSkyRegion(center=self.position, inner_radius=self.radius.quantity, outer_radius=self.radius.quantity + self.width.quantity, **kwargs)
def data_reduction_fermi(): log.info(f"data_reduction: fermi") containment_correction = instrument_opts["fermi"]["containment"] radius = instrument_opts["fermi"]["on_radius"] emin = u.Quantity(instrument_opts["fermi"]["emin"]).to_value("TeV") emax = u.Quantity(instrument_opts["fermi"]["emax"]).to_value("TeV") crab_pos = SkyCoord(ra=83.63, dec=22.01, unit="deg", frame="icrs") on_region = CircleSkyRegion(crab_pos, radius=Angle(radius)) off_region = CircleAnnulusSkyRegion(crab_pos, inner_radius=1 * u.deg, outer_radius=2 * u.deg) energy = MapAxis.from_bounds(emin, emax, 36, unit="TeV", name="energy", interp="log") dataset = extract_spectrum_fermi(on_region, off_region, energy, containment_correction) datasets = Datasets([dataset]) datasets.write(f"reduced_fermi", overwrite=True)
def data_reduction_fermi(): log.info(f"data_reduction: fermi") containment_correction = instrument_opts['fermi']['containment'] radius = instrument_opts['fermi']['on_radius'] emin = u.Quantity(instrument_opts['fermi']['emin']).to_value('TeV') emax = u.Quantity(instrument_opts['fermi']['emax']).to_value('TeV') crab_pos = SkyCoord(ra=83.63, dec=22.01, unit='deg', frame='icrs') on_region = CircleSkyRegion(crab_pos, radius=Angle(radius)) off_region = CircleAnnulusSkyRegion(crab_pos, inner_radius=1 * u.deg, outer_radius=2 * u.deg) energy = MapAxis.from_bounds(emin, emax, 36, unit='TeV', name="energy", interp='log') dataset = extract_spectrum_fermi(on_region, off_region, energy, containment_correction) datasets = Datasets([dataset]) datasets.write(f"reduced_fermi", overwrite=True)