3 Compare the input fake galaxy model to the output one 5 from __future__
import absolute_import
17 from .matchFakes
import getFakeSources
22 return the semi-major axis, axis ratio and position angle (in degrees) 24 fluxType = {
'dev':
'cmodel.dev',
27 'cmodel':
'cmodel'}[galType]
30 q = (e.getB() / e.getA())
32 pa = (e.getTheta() * 180.0 / np.pi)
36 def getMag(record, fluxType='cmodel'):
38 return the magnitude and error 40 flux, fluxerr = record.get(fluxType), record.get(fluxType+
'.err')
41 mag, magerr = -2.5 * np.log10(flux), 2.5/np.log(10.0)*fluxerr/flux
42 mag += record.get(
'zeropoint')
47 """Writes output to numpy 49 npTable = np.recarray(len(fakeTable),
50 dtype={
'names': [
'id',
'fakeid',
'visit',
'ccd',
51 'cmodelMag',
'expMag',
55 'expPosAng',
'devPosAng',
56 'cmodelMagErr',
'expMagErr',
57 'devMagErr',
'nchild',
'parent'],
58 'formats': [int, int, int, int,
60 float, float, float, float,
61 float, float, float, float,
62 float, float, int, int]})
63 for indFake, fake
in enumerate(fakeTable):
64 npTable[indFake][
'id'] = fake.get(
'id')
65 npTable[indFake][
'fakeid'] = fake.get(
'fakeId')
66 npTable[indFake][
'ccd'] = fake.get(
'ccd')
67 npTable[indFake][
'visit'] = fake.get(
'visit')
68 nameMatch = {
'sersic':
'cmodel',
72 for name
in (
'cmodel',
'exp',
'dev'):
73 m1, m2 =
getMag(fake, nameMatch[name]+
'.flux')
74 npTable[indFake][name+
'Mag'] = m1
75 npTable[indFake][name+
'MagErr'] = m2
76 for name
in (
'exp',
'dev'):
78 npTable[indFake][name+
'Reff'] = params[0]
79 npTable[indFake][name+
'BA'] = params[1]
80 npTable[indFake][name+
'PosAng'] = params[2]
81 npTable[indFake][
'nchild'] = fake.get(
'deblend.nchild')
82 npTable[indFake][
'parent'] = fake.get(
'parent')
86 def main(root, visit, ccds, galType='sersic', output='outputs/'):
88 main function for controlling fake source comparison 90 butler = dafPersist.Butler(root)
93 dataId = {
'visit': visit,
'ccd': ccd}
100 fakeTable = temp.copy(
True)
102 fakeTable.extend(temp,
True)
105 rerunName = root.split(
'/')[-2]
106 fitsTable = astropy.table.Table(npTable).write(output+
'/'+rerunName +
107 '_galMags.txt', format=
'ascii')
110 if __name__ ==
'__main__':
111 parser = argparse.ArgumentParser()
112 parser.add_argument(
'root', help=
"Root directory of data repository")
113 parser.add_argument(
"visit", type=int, help=
"Visit")
114 parser.add_argument(
"--ccd", nargs=
'+', type=int, help=
"CCD(s)")
115 parser.add_argument(
'-g',
'--galtype', type=str, dest=
'galType',
116 choices=[
'exp',
'dev',
'sersic'])
117 parser.add_argument(
'-o',
'--outputpath', dest=
'outpath',
118 help=
'path for output')
119 args = parser.parse_args()
121 main(args.root, args.visit, args.ccd, galType=args.galType,
def getMag(record, fluxType='cmodel')
def getParams(record, galType='sersic')
def getFakeSources(butler, dataId, tol=1.0, extraCols=('zeropoint', 'visit', 'ccd'), includeMissing=False, footprints=False, radecMatch=None, multiband=False, reffMatch=False, pix=0.168, minRad=None, raCol='RA', decCol='Dec')
def writeNumpyTable(fakeTable)
def main(root, visit, ccds, galType='sersic', output='outputs/')