예제 #1
0
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
예제 #2
0
 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)
예제 #3
0
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)
예제 #4
0
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)