コード例 #1
0
def correlate_fermi_psf(image, max_offset, resolution=0.1, energy = 'None', energy_band=[10, 500]):
    from astropy.coordinates import Angle
    from astropy.units import Quantity
    from gammapy.datasets import FermiGalacticCenter
    from gammapy.irf import EnergyDependentTablePSF

    # Parameters
    filename = FermiGalacticCenter.filenames()['psf']
    pixel_size = Angle(resolution, 'deg')
    offset_max = Angle(max_offset, 'deg')
    if energy == 'None':
        energy_band = Quantity(energy_band, 'GeV')
        fermi_psf = EnergyDependentTablePSF.read(filename)
        psf = fermi_psf.table_psf_in_energy_band(energy_band=energy_band, spectral_index=2.5)
    else:
        energy = Quantity(energy, 'GeV')
        fermi_psf = EnergyDependentTablePSF.read(filename)
        psf = fermi_psf.table_psf_at_energy(energy=energy)
    psf.normalize()
    kernel = psf.kernel(pixel_size=pixel_size, offset_max=offset_max)
    kernel_image = kernel.value/kernel.value.sum()
    
    # TODO: Write unit test (this will be useful):
    
    #kernel_image_integral = kernel_image.sum() * pixel_size.to('radian').value ** 2
    #print('Kernel image integral: {0}'.format(kernel_image_integral))
    #print('shape: {0}'.format(kernel_image.shape))
    return convolve(image, kernel_image, mode='constant')
コード例 #2
0
def correlate_fermi_psf(image,
                        max_offset,
                        resolution=0.1,
                        energy='None',
                        energy_band=[10, 500]):
    from astropy.coordinates import Angle
    from astropy.units import Quantity
    from gammapy.datasets import FermiGalacticCenter
    from gammapy.irf import EnergyDependentTablePSF

    # Parameters
    filename = FermiGalacticCenter.filenames()['psf']
    pixel_size = Angle(resolution, 'deg')
    offset_max = Angle(max_offset, 'deg')
    if energy == 'None':
        energy_band = Quantity(energy_band, 'GeV')
        fermi_psf = EnergyDependentTablePSF.read(filename)
        psf = fermi_psf.table_psf_in_energy_band(energy_band=energy_band,
                                                 spectral_index=2.5)
    else:
        energy = Quantity(energy, 'GeV')
        fermi_psf = EnergyDependentTablePSF.read(filename)
        psf = fermi_psf.table_psf_at_energy(energy=energy)
    psf.normalize()
    kernel = psf.kernel(pixel_size=pixel_size, offset_max=offset_max)
    kernel_image = kernel.value / kernel.value.sum()

    # TODO: Write unit test (this will be useful):

    #kernel_image_integral = kernel_image.sum() * pixel_size.to('radian').value ** 2
    #print('Kernel image integral: {0}'.format(kernel_image_integral))
    #print('shape: {0}'.format(kernel_image.shape))
    return convolve(image, kernel_image, mode='constant')
コード例 #3
0
 def main(self, figure, subplot):
     filename = FermiGalacticCenter.filenames()['counts']
     self.fits_figure = FITSFigure(filename,
                                   hdu=1,
                                   figure=figure,
                                   subplot=subplot)
     self.fits_figure.show_colorscale(vmin=1, vmax=10, cmap='afmhot')
     self.fits_figure.ticks.set_xspacing(2)
コード例 #4
0
from gammapy.irf import EnergyDependentTablePSF
from gammapy.image import make_empty_image, catalog_image, binary_disk
from gammapy.image.utils import cube_to_image, solid_angle
from gammapy.data import SpectralCube
from gammapy.image.utils import WCS
from gammapy.spectrum.flux_point import _energy_lafferty_power_law

# *** PREPARATION ***

# Parameters

CORRELATION_RADIUS = 3  # pix
SIGNIFICANCE_THRESHOLD = 5
MASK_DILATION_RADIUS = 0.3

psf_file = FermiGalacticCenter.filenames()['psf']
psf = EnergyDependentTablePSF.read(psf_file)

# *** LOADING INPUT ***

# Counts must be provided as a counts ImageHDU
flux_file = raw_input('Flux Map: ')
exposure_file = raw_input('Exposure Map: ')
spec_ind = input('Spectral Index (for reprojection): ')
flux_hdu = fits.open(flux_file)[1]
flux_wcs = WCS(flux_hdu.header)
energy_flux = Quantity([_energy_lafferty_power_law(10000, 500000, spec_ind)],
                       'MeV')
