from utils import compute_longitude_profile from class_source_diffuse_estimation import RunAlgorithm, source_image, diffuse_image, data_image, correlation_radius, significance_threshold, mask_dilation_radius, LonHigh, LonLow from grid_binning import GridSeparation import numpy as np from astropy.io import fits from astropy.table import Table import matplotlib.pyplot as plt from scipy.ndimage import gaussian_filter __all__ = ['Run', 'BackgroundProfile', 'SignificanceProfile'] EXPOSURE = 1.5768e+11 from gammapy.image.utils import solid_angle reference = fits.open(data_image) PIXEL_SA = solid_angle(reference).mean() def Run(correlation_radius = correlation_radius, significance_threshold=significance_threshold, mask_dilation_radius=mask_dilation_radius, number_of_iterations=50, data_image = data_image): operate = RunAlgorithm(analysis='Data', correlation_radius=correlation_radius, significance_threshold=significance_threshold, mask_dilation_radius=mask_dilation_radius, number_of_iterations=number_of_iterations, data_image=data_image) background = fits.open(operate.background_filename) mask = fits.open(operate.mask_filename) significance = fits.open(operate.significance_filename) return background, mask, significance def BackgroundProfile(binsz): background, mask, signifiance = Run(correlation_radius = correlation_radius, significance_threshold=significance_threshold, mask_dilation_radius=mask_dilation_radius, number_of_iterations=50, data_image = data_image)
""" Script to determine what fraction of source and diffuse flux is found in the large and small region""" from astropy.io import fits import numpy as np filename = raw_input('Image filename: ') source = fits.open(filename)[1] from gammapy.image.utils import coordinates, solid_angle lats, lons = coordinates(source) solid_angle = solid_angle(source) region_glat_high = 5 region_glat_low = -5 region_glon_high = 100 region_glon_low = -100 mask1 = (region_glat_low < lats) & (lats < region_glat_high) mask2 = (region_glon_low < lons) & (lons < region_glon_high) mask = mask1 & mask2 a = np.nan_to_num(source.data) source_flux_frac = a[mask].sum()/a.sum() print "Total Flux in Image" print a.sum() print "Galactic Flux" print a[mask].sum() print "Source Flux Fraction" print source_flux_frac
""" Script to determine what fraction of source and diffuse flux is found in the large and small region""" from astropy.io import fits filename = raw_input('Image filename: ') source = fits.open(filename)[1] from gammapy.image.utils import coordinates, solid_angle lats, lons = coordinates(source) solid_angle = solid_angle(source) region_glat_high = 5 region_glat_low = -5 region_glon_high = 100 region_glon_low = -100 mask1 = (region_glat_low < lats) & (lats < region_glat_high) mask2 = (region_glon_low < lons) & (lons < region_glon_high) mask = mask1 & mask2 a = source.data #/ solid_angle.value source_flux_frac = a[mask].sum() / a.sum() print "Total Flux in Image" print a.sum() print "Galactic Flux" print a[mask].sum() print "Source Flux Fraction" print source_flux_frac