示例#1
0
    def __init__(
        self,
        energy_axis_true,
        rad_axis,
        exposure=None,
        psf_value=None,
        interp_kwargs=None,
    ):
        self._rad_axis = rad_axis
        self._energy_axis_true = energy_axis_true

        axes = MapAxes([energy_axis_true, rad_axis])
        axes.assert_names(["energy_true", "rad"])

        if exposure is None:
            self.exposure = u.Quantity(np.ones(self.energy_axis_true.nbin), "cm^2 s")
        else:
            self.exposure = u.Quantity(exposure).to("cm^2 s")

        if psf_value is None:
            self.psf_value = np.zeros(axes.shape) * u.Unit("sr^-1")
        else:
            if np.shape(psf_value) != axes.shape:
                raise ValueError(
                    "psf_value has wrong shape"
                    f", expected {axes.shape}, got {np.shape(psf_value)}"
                )
            self.psf_value = u.Quantity(psf_value).to("sr^-1")

        self._interp_kwargs = interp_kwargs or {}
示例#2
0
文件: core.py 项目: mcerruti/gammapy
 def __init__(self, axes, data=0, unit="", meta=None):
     axes = MapAxes(axes)
     axes.assert_names(self.required_axes)
     self._axes = axes
     self.data = data
     self.unit = unit
     self.meta = meta or {}
示例#3
0
    def __init__(
            self,
            energy_axis_true,
            offset_axis,
            rad_axis,
            psf_value,
            energy_thresh_lo=u.Quantity(0.1, "TeV"),
            energy_thresh_hi=u.Quantity(100, "TeV"),
            interp_kwargs=None,
    ):

        axes = MapAxes([energy_axis_true, offset_axis, rad_axis])
        axes.assert_names(["energy_true", "offset", "rad"])

        if psf_value.shape != axes.shape:
            raise ValueError("PSF has wrong shape"
                             f", expected {axes.shape}, got {psf_value.shape}")

        self._energy_axis_true = energy_axis_true
        self._offset_axis = offset_axis
        self._rad_axis = rad_axis
        self.psf_value = psf_value.to("sr^-1")
        self.energy_thresh_lo = energy_thresh_lo.to("TeV")
        self.energy_thresh_hi = energy_thresh_hi.to("TeV")

        self._interp_kwargs = interp_kwargs or {}
示例#4
0
    def __init__(
        self,
        axes,
        data=0,
        unit="",
        is_pointlike=False,
        fov_alignment=FoVAlignment.RADEC,
        meta=None,
        interp_kwargs=None,
    ):
        axes = MapAxes(axes)
        axes.assert_names(self.required_axes)
        self._axes = axes
        self._fov_alignment = FoVAlignment(fov_alignment)
        self._is_pointlike = is_pointlike

        if isinstance(data, u.Quantity):
            self.data = data.value
            if not self.default_unit.is_equivalent(data.unit):
                raise ValueError(
                    f"Error: {data.unit} is not an allowed unit. {self.tag} requires {self.default_unit} data quantities."
                )
            else:
                self._unit = data.unit
        else:
            self.data = data
            self._unit = unit
        self.meta = meta or {}
        if interp_kwargs is None:
            interp_kwargs = self.default_interp_kwargs.copy()
        self.interp_kwargs = interp_kwargs
示例#5
0
 def __init__(self, axes, data=0, unit="", meta=None, interp_kwargs=None):
     axes = MapAxes(axes)
     axes.assert_names(self.required_axes)
     self._axes = axes
     self.data = data
     self.unit = unit
     self.meta = meta or {}
     if interp_kwargs is None:
         interp_kwargs = self.default_interp_kwargs.copy()
     self.interp_kwargs = interp_kwargs
示例#6
0
 def __init__(self, axes, data=0, unit="", meta=None, interp_kwargs=None):
     axes = MapAxes(axes)
     axes.assert_names(self.required_axes)
     self._axes = axes
     if isinstance(data, u.Quantity):
         self.data = data.value
         self.unit = data.unit
     else:
         self.data = data
         self.unit = unit
     self.meta = meta or {}
     if interp_kwargs is None:
         interp_kwargs = self.default_interp_kwargs.copy()
     self.interp_kwargs = interp_kwargs
示例#7
0
文件: table.py 项目: mdebony/gammapy
    def __init__(
        self,
        energy_axis_true,
        offset_axis,
        rad_axis,
        data,
        meta=None,
        interp_kwargs=None,
    ):

        interp_kwargs = interp_kwargs or {}

        axes = MapAxes([energy_axis_true, offset_axis, rad_axis])
        axes.assert_names(["energy_true", "offset", "rad"])

        self.data = NDDataArray(axes=axes,
                                data=u.Quantity(data).to("sr^-1"),
                                interp_kwargs=interp_kwargs)

        self.meta = meta or {}
示例#8
0
文件: table.py 项目: mdebony/gammapy
    def __init__(
        self,
        energy_axis_true,
        rad_axis,
        exposure=None,
        data=None,
        interp_kwargs=None,
    ):
        interp_kwargs = interp_kwargs or {}
        axes = MapAxes([energy_axis_true, rad_axis])
        axes.assert_names(["energy_true", "rad"])

        self.data = NDDataArray(axes=axes,
                                data=u.Quantity(data).to("sr^-1"),
                                interp_kwargs=interp_kwargs)

        if exposure is None:
            self.exposure = u.Quantity(np.ones(self.energy_axis_true.nbin),
                                       "cm^2 s")
        else:
            self.exposure = u.Quantity(exposure).to("cm^2 s")