Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
photocal=tractor.NullPhotoCal(),
name='image')
inverr = timg.getInvError()
assert(all(np.isfinite(inverr.ravel())))
tsrcs = []
for s in srcs:
#pos = tractor.PixPos(s.x, s.y)
pos = tractor.RaDecPos(s.ra, s.dec)
if s.a > 0 and s.b > 0:
eflux = tractor.Flux(s.flux / 2.)
dflux = tractor.Flux(s.flux / 2.)
re,ab,phi = s.a, s.b/s.a, 90.-s.theta
eshape = gal.GalaxyShape(re,ab,phi)
dshape = gal.GalaxyShape(re,ab,phi)
print('Fluxes', eflux, dflux)
tsrc = gal.CompositeGalaxy(pos, eflux, eshape, dflux, dshape)
else:
flux = tractor.Flux(s.flux)
print('Flux', flux)
tsrc = tractor.PointSource(pos, flux)
tsrcs.append(tsrc)
chug = tractor.Tractor([timg])
for src in tsrcs:
if chug.getModelPatch(timg, src) is None:
print('Dropping non-overlapping source:', src)
continue
chug.addSource(src)
print('Kept a total of', len(chug.catalog), 'sources')
timg = timgs[0]
wcs = timg.getWcs()
xtr,ytr = wcs.positionToPixel(RaDecPos(ra,dec))
xt = xtr
yt = ytr
r = ((remradius*60.))/.396 #radius in pixels
for src in sources:
xs,ys = wcs.positionToPixel(src.getPosition(),src)
if (xs-xt)**2+(ys-yt)**2 <= r**2:
#print "Removed:", src
#print xs,ys
tractor.removeSource(src)
#saveAll('removed-'+prefix, tractor,**sa)
newShape = sg.GalaxyShape((remradius*60.)/10.,ab,angle)
newBright = ba.Mags(r=15.0,g=15.0,u=15.0,z=15.0,i=15.0,order=['u','g','r','i','z'])
EG = st.ExpGalaxy(RaDecPos(ra,dec),newBright,newShape)
print(EG)
tractor.addSource(EG)
saveAll('added-'+prefix,tractor,**sa)
#print 'Tractor has', tractor.getParamNames()
for im in tractor.images:
im.freezeAllParams()
im.thawParam('sky')
tractor.catalog.freezeAllBut(EG)
#print 'Tractor has', tractor.getParamNames()
rex_galaxy = obj_cat[obj_type == 'REX']
psf_galaxy = obj_cat[obj_type =='PSF']
if shape_method is 'manual':
# Using manually measured shapes
if sources is None:
sources = []
for obj in comp_galaxy:
pos_x, pos_y = obj['x'], obj['y']
sources.append(
CompositeGalaxy(
PixPos(pos_x, pos_y), Flux(0.4 * obj['flux']),
GalaxyShape(obj['a_arcsec'] * 0.8, 0.9,
90.0 + obj['theta'] * 180.0 / np.pi),
Flux(0.6 * obj['flux']),
GalaxyShape(obj['a_arcsec'], obj['b_arcsec'] / obj['a_arcsec'],
90.0 + obj['theta'] * 180.0 / np.pi)))
for obj in dev_galaxy:
pos_x, pos_y = obj['x'], obj['y']
sources.append(
DevGalaxy(
PixPos(pos_x, pos_y), Flux(obj['flux']),
GalaxyShape(obj['a_arcsec'], (obj['b_arcsec'] / obj['a_arcsec']),
(90.0 + obj['theta'] * 180.0 / np.pi))))
for obj in exp_galaxy:
pos_x, pos_y = obj['x'], obj['y']
sources.append(
ExpGalaxy(
PixPos(pos_x, pos_y), Flux(obj['flux']),
GalaxyShape(obj['a_arcsec'], (obj['b_arcsec'] / obj['a_arcsec']),
(90.0 + obj['theta'] * 180.0 / np.pi))))
for obj in rex_galaxy:
comp_galaxy = obj_cat[obj_type == 'COMP']
dev_galaxy = obj_cat[obj_type == 'DEV']
exp_galaxy = obj_cat[obj_type == 'EXP']
rex_galaxy = obj_cat[obj_type == 'REX']
psf_galaxy = obj_cat[obj_type =='PSF']
if shape_method is 'manual':
# Using manually measured shapes
if sources is None:
sources = []
for obj in comp_galaxy:
pos_x, pos_y = obj['x'], obj['y']
sources.append(
CompositeGalaxy(
PixPos(pos_x, pos_y), Flux(0.4 * obj['flux']),
GalaxyShape(obj['a_arcsec'] * 0.8, 0.9,
90.0 + obj['theta'] * 180.0 / np.pi),
Flux(0.6 * obj['flux']),
GalaxyShape(obj['a_arcsec'], obj['b_arcsec'] / obj['a_arcsec'],
90.0 + obj['theta'] * 180.0 / np.pi)))
for obj in dev_galaxy:
pos_x, pos_y = obj['x'], obj['y']
sources.append(
DevGalaxy(
PixPos(pos_x, pos_y), Flux(obj['flux']),
GalaxyShape(obj['a_arcsec'], (obj['b_arcsec'] / obj['a_arcsec']),
(90.0 + obj['theta'] * 180.0 / np.pi))))
for obj in exp_galaxy:
pos_x, pos_y = obj['x'], obj['y']
sources.append(
ExpGalaxy(
PixPos(pos_x, pos_y), Flux(obj['flux']),
timg = timgs[0]
wcs = timg.getWcs()
xtr,ytr = wcs.positionToPixel(RaDecPos(ra,dec))
xt = xtr
yt = ytr
r = ((remradius*60.))/.396 #radius in pixels
for src in sources:
xs,ys = wcs.positionToPixel(src.getPosition(),src)
if (xs-xt)**2+(ys-yt)**2 <= r**2:
#print "Removed:", src
#print xs,ys
tractor.removeSource(src)
#saveAll('removed-'+prefix, tractor,**sa)
newShape = sg.GalaxyShape((remradius*60.)/10.,ab,angle)
newBright = ba.Mags(r=15.0,g=15.0,u=15.0,z=15.0,i=15.0,order=['u','g','r','i','z'])
EG = st.ExpGalaxy(RaDecPos(ra,dec),newBright,newShape)
print(EG)
tractor.addSource(EG)
saveAll('added-'+prefix,tractor,**sa)
#print 'Tractor has', tractor.getParamNames()
for im in tractor.images:
im.freezeAllParams()
im.thawParam('sky')
tractor.catalog.freezeAllBut(EG)
#print 'Tractor has', tractor.getParamNames()
return [1e12, 0.1]
def getLensedImages(self, mypos, quasar):
pass
class Quasar(ParamList):
pass
class MagFudge(ParamList):
pass
pos = RaDecPos(234.5, 17.9)
bright = Mags(r=17.4, g=18.9, order=['g','r'])
# re [arcsec], ab ratio, phi [deg]
shape = GalaxyShape(2., 0.5, 48.)
light = DevGalaxy(pos, bright, shape)
mass = LensingMass(1e14, 0.1)
quasar = Quasar()
fudge = MagFudge(0., 0., 0., 0.)
lq = LensedQuasar(light, mass, quasar, fudge)
print('LensedQuasar params:')
for nm,val in zip(lq.getParamNames(), lq.getParams()):
print(' ', nm, '=', val)
2 if ACS_CLASS_STAR>=0.8 (object is assumed to be a star and was not visually inspected)
3 if ACS_CLASS_STAR<0.6 but object is visually identified as a star (e.g. saturated star, etc)
JUNKFLAG float
0 = good object
1 = spurious
'''
print('Classifications:', Counter(cat.type).most_common())
cat.is_galaxy = (cat.stellarity == 0)
srcs = []
for t in cat:
pos = RaDecPos(t.ra, t.dec)
bright = NanoMaggies(**{band:NanoMaggies.magToNanomaggies(t.acs_mag_auto)})
shape = GalaxyShape(t.r_0p5_gim2d, 1. - t.ell_gim2d, 90. + t.pa_gim2d)
is_galaxy = (t.is_galaxy * (shape.re >= 0 ) * (shape.ab <= 1.) *
(shape.phi > -999))
if is_galaxy and t.type == 1:
# deV
src = DevGalaxy(pos, bright, shape)
elif is_galaxy and t.type == 2:
# exp
src = ExpGalaxy(pos, bright, shape)
else:
src = PointSource(pos, bright)
srcs.append(src)
return srcs
xtr,ytr = wcs.positionToPixel(RaDecPos(ra,dec))
print(xtr,ytr)
xt = xtr
yt = ytr
r = 250.
for src in sources:
xs,ys = wcs.positionToPixel(src.getPosition(),src)
if (xs-xt)**2+(ys-yt)**2 <= r**2:
print("Removed:", src)
print(xs,ys)
tractor.removeSource(src)
# saveAll('removed-'+prefix, tractor,zr,flipBands,debug=True)
newShape = sg.GalaxyShape(30.,1.,0.)
newBright = ba.Mags(r=15.0,g=15.0,u=15.0,z=15.0,i=15.0)
EG = st.ExpGalaxy(RaDecPos(ra,dec),newBright,newShape)
print(EG)
tractor.addSource(EG)
saveAll('added-'+prefix,tractor,zr,flipBands,debug=True)
plotInvvar('added-'+prefix,tractor)
for i in range(itune1):
if (i % 5 == 0):
tractor.optimizeCatalogLoop(nsteps=1,srcs=[EG],sky=True)
else:
tractor.optimizeCatalogLoop(nsteps=1,srcs=[EG],sky=False)
tractor.changeInvvar(9.)
tractor.clearCache()
Flux(0.6 * obj['flux']),
GalaxyShape(obj['a_arcsec'], obj['b_arcsec'] / obj['a_arcsec'],
90.0 + obj['theta'] * 180.0 / np.pi)))
for obj in dev_galaxy:
pos_x, pos_y = obj['x'], obj['y']
sources.append(
DevGalaxy(
PixPos(pos_x, pos_y), Flux(obj['flux']),
GalaxyShape(obj['a_arcsec'], (obj['b_arcsec'] / obj['a_arcsec']),
(90.0 + obj['theta'] * 180.0 / np.pi))))
for obj in exp_galaxy:
pos_x, pos_y = obj['x'], obj['y']
sources.append(
ExpGalaxy(
PixPos(pos_x, pos_y), Flux(obj['flux']),
GalaxyShape(obj['a_arcsec'], (obj['b_arcsec'] / obj['a_arcsec']),
(90.0 + obj['theta'] * 180.0 / np.pi))))
for obj in rex_galaxy:
pos_x, pos_y = obj['x'], obj['y']
sources.append(
ExpGalaxy(
PixPos(pos_x, pos_y), Flux(obj['flux']),
GalaxyShape(obj['a_arcsec'], (obj['b_arcsec'] / obj['a_arcsec']),
(90.0 + obj['theta'] * 180.0 / np.pi))))
for obj in psf_galaxy:
pos_x, pos_y = obj['x'], obj['y']
sources.append(PointSource(PixPos(pos_x, pos_y), Flux(obj['flux'])))
print("Now you have %d sources" % len(sources))
elif shape_method is 'decals':
## Using DECaLS shapes