flux_data = np.zeros((1, 1800, 3600))
flux_data[0] = Quantity(flux_hdu.data, '')
flux_spec_cube = SpectralCube(data=flux_data, wcs=flux_wcs, energy=energy_flux)
コード例 #5
0
from gammapy.irf import EnergyDependentTablePSF
from gammapy.image import make_empty_image, catalog_image, binary_disk
from gammapy.image.utils import cube_to_image, solid_angle
from gammapy.data import SpectralCube
from gammapy.image.utils import WCS
from gammapy.spectrum.flux_point import _energy_lafferty_power_law

# *** PREPARATION ***

# Parameters

CORRELATION_RADIUS = 3  # pix
SIGNIFICANCE_THRESHOLD = 5
MASK_DILATION_RADIUS = 0.3

psf_file = FermiGalacticCenter.filenames()["psf"]
psf = EnergyDependentTablePSF.read(psf_file)

# *** LOADING INPUT ***

# Counts must be provided as a counts ImageHDU
flux_file = raw_input("Flux Map: ")
exposure_file = raw_input("Exposure Map: ")
spec_ind = input("Spectral Index (for reprojection): ")
flux_hdu = fits.open(flux_file)[1]
flux_wcs = WCS(flux_hdu.header)
energy_flux = Quantity([_energy_lafferty_power_law(10000, 500000, spec_ind)], "MeV")
flux_data = np.zeros((1, 1800, 3600))
flux_data[0] = Quantity(flux_hdu.data, "")
flux_spec_cube = SpectralCube(data=flux_data, wcs=flux_wcs, energy=energy_flux)
コード例 #6
0
from gammapy.irf import EnergyDependentTablePSF
from gammapy.image import make_empty_image, catalog_image, binary_disk
from gammapy.image.utils import cube_to_image, solid_angle
from gammapy.data import SpectralCube
from gammapy.image.utils import WCS
from gammapy.spectrum.flux_point import _energy_lafferty_power_law

# *** PREPARATION ***

# Parameters

CORRELATION_RADIUS = 3 # pix
SIGNIFICANCE_THRESHOLD = 5
MASK_DILATION_RADIUS = 0.3

psf_file = FermiGalacticCenter.filenames()['psf']
psf = EnergyDependentTablePSF.read(psf_file)

# *** LOADING INPUT ***

# Counts must be provided as a counts ImageHDU
flux_file = raw_input('Flux Map: ')
exposure_file = raw_input('Exposure Map: ')
spec_ind = input('Spectral Index (for reprojection): ')
flux_hdu = fits.open(flux_file)[1]
flux_wcs = WCS(flux_hdu.header)
energy_flux = Quantity([_energy_lafferty_power_law(10000, 500000, spec_ind)], 'MeV')
flux_data = np.zeros((1, 101, 2001))
flux_data[0] = Quantity(flux_hdu.data, '')
flux_spec_cube = SpectralCube(data=flux_data, wcs=flux_wcs, energy=energy_flux)
コード例 #7
0
"""Test npred model image computation.
"""
from astropy.coordinates import Angle
from gammapy.datasets import FermiGalacticCenter
from gammapy.utils.energy import EnergyBounds
from gammapy.irf import EnergyDependentTablePSF
from gammapy.cube import SkyCube, compute_npred_cube, convolve_cube

filenames = FermiGalacticCenter.filenames()
flux_cube = SkyCube.read(filenames['diffuse_model'])
exposure_cube = SkyCube.read(filenames['exposure_cube'])
psf = EnergyDependentTablePSF.read(filenames['psf'])

flux_cube = flux_cube.reproject_to(exposure_cube)

energy_bounds = EnergyBounds([10, 30, 100, 500], 'GeV')
npred_cube = compute_npred_cube(flux_cube, exposure_cube, energy_bounds)

offset_max = Angle(1, 'deg')
npred_cube_convolved = convolve_cube(npred_cube, psf, offset_max)
コード例 #8
0
ファイル: survey_example.py プロジェクト: OlgaVorokh/gammapy
 def main(self, figure, subplot):
     filename = FermiGalacticCenter.filenames()['counts']
     self.fits_figure = FITSFigure(filename, hdu=1, figure=figure, subplot=subplot)
     self.fits_figure.show_colorscale(vmin=1, vmax=10, cmap='afmhot')
     self.fits_figure.ticks.set_xspacing(2)
コード例 #9
0
ファイル: survey_example.py プロジェクト: rbuehler/gammapy
 def main(self, figure, box):
     filename = FermiGalacticCenter.filenames()['counts']
     self.fits_figure = FITSFigure(filename, figure=figure, subplot=box)
     self.fits_figure.show_colorscale(vmin=1, vmax=10)