Skip to content

Commit

Permalink
separate handling for PANSTARRS griz/BVRI transformations
Browse files Browse the repository at this point in the history
  • Loading branch information
mommermi committed Oct 10, 2017
1 parent a58cf28 commit 07962d1
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 62 deletions.
149 changes: 88 additions & 61 deletions catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
version 0.9, 2016-01-27, michael.mommert@nau.edu
"""
from __future__ import print_function
from __future__ import division
from __future__ import print_function, division

# Photometry Pipeline
# Copyright (C) 2016 Michael Mommert, michael.mommert@nau.edu
Expand Down Expand Up @@ -271,47 +270,19 @@ def download_catalog(self, ra_deg, dec_deg, rad_deg,
self.data.rename_column('decMean', 'dec.deg')
self.data.rename_column('raMeanErr', 'e_ra.deg')
self.data.rename_column('decMeanErr', 'e_dec.deg')
self.data.rename_column('gMeanPSFMag', 'gmag')
self.data.rename_column('gMeanPSFMagErr', 'e_gmag')
self.data.rename_column('rMeanPSFMag', 'rmag')
self.data.rename_column('rMeanPSFMagErr', 'e_rmag')
self.data.rename_column('iMeanPSFMag', 'imag')
self.data.rename_column('iMeanPSFMagErr', 'e_imag')
self.data.rename_column('zMeanPSFMag', 'zmag')
self.data.rename_column('zMeanPSFMagErr', 'e_zmag')
self.data.rename_column('yMeanPSFMag', 'ymag')
self.data.rename_column('yMeanPSFMagErr', 'e_ymag')
self.data.rename_column('gMeanPSFMag', 'gp1mag')
self.data.rename_column('gMeanPSFMagErr', 'e_gp1mag')
self.data.rename_column('rMeanPSFMag', 'rp1mag')
self.data.rename_column('rMeanPSFMagErr', 'e_rp1mag')
self.data.rename_column('iMeanPSFMag', 'ip1mag')
self.data.rename_column('iMeanPSFMagErr', 'e_ip1mag')
self.data.rename_column('zMeanPSFMag', 'zp1mag')
self.data.rename_column('zMeanPSFMagErr', 'e_zp1mag')
self.data.rename_column('yMeanPSFMag', 'yp1mag')
self.data.rename_column('yMeanPSFMagErr', 'e_yp1mag')

# clip self.data to enforce magnitude error limits
self.data = self.data[self.data['e_rmag'] <= 0.03]

# transform magnitudes to SDSS AB system
# using Tonry et al. 2012, ApJ 750
g_sdss = (self.data['gmag'] + 0.013 +
0.145*(self.data['gmag']-self.data['rmag']) +
0.019*(self.data['gmag']-self.data['rmag'])**2)
gerr_sdss = numpy.sqrt(self.data['e_gmag']**2 + 0.008**2)
r_sdss = (self.data['rmag'] - 0.001 +
0.004*(self.data['gmag']-self.data['rmag']) +
0.007*(self.data['gmag']-self.data['rmag'])**2)
rerr_sdss = numpy.sqrt(self.data['e_rmag']**2 + 0.004**2)
i_sdss = (self.data['imag'] - 0.005 +
0.011*(self.data['gmag']-self.data['rmag']) +
0.010*(self.data['gmag']-self.data['rmag'])**2)
ierr_sdss = numpy.sqrt(self.data['e_imag']**2 + 0.004**2)
z_sdss = (self.data['rmag'] + 0.013 -
0.039*(self.data['gmag']-self.data['rmag']) -
0.012*(self.data['gmag']-self.data['rmag'])**2)
zerr_sdss = numpy.sqrt(self.data['e_zmag']**2 + 0.01**2)

self.data['gmag'] = g_sdss
self.data['e_gmag'] = gerr_sdss
self.data['rmag'] = r_sdss
self.data['e_rmag'] = rerr_sdss
self.data['imag'] = i_sdss
self.data['e_imag'] = ierr_sdss
self.data['zmag'] = z_sdss
self.data['e_zmag'] = zerr_sdss
self.data = self.data[self.data['e_rp1mag'] <= 0.03]


# --------------------------------------------------------------------
Expand Down Expand Up @@ -1231,31 +1202,35 @@ def transform_filters (self, targetfilter):

# transform magnitudes to BVRI, Vega system
# using Tonry et al. 2012, ApJ 750
B = (self.data['gmag'] + 0.212 +
0.556*(self.data['gmag']-self.data['rmag']) +
0.034*(self.data['gmag']-self.data['rmag'])**2)
Berr = numpy.sqrt(self.data['e_gmag']**2 + 0.032**2)
V = (self.data['gmag'] + 0.005 -
0.536*(self.data['gmag']-self.data['rmag']) +
0.011*(self.data['gmag']-self.data['rmag'])**2)
Verr = numpy.sqrt(self.data['e_gmag']**2 + 0.012**2)
R = (self.data['rmag'] - 0.137 -
0.108*(self.data['gmag']-self.data['rmag']) -
0.029*(self.data['gmag']-self.data['rmag'])**2)
Rerr = numpy.sqrt(self.data['e_rmag']**2 + 0.015**2)
I = (self.data['imag'] - 0.366 -
0.136*(self.data['gmag']-self.data['rmag']) -
0.018*(self.data['gmag']-self.data['rmag'])**2)
Ierr = numpy.sqrt(self.data['e_imag']**2 + 0.017**2)
B = (self.data['gp1mag'] + 0.212 +
0.556*(self.data['gp1mag']-self.data['rp1mag']) +
0.034*(self.data['gp1mag']-self.data['rp1mag'])**2)
Berr = numpy.sqrt(self.data['e_gp1mag']**2 + 0.032**2)
V = (self.data['gp1mag'] + 0.005 -
0.536*(self.data['gp1mag']-self.data['rp1mag']) +
0.011*(self.data['gp1mag']-self.data['rp1mag'])**2)
Verr = numpy.sqrt(self.data['e_gp1mag']**2 + 0.012**2)
R = (self.data['rp1mag'] - 0.137 -
0.108*(self.data['gp1mag']-self.data['rp1mag']) -
0.029*(self.data['gp1mag']-self.data['rp1mag'])**2)
Rerr = numpy.sqrt(self.data['e_rp1mag']**2 + 0.015**2)
I = (self.data['ip1mag'] - 0.366 -
0.136*(self.data['gp1mag']-self.data['rp1mag']) -
0.018*(self.data['gp1mag']-self.data['rp1mag'])**2)
Ierr = numpy.sqrt(self.data['e_ip1mag']**2 + 0.017**2)

self.data.add_column(Column(data=B, name='_Bmag', unit=u.mag))
self.data.add_column(Column(data=Berr, name='_e_Bmag', unit=u.mag))
self.data.add_column(Column(data=Berr, name='_e_Bmag',
unit=u.mag))
self.data.add_column(Column(data=V, name='_Vmag', unit=u.mag))
self.data.add_column(Column(data=Verr, name='_e_Vmag', unit=u.mag))
self.data.add_column(Column(data=Verr, name='_e_Vmag',
unit=u.mag))
self.data.add_column(Column(data=R, name='_Rmag', unit=u.mag))
self.data.add_column(Column(data=Rerr, name='_e_Rmag', unit=u.mag))
self.data.add_column(Column(data=Rerr, name='_e_Rmag',
unit=u.mag))
self.data.add_column(Column(data=I, name='_Imag', unit=u.mag))
self.data.add_column(Column(data=Ierr, name='_e_Imag', unit=u.mag))
self.data.add_column(Column(data=Ierr, name='_e_Imag',
unit=u.mag))

self.catalogname += '_transformed'
self.history += ', %d transformed to %s (Vega)' % \
Expand All @@ -1267,6 +1242,58 @@ def transform_filters (self, targetfilter):

return self.shape[0]

# PANSTARRS to Sloan griz
elif (self.catalogname == 'PANSTARRS' and
targetfilter in ['g', 'r', 'i', 'z'] and
self.magsystem == 'AB'):

logging.info(('trying to transform %d PANSTARRS sources to ' \
+ '%s') % (self.shape[0], targetfilter))

# transform magnitudes to BVRI, Vega system
# using Tonry et al. 2012, ApJ 750
# transform magnitudes to SDSS AB system
# using Tonry et al. 2012, ApJ 750
g_sdss = (self.data['gp1mag'] + 0.013 +
0.145*(self.data['gp1mag']-self.data['rp1mag']) +
0.019*(self.data['gp1mag']-self.data['rp1mag'])**2)
gerr_sdss = numpy.sqrt(self.data['e_gp1mag']**2 + 0.008**2)
r_sdss = (self.data['rp1mag'] - 0.001 +
0.004*(self.data['gp1mag']-self.data['rp1mag']) +
0.007*(self.data['gp1mag']-self.data['rp1mag'])**2)
rerr_sdss = numpy.sqrt(self.data['e_rp1mag']**2 + 0.004**2)
i_sdss = (self.data['ip1mag'] - 0.005 +
0.011*(self.data['gp1mag']-self.data['rp1mag']) +
0.010*(self.data['gp1mag']-self.data['rp1mag'])**2)
ierr_sdss = numpy.sqrt(self.data['e_ip1mag']**2 + 0.004**2)
z_sdss = (self.data['rp1mag'] + 0.013 -
0.039*(self.data['gp1mag']-self.data['rp1mag']) -
0.012*(self.data['gp1mag']-self.data['rp1mag'])**2)
zerr_sdss = numpy.sqrt(self.data['e_zp1mag']**2 + 0.01**2)

self.data.add_column(Column(data=g_sdss, name='_gmag', unit=u.mag))
self.data.add_column(Column(data=gerr_sdss, name='_e_gmag',
unit=u.mag))
self.data.add_column(Column(data=r_sdss, name='_rmag', unit=u.mag))
self.data.add_column(Column(data=rerr_sdss, name='_e_rmag',
unit=u.mag))
self.data.add_column(Column(data=i_sdss, name='_imag', unit=u.mag))
self.data.add_column(Column(data=ierr_sdss, name='_e_imag',
unit=u.mag))
self.data.add_column(Column(data=z_sdss, name='_zmag', unit=u.mag))
self.data.add_column(Column(data=zerr_sdss, name='_e_zmag',
unit=u.mag))

self.catalogname += '_transformed'
self.history += ', %d transformed to %s (AB)' % \
(self.shape[0], targetfilter)
self.magsystem = 'AB'

logging.info('%d sources sucessfully transformed to %s' % \
(self.shape[0], targetfilter))

return self.shape[0]


# ### 2MASS to Warner BVRI (not accounting for galactic extinction)
# elif (self.catalogname == '2MASS') and \
Expand Down
2 changes: 1 addition & 1 deletion pp_calibrate.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def create_photometrycatalog(ra_deg, dec_deg, rad_deg, filtername,
('2MASS' in catalogname and
filtername not in {'J', 'H', 'K', 'Ks'}) or
('PANSTARRS' in catalogname and
filtername not in {'g', 'r', 'i', 'z', 'y'}) ):
filtername not in {'gp1', 'rp1', 'ip1', 'zp1', 'yp1'}) ):

n_transformed = cat.transform_filters(filtername) - \
cat.reject_sources_with(\
Expand Down

0 comments on commit 07962d1

Please sign in to comment.