def _fill(self): """Fills map values """ for target in self.roster.values(): print(target) if self.coord == 'gal': idx = query_disc(self.nside, target.glon, target.glat, target.psi_max) lon, lat = gal2cel(self.lon[idx], self.lat[idx]) else: idx = query_disc(self.nside, target.ra, target.dec, target.psi_max) lon, lat = self.lon[idx], self.lat[idx] self.values[idx] += target.jvalue(lon, lat)
def fill(self): self.values = np.zeros(hp.nside2npix(self.nside)) self.pix = np.arange(hp.nside2npix(self.nside)) self.lon,self.lat = pix2ang(self.nside,self.pix) for target in self.roster.values(): print(target) if self.coord == 'gal': idx = query_disc(self.nside,target.glon,target.glat,target.psi_max) lon,lat = gal2cel(self.lon[idx],self.lat[idx]) else: idx = query_disc(self.nside,target.ra,target.dec,target.psi_max) lon,lat = self.lon[idx],self.lat[idx] self.values[idx] += target.jvalue(lon,lat)
def test_skymap_from_roster(): targets = dmsky.targets.TargetLibrary() rosters = dmsky.roster.RosterLibrary() gc = rosters.create_roster('galactic:ackermann2013_nfw') dsphs = rosters.create_roster('martinez2015_nfw') r = gc + dsphs nside = 128 skymap = dmsky.skymap.Skymap(r, nside=nside) gc_skymap = dmsky.skymap.Skymap(gc, nside=nside) dsphs_skymap = dmsky.skymap.Skymap(dsphs, nside=nside) hp.mollview(np.log10(skymap.values)) plt.savefig('dsphs_gc_skymap.png', bbox_inches='tight') mask = np.zeros_like(skymap.values, dtype=bool) mask[query_disc(nside, gc[0].glon, gc[0].glat, radius=41)] = True mask[(np.abs(skymap.lon - 360. * (skymap.lon > 180)) > 6) & (np.abs(skymap.lat) < 5)] = False hp.mollview(np.log10(skymap.values * mask)) plt.savefig('gc_region.png', bbox_inches='tight') jfactor = gc_skymap.values[~mask].sum() * hp.nside2pixarea( nside) * Units.msun2_kpc5 / Units.gev2_cm5
#r = dsphs nside = 128 skymap = dmsky.skymap.Skymap(r, nside=nside) skymap.fill() gc_skymap = dmsky.skymap.Skymap(gc, nside=nside) gc_skymap.fill() dsphs_skymap = dmsky.skymap.Skymap(dsphs, nside=nside) dsphs_skymap.fill() hp.mollview(np.log10(skymap.values)) plt.savefig('dsphs_gc_skymap.png',bbox_inches='tight') #hp.mollview(np.log10(dsphs_skymap.values)) #hp.mollview(np.log10(gc_skymap.values)) #hp.mollview(np.log10(dsphs_skymap.values+gc_skymap.values)) #hp.mollview(np.log10(50*dsphs_skymap.values+gc_skymap.values)) mask = np.zeros_like(skymap.values,dtype=bool) mask[query_disc(nside,gc[0].glon,gc[0].glat,radius=41)] = True mask[(np.abs(skymap.lon-360.*(skymap.lon>180))>6) & (np.abs(skymap.lat)<5)] = False hp.mollview(np.log10(skymap.values*mask)) plt.savefig('gc_region.png',bbox_inches='tight') jfactor = gc_skymap.values[~mask].sum() * hp.nside2pixarea(nside) * Units.msun2_kpc5/Units.gev2_cm5 plt.ion() plt.show()