Make depth summary figures

This notebook is to produce some figures for the ELAIS-N1 paper.

First we will, for every helpix 13 in HELP get the highest K or Ks depth, g depth, and irac 1 depth. We will then plot cumulative area histograms and generate the 25%, 50%, 75% areas to summarise the depths across all HELP.

In [1]:
from herschelhelp_internal import git_version
print("This notebook was run with herschelhelp_internal version: \n{}".format(git_version()))
This notebook was run with herschelhelp_internal version: 
1407877 (Mon Feb 4 12:56:29 2019 +0000)
In [2]:
import pyvo as vo
import glob
import time
import numpy as np

import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes

import random

import herschelhelp as hh
from herschelhelp_internal.utils import flux_to_mag

from astropy.table import Table, Column, vstack, join, unique

from pymoc import MOC

import pandas as pd

import yaml

from pcigale.sed import SED
from pcigale.sed_modules import get_module
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/importlib/_bootstrap.py:219: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  return f(*args, **kwds)
In [3]:
#Then we establish the VO connection to our database
service = vo.dal.TAPService("https://herschel-vos.phys.sussex.ac.uk/__system__/tap/run/tap")
In [4]:
herschelhelp_python_loc = ('../../../../herschelhelp_python/')

filter_locs  = glob.glob(herschelhelp_python_loc + 'database_builder/filters/*')
In [5]:
filters = [f.split('/')[-1].split('.')[0] for f in filter_locs]
filters.remove('readme')

bands = ['u', 'g', 'r', 'i', 'z', 'y',
        'J', 'H', 'K', 'Ks',
        'i1', 'i2', 'i3', 'i4']
In [6]:
filters
Out[6]:
['wfi_696nm',
 'suprime_nb816',
 'wfc3_f125w',
 'mmt_g',
 'omegacam_r',
 'decam_z',
 'wfi_416nm',
 'sdss_i',
 'omegacam_g',
 'suprime_ib464',
 'wfi_571nm',
 'mmt_r',
 'wfc3_f105w',
 'spire_350',
 'decam_y',
 'suprime_ib505',
 'cfht12k_b',
 '90prime_z',
 'omegacam_u',
 'suprime_ip',
 'isaac_k',
 'galex_nuv',
 'acs_f775w',
 'moircs_k',
 'sdss_z',
 'acs_f606w',
 'cfht12k_r',
 'decam_i',
 'quirc_hk',
 'mmt_u',
 'suprime_zpp',
 'suprime_ia624',
 'megacam_r',
 'bessell_v',
 'wircam_ks',
 'mips_24',
 'omega2000_j',
 'wfi_r',
 'spire_250',
 'suprime_r',
 'gpc1_i',
 'suprime_g',
 'bessell_b',
 'bessell_u',
 'mosaic_r',
 'wfi_753nm',
 'acs_f850lp',
 'ukidss_y',
 'megacam_g',
 'wfc_z',
 'lbc_u',
 'suprime_ia527',
 'wfc_i',
 'wfi_b123',
 'gpc1_y',
 'suprime_b',
 'wfi_b',
 'wfi_u',
 'suprime_ia679',
 'ukidss_j',
 'suprime_ib827',
 'suprime_ia484',
 'ukidss_k',
 'megacam_u',
 'newfirm_j1',
 'suprime_n816',
 'gpc1_z',
 'newfirm_j3',
 'suprime_v',
 'wfi_v',
 'mosaic_b',
 'mosaic_u',
 'ukidss_h',
 'bessell_r',
 'suprime_ib574',
 'newfirm_j2',
 'suprime_zp',
 'wfc3_f140w',
 'suprime_z',
 'irac_i3',
 'irac_i2',
 'bessell_i',
 'megacam_z',
 'vista_z',
 'wfc_g',
 'wfi_856nm',
 'wfc_r',
 'suprime_y',
 'vista_ks',
 'irac_i1',
 'acs_f814w',
 'mosaic_z',
 'megacam_y',
 'suprime_ib427',
 'wfc3_f160w',
 'wfi_646nm',
 'vista_y',
 'suprime_nb711',
 'spire_500',
 'pacs_red',
 'gpc1_g',
 'newfirm_h1',
 'suprime_ia738',
 'vista_j',
 'mosaic_i',
 'irac_i4',
 'wfi_815nm',
 'lbc_y',
 'newfirm_h2',
 'wfi_485nm',
 'megacam_i',
 'moircs_ks',
 'nicmos_f160w',
 'wfi_i',
 'acs_f435w',
 'vista_h',
 'suprime_i',
 'gpc1_r',
 'wfc_u',
 'wfi_461nm',
 'cfht12k_i',
 'wfc3_f098m',
 'newfirm_h',
 'decam_r',
 'omegacam_z',
 'pacs_green',
 'nicmos_f110w',
 'wfi_914nm',
 'sdss_u',
 'suprime_rc',
 'wircam_y',
 'newfirm_k',
 'omega2000_ks',
 'mmt_z',
 'wfi_518nm',
 'decam_g',
 'tifkam_ks',
 'newfirm_j',
 'wircs_j',
 'suprime_ia767',
 'sdss_r',
 'suprime_n921',
 'mmt_i',
 'wfi_604nm',
 'wircs_k',
 'galex_fuv',
 '90prime_r',
 'wircam_j',
 'suprime_ib709',
 'wircam_h',
 'suprime_rp',
 '90prime_g',
 'hawki_k',
 'omegacam_i',
 'sdss_g']
In [7]:
irac_i1_query="""
SELECT DISTINCT hp_idx_O_10, ferr_ap_irac_i1_mean
FROM depth.main
WHERE ferr_ap_irac_i1_mean IS NOT NULL
"""

#Then we execute the query
#resultset = service.run_async(irac_i1_query)
job = service.submit_job(irac_i1_query)
job.run()
job_url = job.url
job_result = vo.dal.tap.AsyncTAPJob(job_url)
start_time = time.time()
while job.phase == 'EXECUTING':
    print('Job still running after {} seconds.'.format(round(time.time() - start_time)))
    time.sleep(10) #wait ten seconds and try again
    
table = job_result.fetch_result() 
i1_table = table.table
Job still running after 0 seconds.
Job still running after 11 seconds.
Job still running after 21 seconds.
In [8]:
i1_table
Out[8]:
Table masked=True length=83313
hp_idx_o_10ferr_ap_irac_i1_mean
uJy
int64float64
15475061.43366666666667
15475071.52794117647059
15475101.66105263157895
15475111.94072727272727
15475121.62485294117647
15475131.03740540540541
15475141.42491329479769
15475150.732934782608696
15475161.19547872340426
......
11870851206.8402
11870852106.708244
11870853261.2762
11870854265.9595
11870855260.12
11870856303.03732
11870857232.01556
11870858557.28467
11870860679.73
11870864152.82677
In [9]:
plt.hist(np.log10(i1_table['ferr_ap_irac_i1_mean']) )
Out[9]:
(array([1.8694e+04, 3.2534e+04, 3.2980e+03, 1.0970e+03, 1.2085e+04,
        1.4502e+04, 1.0610e+03, 3.7000e+01, 2.0000e+00, 3.0000e+00]),
 array([-0.49291727, -0.01875222,  0.45541283,  0.92957788,  1.40374293,
         1.87790798,  2.35207303,  2.82623808,  3.30040313,  3.77456818,
         4.24873323]),
 <a list of 10 Patch objects>)
In [10]:
irac_i1_moc = MOC(10, i1_table['hp_idx_o_10'])
irac_i1_moc.area_sq_deg
total_area = irac_i1_moc.area_sq_deg
total_area
Out[10]:
273.1409041542108
In [11]:
fig, ax = plt.subplots()

cells, fluxes = np.histogram(np.log10(i1_table['ferr_ap_irac_i1_mean']*1.e-6), bins=50)
ax.plot(fluxes[1:],
         np.cumsum(cells)*total_area/cells.sum() ,
        drawstyle='steps')

ax.set_xlabel('Log$_{10}$ ( Mean IRAC 1 flux error [Jy] )')
ax.set_ylabel('Cumulative area [deg.$^2$]')
ax.set_xlim([-6.5,-3.0])
#y_vals = ax.get_yticks()
#ax.set_yticklabels([n for n in y_vals])

plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

column_width_cm = 8.9
width_cm = 1.4 * column_width_cm
hieght_cm = width_cm / 1.618
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)

plt.tight_layout()
plt.savefig('./figs/IRAC_i1_cumulative_area_depth.pdf')
plt.savefig('./figs/IRAC_i1_cumulative_area_depth.png')
In [12]:
i1_p25, i1_p50, i1_p75 = np.nanpercentile(i1_table['ferr_ap_irac_i1_mean'] * 3.,[25, 50, 75])
"""
The IRAC i1 band has coverage over {} square degrees with  3 sigma 
depths at the 25th, 50th and 75th percentiles of {}, {}, {} respectively.""".format(total_area, i1_p25, i1_p50, i1_p75)
Out[12]:
'\nThe IRAC i1 band has coverage over 273.1409041542108 square degrees with  3 sigma \ndepths at the 25th, 50th and 75th percentiles of 2.955037033451454, 5.86515255980631, 176.669196 respectively.'

In mags as per reviewer request

In [56]:
fig, ax = plt.subplots()

i1_pix_mag_depths, _ = flux_to_mag(i1_table['ferr_ap_irac_i1_mean']*1.e-6*5)
cells, fluxes = np.histogram(i1_pix_mag_depths, bins=1000)
#We want cumulative from faint to bright
cells =np.flip(cells)
fluxes = np.flip(fluxes)
ax.plot(fluxes[1:],
         np.cumsum(cells)*total_area/cells.sum() ,
        drawstyle='steps')

ax.set_xlabel('5$\sigma$ IRAC $i1$ depth [mag]')
ax.set_ylabel('Cumulative area [deg.$^2$]')
ax.set_xlim([23,16])
ax.set_ylim([0,300])
#y_vals = ax.get_yticks()
#ax.set_yticklabels([n for n in y_vals])

plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

column_width_cm = 8.9
width_cm = 1.0 * column_width_cm
hieght_cm = width_cm 
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)



plt.savefig('./figs/IRAC_i1_cumulative_area_depth_mag.pdf', bbox_inches='tight')
plt.savefig('./figs/IRAC_i1_cumulative_area_depth_mag.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [14]:
mi1_p25, mi1_p50, mi1_p75 = np.nanpercentile(i1_pix_mag_depths ,[25, 50, 75])
"""
The IRAC i1 band has coverage over {} square degrees with  5 sigma 
depths at the 25th, 50th and 75th percentiles of {}, {}, {} respectively.""".format(total_area, mi1_p25, mi1_p50, mi1_p75)
Out[14]:
'\nThe IRAC i1 band has coverage over 273.1409041542108 square degrees with  5 sigma \ndepths at the 25th, 50th and 75th percentiles of 17.727476044402813, 21.424679843133582, 22.16897080604381 respectively.'

g bands

There are multiple g type bands so we the the maximum depth of all of them.

In [15]:
g_filters = [f for f in filters if f.split('_')[1] == 'g']
spaced_list = ''
for g in g_filters:
    spaced_list = spaced_list + ', ferr_ap_' + g + '_mean'
print(spaced_list)
, ferr_ap_mmt_g_mean, ferr_ap_omegacam_g_mean, ferr_ap_suprime_g_mean, ferr_ap_megacam_g_mean, ferr_ap_wfc_g_mean, ferr_ap_gpc1_g_mean, ferr_ap_decam_g_mean, ferr_ap_90prime_g_mean, ferr_ap_sdss_g_mean
In [16]:
g_bands_query="""
SELECT DISTINCT hp_idx_O_10{}
FROM depth.main

""".format(spaced_list)
g_bands_query
Out[16]:
'\nSELECT DISTINCT hp_idx_O_10, ferr_ap_mmt_g_mean, ferr_ap_omegacam_g_mean, ferr_ap_suprime_g_mean, ferr_ap_megacam_g_mean, ferr_ap_wfc_g_mean, ferr_ap_gpc1_g_mean, ferr_ap_decam_g_mean, ferr_ap_90prime_g_mean, ferr_ap_sdss_g_mean\nFROM depth.main\n\n'
In [17]:
#Then we execute the query
#resultset = service.run_async(irac_i1_query)
job = service.submit_job(g_bands_query)
job.run()
job_url = job.url
job_result = vo.dal.tap.AsyncTAPJob(job_url)
start_time = time.time()
while job.phase == 'EXECUTING':
    print('Job still running after {} seconds.'.format(round(time.time() - start_time)))
    time.sleep(10) #wait ten seconds and try again
    
print(job.phase)
table = job_result.fetch_result() 
Job still running after 0 seconds.
Job still running after 11 seconds.
Job still running after 21 seconds.
Job still running after 32 seconds.
Job still running after 42 seconds.
Job still running after 52 seconds.
COMPLETED
In [18]:
g_depth_cols  = ["ferr_ap_{}_mean".format(band) for band in g_filters]
g_depth_cols
Out[18]:
['ferr_ap_mmt_g_mean',
 'ferr_ap_omegacam_g_mean',
 'ferr_ap_suprime_g_mean',
 'ferr_ap_megacam_g_mean',
 'ferr_ap_wfc_g_mean',
 'ferr_ap_gpc1_g_mean',
 'ferr_ap_decam_g_mean',
 'ferr_ap_90prime_g_mean',
 'ferr_ap_sdss_g_mean']
In [19]:
g_table = Table(table.table)
for col in g_depth_cols:
    g_table[col].fill_value = np.nan
g_table = g_table.filled()
In [20]:
np.nanmin([g_table[column] for column in g_depth_cols], axis=0)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:1: RuntimeWarning: All-NaN axis encountered
  if __name__ == '__main__':
Out[20]:
array([2.07127300e-07, 2.18198880e-07, 1.93754770e-07, ...,
       6.84728411e-01, 4.62498951e-01, 5.92936370e-01])
In [21]:
for col in g_depth_cols:
    print(col, np.sum(np.log10(np.array(g_table[col])*1.e-6) < -9))
ferr_ap_mmt_g_mean 0
ferr_ap_omegacam_g_mean 0
ferr_ap_suprime_g_mean 0
ferr_ap_megacam_g_mean 4
ferr_ap_wfc_g_mean 0
ferr_ap_gpc1_g_mean 2
ferr_ap_decam_g_mean 42483
ferr_ap_90prime_g_mean 9564
ferr_ap_sdss_g_mean 0
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:2: RuntimeWarning: invalid value encountered in less
  from ipykernel import kernelapp as app
In [22]:
decam_low = (np.log10(np.array(g_table['ferr_ap_decam_g_mean'])*1.e-6) < -9)
prime_low = (np.log10(np.array(g_table['ferr_ap_90prime_g_mean'])*1.e-6) < -9)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:1: RuntimeWarning: invalid value encountered in less
  if __name__ == '__main__':
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:2: RuntimeWarning: invalid value encountered in less
  from ipykernel import kernelapp as app
In [23]:
decam_bad_moc = MOC(10, g_table['hp_idx_o_10'][decam_low])
prime_bad_moc = MOC(10, g_table['hp_idx_o_10'][decam_low])

fields = yaml.load(open('../../../dmu2/meta_main.yml', 'r'))


for field in fields['fields']:
    field_moc = MOC(filename=field['region'].replace('dmu_products/', '../../../'))
    decam_bad_area = decam_bad_moc.intersection(field_moc).area_sq_deg
    prime_bad_area = prime_bad_moc.intersection(field_moc).area_sq_deg
    print("{} has {} sq deg of bad DECam and {} sq degrees of bad 90Prime".format(field['name'], 
                                                                                  decam_bad_area, 
                                                                                  prime_bad_area))
AKARI-NEP has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
AKARI-SEP has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
Bootes has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
CDFS-SWIRE has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
COSMOS has 4.993602528615098 sq deg of bad DECam and 4.993602528615098 sq degrees of bad 90Prime
EGS has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
ELAIS-N1 has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
ELAIS-N2 has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
ELAIS-S1 has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
GAMA-09 has 58.83676922758017 sq deg of bad DECam and 58.83676922758017 sq degrees of bad 90Prime
GAMA-12 has 41.50292732171963 sq deg of bad DECam and 41.50292732171963 sq degrees of bad 90Prime
GAMA-15 has 24.055567671853485 sq deg of bad DECam and 24.055567671853485 sq degrees of bad 90Prime
HDF-N has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
Herschel-Stripe-82 has 7.849065563976479 sq deg of bad DECam and 7.849065563976479 sq degrees of bad 90Prime
Lockman-SWIRE has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
HATLAS-NGP has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
SA13 has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
HATLAS-SGP has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
SPIRE-NEP has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
SSDF has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
xFLS has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
XMM-13hr has 0.0 sq deg of bad DECam and 0.0 sq degrees of bad 90Prime
XMM-LSS has 0.04267160683965466 sq deg of bad DECam and 0.04267160683965466 sq degrees of bad 90Prime
In [24]:
g_table['ferr_ap_decam_g_mean'][decam_low] = g_table['ferr_ap_decam_g_mean'][decam_low] * 1.e6
g_table['ferr_ap_90prime_g_mean'][prime_low] = g_table['ferr_ap_90prime_g_mean'][prime_low] * 1.e6
In [25]:
g_table.add_column(Column(data=np.nanmin([g_table[column] for column in g_depth_cols], axis=0), name='ferr_g_min'))
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:1: RuntimeWarning: All-NaN axis encountered
  if __name__ == '__main__':
In [26]:
g_table['hp_idx_o_10', 'ferr_g_min']
Out[26]:
Table length=394298
hp_idx_o_10ferr_g_min
int64float64
10485760.01926224
10485770.020717567
10485780.021378249
10485790.021092668
10485800.020199573
10485810.022394473
10485820.020951325
10485830.020383537
10485840.022677435
10485850.021453133
......
120429830.470593447975413
120429850.401245270265415
120430081.12891318891637
120430090.508966908339133
120430100.494158403628982
120430110.577247280662618
120430120.445860992796356
120430160.684728410968042
120430170.462498951222175
120430180.592936370182139
In [27]:
g_moc = MOC(10, g_table['hp_idx_o_10'])
g_moc.area_sq_deg
total_area_g = g_moc.area_sq_deg
total_area_g
Out[27]:
1292.6302392940547
In [28]:
g_table['hp_idx_o_10', 'ferr_g_min']

fig, ax = plt.subplots()

good = np.log10(np.array(g_table['ferr_g_min'])*1.e-6) > -20
good &= np.log10(np.array(g_table['ferr_g_min'])*1.e-6) <20

cells, fluxes = np.histogram(np.log10(np.array(g_table['ferr_g_min'][good ])*1.e-6), bins=100)
ax.plot(fluxes[1:],
         np.cumsum(cells)*1270./cells.sum() ,
        drawstyle='steps')

ax.set_xlabel('Log$_{10}$ ( Mean g flux error [Jy] )')
ax.set_ylabel('Cumulative area [deg.$^2$]')
ax.set_xlim([-8,-4.0])
#y_vals = ax.get_yticks()
#ax.set_yticklabels([n for n in y_vals])



plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

column_width_cm = 8.9
width_cm = 1.0 * column_width_cm
hieght_cm = width_cm / 1.618
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)

plt.tight_layout()
plt.savefig('./figs/g_cumulative_area_depth.pdf')
plt.savefig('./figs/g_cumulative_area_depth.png')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:5: RuntimeWarning: invalid value encountered in greater
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:6: RuntimeWarning: invalid value encountered in less
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [29]:
g_p25, g_p50, g_p75 = np.nanpercentile(g_table['ferr_g_min'][good ] * 3.,[25, 50, 75])
"""
The g band has coverage over {} square degrees with  3 sigma 
depths at the 25th, 50th and 75th percentiles of {}, {}, {} respectively.""".format(1270, g_p25, g_p50, g_p75)
Out[29]:
'\nThe g band has coverage over 1270 square degrees with  3 sigma \ndepths at the 25th, 50th and 75th percentiles of 0.30178651661213773, 0.367626929893692, 0.8854647236256772 respectively.'

In mags as per reviewer request

In [53]:
g_table['hp_idx_o_10', 'ferr_g_min']

fig, ax = plt.subplots()

good = np.log10(np.array(g_table['ferr_g_min'])*1.e-6) > -20
good &= np.log10(np.array(g_table['ferr_g_min'])*1.e-6) <20

g_pix_mag_depths, _ = flux_to_mag(np.array(g_table['ferr_g_min'][good ])*1.e-6*5)
cells, fluxes = np.histogram(g_pix_mag_depths, bins=1000)
cells =np.flip(cells)
fluxes = np.flip(fluxes)

ax.plot(fluxes[1:],
         np.cumsum(cells)*1270./cells.sum() ,
        drawstyle='steps')

ax.set_xlabel('5$\sigma$ $g$ depth [mag] ')
ax.set_ylabel('Cumulative area [deg.$^2$]')
ax.set_xlim([27,20])
ax.set_ylim([0,1300])
#y_vals = ax.get_yticks()
#ax.set_yticklabels([n for n in y_vals])



plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

column_width_cm = 8.9
width_cm = 1.0 * column_width_cm
hieght_cm = width_cm 
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)


plt.savefig('./figs/g_cumulative_area_depth_mag.pdf', bbox_inches='tight')
plt.savefig('./figs/g_cumulative_area_depth_mag.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:5: RuntimeWarning: invalid value encountered in greater
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:6: RuntimeWarning: invalid value encountered in less
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [31]:
mg_p25, mg_p50, mg_p75 = np.nanpercentile(g_pix_mag_depths,[25, 50, 75])
"""
The g band has coverage over {} square degrees with  3 sigma 
depths at the 25th, 50th and 75th percentiles of {}, {}, {} respectively.""".format(1270, mg_p25, mg_p50, mg_p75)
Out[31]:
'\nThe g band has coverage over 1270 square degrees with  3 sigma \ndepths at the 25th, 50th and 75th percentiles of 23.47744996638206, 24.43185983247774, 24.646128545411877 respectively.'
In [32]:
g_table[prime_low]
Out[32]:
Table length=9564
hp_idx_o_10ferr_ap_mmt_g_meanferr_ap_omegacam_g_meanferr_ap_suprime_g_meanferr_ap_megacam_g_meanferr_ap_wfc_g_meanferr_ap_gpc1_g_meanferr_ap_decam_g_meanferr_ap_90prime_g_meanferr_ap_sdss_g_meanferr_g_min
uJyuJyuJyuJyuJyuJyuJyuJyuJy
int64float64float64float64float64float64float64float64float64float64float64
2652662nannannannannan0.987825059481603nan0.20031881999999998nan0.20031881999999998
2652663nannannannannan42.3153061976883nan0.1769414nan0.1769414
2652667nannannannannan0.777482608504748nan0.200318nan0.200318
2652668nannannannannan1.21649049703478nan0.20031815nan0.20031815
2652669nannannannannan26.3897794278116nan0.18906452nan0.18906452
2652670nannannannannan0.909743596951121nan0.2003182nan0.2003182
2652671nannannannannan0.907613326799461nan0.20031814nan0.20031814
2652983nannannannannan0.759221342327773nan0.19815181nan0.19815181
2652985nannannannannan0.709532414323448nan0.19815195nan0.19815195
.................................
2758725nannannannannan0.962989379875482nan0.16304098nan0.16304098
2758726nannannannannan1.592190840778nan0.16239852nan0.16239852
2758727nannannannannan1.68717381553481nan0.1647915nan0.1647915
2758728nannannannannan1.41524050155837nan0.17226333nan0.17226333
2758729nannannannannan1549.36707196568nan0.16137253nan0.16137253
2758730nannannannannan1.5850016725736nan0.16344784nan0.16344784
2758732nannannannannannannan0.1635113nan0.1635113
2758736nannannannannan0.829615297934712nan0.20959587nan0.20959587
2758737nannannannannan0.892086609466304nan0.22579443999999999nan0.22579443999999999
2758784nannannannannan0.88569399826493nan0.1444143nan0.1444143

K or Ks filters

the same for K

In [33]:
K_filters = [f for f in filters if f.split('_')[1].startswith('k')]
K_filters
Out[33]:
['isaac_k',
 'moircs_k',
 'wircam_ks',
 'ukidss_k',
 'vista_ks',
 'moircs_ks',
 'newfirm_k',
 'omega2000_ks',
 'tifkam_ks',
 'wircs_k',
 'hawki_k']
In [34]:
spaced_list = ''
for K in K_filters:
    spaced_list = spaced_list + ', ferr_ap_' + K + '_mean'
print(spaced_list)
, ferr_ap_isaac_k_mean, ferr_ap_moircs_k_mean, ferr_ap_wircam_ks_mean, ferr_ap_ukidss_k_mean, ferr_ap_vista_ks_mean, ferr_ap_moircs_ks_mean, ferr_ap_newfirm_k_mean, ferr_ap_omega2000_ks_mean, ferr_ap_tifkam_ks_mean, ferr_ap_wircs_k_mean, ferr_ap_hawki_k_mean
In [35]:
K_bands_query="""
SELECT DISTINCT hp_idx_O_10{}
FROM depth.main

""".format(spaced_list)
K_bands_query
Out[35]:
'\nSELECT DISTINCT hp_idx_O_10, ferr_ap_isaac_k_mean, ferr_ap_moircs_k_mean, ferr_ap_wircam_ks_mean, ferr_ap_ukidss_k_mean, ferr_ap_vista_ks_mean, ferr_ap_moircs_ks_mean, ferr_ap_newfirm_k_mean, ferr_ap_omega2000_ks_mean, ferr_ap_tifkam_ks_mean, ferr_ap_wircs_k_mean, ferr_ap_hawki_k_mean\nFROM depth.main\n\n'
In [36]:
#Then we execute the query
#resultset = service.run_async(irac_i1_query)
job = service.submit_job(K_bands_query)
job.run()
job_url = job.url
job_result = vo.dal.tap.AsyncTAPJob(job_url)
start_time = time.time()
while job.phase == 'EXECUTING':
    print('Job still running after {} seconds.'.format(round(time.time() - start_time)))
    time.sleep(10) #wait ten seconds and try again
    
print(job.phase)
table = job_result.fetch_result() 
Job still running after 0 seconds.
Job still running after 11 seconds.
Job still running after 21 seconds.
Job still running after 32 seconds.
Job still running after 42 seconds.
COMPLETED
In [37]:
depth_cols  = ["ferr_ap_{}_mean".format(band) for band in K_filters]
depth_cols
Out[37]:
['ferr_ap_isaac_k_mean',
 'ferr_ap_moircs_k_mean',
 'ferr_ap_wircam_ks_mean',
 'ferr_ap_ukidss_k_mean',
 'ferr_ap_vista_ks_mean',
 'ferr_ap_moircs_ks_mean',
 'ferr_ap_newfirm_k_mean',
 'ferr_ap_omega2000_ks_mean',
 'ferr_ap_tifkam_ks_mean',
 'ferr_ap_wircs_k_mean',
 'ferr_ap_hawki_k_mean']
In [38]:
K_table = Table(table.table)
for col in depth_cols:
    K_table[col].fill_value = np.nan
K_table = K_table.filled()
In [39]:
len(K_table)
Out[39]:
394298
In [40]:
K_table.add_column(Column(data=np.nanmin([K_table[column] for column in depth_cols], axis=0), name='ferr_K_min'))
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:1: RuntimeWarning: All-NaN axis encountered
  if __name__ == '__main__':
In [41]:
np.sum(np.isnan(K_table['ferr_K_min'] ))
Out[41]:
44649
In [42]:
K_moc = MOC(10, K_table[~np.isnan(K_table['ferr_K_min'] )]['hp_idx_o_10'])
K_moc.area_sq_deg
total_area_K = K_moc.area_sq_deg
total_area_K
Out[42]:
1146.2587389655478
In [43]:
K_table['hp_idx_o_10', 'ferr_K_min']

fig, ax = plt.subplots()

good = np.log10(np.array(K_table['ferr_K_min'])*1.e-6) > -20
good &= np.log10(np.array(K_table['ferr_K_min'])*1.e-6) <20

cells, fluxes = np.histogram(np.log10(np.array(K_table['ferr_K_min'][good ])*1.e-6), bins=100)
ax.plot(fluxes[1:],
         np.cumsum(cells)*total_area_K/cells.sum() ,
        drawstyle='steps')

ax.set_xlabel('Log$_{10}$ ( Mean K or Ks flux error [Jy] )')
ax.set_ylabel('Cumulative area [deg.$^2$]')
ax.set_xlim([-6.5,-4.5])
#y_vals = ax.get_yticks()
#ax.set_yticklabels([n for n in y_vals])

plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

column_width_cm = 8.9
width_cm = 1.4 * column_width_cm
hieght_cm = width_cm / 1.618
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)
plt.tight_layout()

plt.savefig('./figs/K_cumulative_area_depth.pdf')
plt.savefig('./figs/K_cumulative_area_depth.png')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:5: RuntimeWarning: divide by zero encountered in log10
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:5: RuntimeWarning: invalid value encountered in greater
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:6: RuntimeWarning: divide by zero encountered in log10
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:6: RuntimeWarning: invalid value encountered in less
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [44]:
K_p25, K_p50, K_p75 = np.nanpercentile(K_table['ferr_K_min'][good ] * 3.,[25, 50, 75])
"""
The K band has coverage over {} square degrees with  3 sigma 
depths at the 25th, 50th and 75th percentiles of {}, {}, {} respectively.""".format(total_area_K, K_p25, K_p50, K_p75)
Out[44]:
'\nThe K band has coverage over 1146.2587389655478 square degrees with  3 sigma \ndepths at the 25th, 50th and 75th percentiles of 8.507107317226373, 15.31927155, 18.434229287923927 respectively.'

And in mags as per reviewer request

In [50]:
K_table['hp_idx_o_10', 'ferr_K_min']

fig, ax = plt.subplots()

good = np.log10(np.array(K_table['ferr_K_min'])*1.e-6) > -20
good &= np.log10(np.array(K_table['ferr_K_min'])*1.e-6) <20

#cells, fluxes = np.histogram(np.log10(np.array(K_table['ferr_K_min'][good ])*1.e-6), bins=100)

K_pix_mag_depths, _ = flux_to_mag(np.array(K_table['ferr_K_min'][good ])*1.e-6*5)
cells, fluxes = np.histogram(K_pix_mag_depths, bins=1000)
cells =np.flip(cells)
fluxes = np.flip(fluxes)



ax.plot(fluxes[1:],
         np.cumsum(cells)*total_area_K/cells.sum() ,
        drawstyle='steps')

ax.set_xlabel('5$\sigma$ $K$ or $Ks$ depth [mag]')
ax.set_ylabel('Cumulative area [deg.$^2$]')
ax.set_xlim([22,19])
ax.set_ylim([0,1200])
#y_vals = ax.get_yticks()
#ax.set_yticklabels([n for n in y_vals])

plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

column_width_cm = 8.9
width_cm = 1.0 * column_width_cm
hieght_cm = width_cm 
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)


plt.savefig('./figs/K_cumulative_area_depth_mag.pdf', bbox_inches='tight')
plt.savefig('./figs/K_cumulative_area_depth_mag.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:5: RuntimeWarning: divide by zero encountered in log10
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:5: RuntimeWarning: invalid value encountered in greater
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:6: RuntimeWarning: divide by zero encountered in log10
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:6: RuntimeWarning: invalid value encountered in less
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [49]:
K_p25, K_p50, K_p75 = np.nanpercentile(K_pix_mag_depths,[25, 50, 75])
("The K or Ks band has coverage over {} square degrees with  5 sigma"  +
"depths at the 25th, 50th and 75th percentiles of {}, {}, {} respectively.").format(total_area_K, K_p25, K_p50, K_p75)
Out[49]:
'The IRAC i1 band has coverage over 1273 square degrees with  5 sigmadepths at the 25th, 50th and 75th percentiles of 20.181315663428137, 20.38228283956797, 21.020923347289685 respectively.'

Make a table of bands available on each field

In [50]:
bands = ['u', 'g', 'r', 'i', 'z', 'y',
        'J', 'H', 'K', 'Ks',
        'i1', 'i2', 'i3', 'i4']
In [51]:
spaced_list = ''
for m, band in enumerate(bands):
    specific_bands = [f for f in filters if f.split('_')[1] == band.lower()]
    for specific_band in specific_bands:
        spaced_list = spaced_list + ', ferr_ap_' + specific_band + '_mean'
        
spaced_list = spaced_list.replace(' ferr_ap_lbc_u_mean,', '')
spaced_list = spaced_list.replace(' ferr_ap_lbc_y_mean,', '')
In [52]:
spaced_list
Out[52]:
', ferr_ap_omegacam_u_mean, ferr_ap_mmt_u_mean, ferr_ap_bessell_u_mean, ferr_ap_wfi_u_mean, ferr_ap_megacam_u_mean, ferr_ap_mosaic_u_mean, ferr_ap_wfc_u_mean, ferr_ap_sdss_u_mean, ferr_ap_mmt_g_mean, ferr_ap_omegacam_g_mean, ferr_ap_suprime_g_mean, ferr_ap_megacam_g_mean, ferr_ap_wfc_g_mean, ferr_ap_gpc1_g_mean, ferr_ap_decam_g_mean, ferr_ap_90prime_g_mean, ferr_ap_sdss_g_mean, ferr_ap_omegacam_r_mean, ferr_ap_mmt_r_mean, ferr_ap_cfht12k_r_mean, ferr_ap_megacam_r_mean, ferr_ap_wfi_r_mean, ferr_ap_suprime_r_mean, ferr_ap_mosaic_r_mean, ferr_ap_bessell_r_mean, ferr_ap_wfc_r_mean, ferr_ap_gpc1_r_mean, ferr_ap_decam_r_mean, ferr_ap_sdss_r_mean, ferr_ap_90prime_r_mean, ferr_ap_sdss_i_mean, ferr_ap_decam_i_mean, ferr_ap_gpc1_i_mean, ferr_ap_wfc_i_mean, ferr_ap_bessell_i_mean, ferr_ap_mosaic_i_mean, ferr_ap_megacam_i_mean, ferr_ap_wfi_i_mean, ferr_ap_suprime_i_mean, ferr_ap_cfht12k_i_mean, ferr_ap_mmt_i_mean, ferr_ap_omegacam_i_mean, ferr_ap_decam_z_mean, ferr_ap_90prime_z_mean, ferr_ap_sdss_z_mean, ferr_ap_wfc_z_mean, ferr_ap_gpc1_z_mean, ferr_ap_suprime_z_mean, ferr_ap_megacam_z_mean, ferr_ap_vista_z_mean, ferr_ap_mosaic_z_mean, ferr_ap_omegacam_z_mean, ferr_ap_mmt_z_mean, ferr_ap_decam_y_mean, ferr_ap_ukidss_y_mean, ferr_ap_gpc1_y_mean, ferr_ap_suprime_y_mean, ferr_ap_megacam_y_mean, ferr_ap_vista_y_mean, ferr_ap_wircam_y_mean, ferr_ap_omega2000_j_mean, ferr_ap_ukidss_j_mean, ferr_ap_vista_j_mean, ferr_ap_newfirm_j_mean, ferr_ap_wircs_j_mean, ferr_ap_wircam_j_mean, ferr_ap_ukidss_h_mean, ferr_ap_vista_h_mean, ferr_ap_newfirm_h_mean, ferr_ap_wircam_h_mean, ferr_ap_isaac_k_mean, ferr_ap_moircs_k_mean, ferr_ap_ukidss_k_mean, ferr_ap_newfirm_k_mean, ferr_ap_wircs_k_mean, ferr_ap_hawki_k_mean, ferr_ap_wircam_ks_mean, ferr_ap_vista_ks_mean, ferr_ap_moircs_ks_mean, ferr_ap_omega2000_ks_mean, ferr_ap_tifkam_ks_mean, ferr_ap_irac_i1_mean, ferr_ap_irac_i2_mean, ferr_ap_irac_i3_mean, ferr_ap_irac_i4_mean'
In [74]:
query = """
SELECT DISTINCT hp_idx_O_10{}
FROM depth.main
""".format(spaced_list)
job = service.submit_job(query)
job.run()
job_url = job.url
job_result = vo.dal.tap.AsyncTAPJob(job_url)
start_time = time.time()
print(time.time())
while job.phase == 'EXECUTING':
    print('Job still running after {} seconds.'.format(round(time.time() - start_time)))
    time.sleep(50) #wait ten seconds and try again
    
print(job.phase)
print('Fetching result', time.time())
table = job_result.fetch_result()
1563286732.845642
Job still running after 0 seconds.
Job still running after 51 seconds.
Job still running after 101 seconds.
Job still running after 152 seconds.
Job still running after 202 seconds.
COMPLETED
Fetching result 1563286985.4900851
WARNING: W06: None:2:20168: W06: Invalid UCD 'stat.error;phot.flux;em.IR.I': Unknown word 'em.IR.I' [astropy.io.votable.tree]
WARNING:astropy:W06: None:2:20168: W06: Invalid UCD 'stat.error;phot.flux;em.IR.I': Unknown word 'em.IR.I'
WARNING: W06: None:2:20456: W06: Invalid UCD 'stat.error;phot.flux;em.opt.J': Unknown word 'em.opt.J' [astropy.io.votable.tree]
WARNING:astropy:W06: None:2:20456: W06: Invalid UCD 'stat.error;phot.flux;em.opt.J': Unknown word 'em.opt.J'
In [75]:
depth_table = table.table
depth_table 
Out[75]:
Table masked=True length=394298
hp_idx_o_10ferr_ap_omegacam_u_meanferr_ap_mmt_u_meanferr_ap_bessell_u_meanferr_ap_wfi_u_meanferr_ap_megacam_u_meanferr_ap_mosaic_u_meanferr_ap_wfc_u_meanferr_ap_sdss_u_meanferr_ap_mmt_g_meanferr_ap_omegacam_g_meanferr_ap_suprime_g_meanferr_ap_megacam_g_meanferr_ap_wfc_g_meanferr_ap_gpc1_g_meanferr_ap_decam_g_meanferr_ap_90prime_g_meanferr_ap_sdss_g_meanferr_ap_omegacam_r_meanferr_ap_mmt_r_meanferr_ap_cfht12k_r_meanferr_ap_megacam_r_meanferr_ap_wfi_r_meanferr_ap_suprime_r_meanferr_ap_mosaic_r_meanferr_ap_bessell_r_meanferr_ap_wfc_r_meanferr_ap_gpc1_r_meanferr_ap_decam_r_meanferr_ap_sdss_r_meanferr_ap_90prime_r_meanferr_ap_sdss_i_meanferr_ap_decam_i_meanferr_ap_gpc1_i_meanferr_ap_wfc_i_meanferr_ap_bessell_i_meanferr_ap_mosaic_i_meanferr_ap_megacam_i_meanferr_ap_wfi_i_meanferr_ap_suprime_i_meanferr_ap_cfht12k_i_meanferr_ap_mmt_i_meanferr_ap_omegacam_i_meanferr_ap_decam_z_meanferr_ap_90prime_z_meanferr_ap_sdss_z_meanferr_ap_wfc_z_meanferr_ap_gpc1_z_meanferr_ap_suprime_z_meanferr_ap_megacam_z_meanferr_ap_vista_z_meanferr_ap_mosaic_z_meanferr_ap_omegacam_z_meanferr_ap_mmt_z_meanferr_ap_decam_y_meanferr_ap_ukidss_y_meanferr_ap_gpc1_y_meanferr_ap_suprime_y_meanferr_ap_megacam_y_meanferr_ap_vista_y_meanferr_ap_wircam_y_meanferr_ap_omega2000_j_meanferr_ap_ukidss_j_meanferr_ap_vista_j_meanferr_ap_newfirm_j_meanferr_ap_wircs_j_meanferr_ap_wircam_j_meanferr_ap_ukidss_h_meanferr_ap_vista_h_meanferr_ap_newfirm_h_meanferr_ap_wircam_h_meanferr_ap_isaac_k_meanferr_ap_moircs_k_meanferr_ap_ukidss_k_meanferr_ap_newfirm_k_meanferr_ap_wircs_k_meanferr_ap_hawki_k_meanferr_ap_wircam_ks_meanferr_ap_vista_ks_meanferr_ap_moircs_ks_meanferr_ap_omega2000_ks_meanferr_ap_tifkam_ks_meanferr_ap_irac_i1_meanferr_ap_irac_i2_meanferr_ap_irac_i3_meanferr_ap_irac_i4_mean
uJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJy
int64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64
10485760.3888968----------------0.101949260.01926224----0.914651119968882.071273e-07----0.13300735--------0.030870374------2.426566489712313.1425782e-07--------2.17693319900341----------0.041768204----0.231943522.2510854e-07------146.9257488416710.06151843--0.46263823--------3.296671268.08458139610890.14352015--------4.8629651.92945241928101------4.81787541.7355504155159--------6.3801355--------2.36790292603629--------------
10485770.3287----------------0.0970321740.020717567----1.949018876440962.1819888e-07----0.117325865--------0.03293594------2.403271712280063.3950195e-07--------2.99968585945623----------0.044771805----0.201813282.5253004e-07------5.54786802087020.06634453--0.46295264--------4.163386.020027352056440.1526159--------5.27893731.91976457834244------5.3912741.66691474914551--------6.573922--------2.3642338684627--------------
10485780.3846171----------------0.089479180.021378249----14.21975710784781.9375477e-07----0.11576792--------0.035876982------24.81654425113292.86895e-07--------2.29361599869134----------0.047181558----0.197261212.2915148e-07------387.5245888181730.06980607--0.5684549--------4.156373593.64581868093710.15956911--------6.45714572.23670622490454------5.9206472.36486881526548--------6.919189--------3.06828086159446--------------
10485790.37277982----------------0.106243430.021092668----1.580319762576192.2411628e-07----0.12313704--------0.03373764------1.957406343990243.246678e-07--------2.56385495210278----------0.04277464----0.212814032.2523724e-07------3.834828259274940.063606665--0.6386163--------3.80732635.78493689656930.14877433--------4.9358572.08620972292764------5.1515131.8796404004097--------6.4581065--------2.60780441455352--------------
10485800.2911744----------------0.093643980.020199573----1.476383890712892.1773542e-07----0.11573956--------0.03168788------1.440282604289523.1325948e-07--------1.59535184757387----------0.042326976----0.192295692.3032695e-07------2.487705507793430.06250173--0.62160707--------2.93573955.265480305286730.14537382--------4.0921221.78109755970183------4.37455131.78018177407128--------5.6970916--------2.52248514782299--------------
10485810.33193266----------------0.1093838140.022394473----82.05316576932732.130428e-07----0.12735996--------0.03486983------17.67839109213823.2084301e-07--------21.478622746853----------0.04694038----0.226708812.0998698e-07------116.2183699641380.069550596--0.79693997--------4.0269303191.8318905083770.16066769--------4.4635111.90774633487066------4.5666032.03642669806244--------6.03468--------2.77342678705851--------------
10485820.31823373----------------0.0949250460.020951325----0.9361374869963682.0650837e-07----0.11751947--------0.033160187------3.232261196815833.2076025e-07--------6.7363921433714----------0.04638167----0.196685512.1693563e-07------3.774653560201090.06910887--0.7444448--------3.83193685.792177155908660.16291834--------4.9496671.95878115219948------5.11814741.83907379195804--------6.4513354--------2.62036830054389--------------
10485830.25143299----------------0.091945610.020383537----0.902632847560151.9091698e-07----0.11914382--------0.031862717------1.280343734325423.0067554e-07--------0.914074638367121----------0.04413113----0.199043262.1251756e-07------2.122515736625010.06531107--0.6908586--------2.69367464.723645287475570.1515935--------4.0148271.84046977950681------4.31528661.75781759311413--------5.647315--------2.52217631393604--------------
10485840.36621407----------------0.094525430.022677435----1.395758479687152.0709993e-07----0.11679542--------0.03732341------1.333858640375253.0700738e-07--------1.56957843197039----------0.045192935----0.202252162.3029378e-07------2.637798383751430.06752495--0.72929496--------3.72044665.470301809319240.15900145--------4.8780651.98236000979388------5.06775141.81433707039531--------6.44909--------2.55789082050323--------------
..................................................................................................................................................................................................................................................................
12042983------------------0.470593447975413--------------0.705364210222036----------------------------------------------0.980352786966052--------------------------------------------------------------------------------------
12042985------------------0.401245270265415--------------0.631963384503022----------------------------------------------0.886734809470708--------------------------------------------------------------------------------------
120430083.43117117596714----------------1.12891318891637--------------1.56644287506227----------------------------------------------1.66926372262749------------------4.31668842759001------------------------------------------------------------------
120430091.81201014966394----------------0.508966908339133--------------0.890091881795282----------------------------------------------1.1312017674427------------------3.09896943585728------------------------------------------------------------------
120430102.49268285441886----------------0.494158403628982--------------0.909613505597342----------------------------------------------1.136793192659------------------3.12670346706475------------------------------------------------------------------
120430112.09373553263053----------------0.577247280662618--------------0.991298854740798----------------------------------------------1.22674660501041------------------3.39733806461695------------------------------------------------------------------
12043012------------------0.445860992796356--------------------------------------------------------------1.02642671074533--------------------------------------------------------------------------------------
120430163.58693278533988----------------0.684728410968042--------------1.19586028947091----------------------------------------------1.38443063072352------------------3.92742906404126------------------------------------------------------------------
12043017------------------0.462498951222175--------------0.85118486016068----------------------------------------------1.08096952471151------------------2.88149622026963------------------------------------------------------------------
120430182.01032084617047----------------0.592936370182139--------------1.04206028405916----------------------------------------------1.31215521774914------------------4.08352324846221------------------------------------------------------------------
In [76]:
cosmos_coverage = Table.read('../../../dmu1/dmu1_ml_COSMOS/data/depths_cosmos_20190402.fits')
In [77]:
cosmos_coverage[:10].show_in_notebook()
Out[77]:
Table length=10
idxhp_idx_O_13hp_idx_O_10ferr_ap_vista_ks_meanf_ap_vista_ks_p90ferr_vista_ks_meanf_vista_ks_p90ferr_ap_vista_y_meanf_ap_vista_y_p90ferr_vista_y_meanf_vista_y_p90ferr_ap_vista_h_meanf_ap_vista_h_p90ferr_vista_h_meanf_vista_h_p90ferr_ap_vista_j_meanf_ap_vista_j_p90ferr_vista_j_meanf_vista_j_p90ferr_ap_suprime_b_meanf_ap_suprime_b_p90ferr_suprime_b_meanf_suprime_b_p90ferr_ap_suprime_v_meanf_ap_suprime_v_p90ferr_suprime_v_meanf_suprime_v_p90ferr_ap_suprime_ip_meanf_ap_suprime_ip_p90ferr_suprime_ip_meanf_suprime_ip_p90ferr_ap_suprime_rc_meanf_ap_suprime_rc_p90ferr_suprime_rc_meanf_suprime_rc_p90ferr_ap_suprime_zp_meanf_ap_suprime_zp_p90ferr_suprime_zp_meanf_suprime_zp_p90ferr_ap_suprime_zpp_meanf_ap_suprime_zpp_p90ferr_suprime_zpp_meanf_suprime_zpp_p90ferr_ap_suprime_ia484_meanf_ap_suprime_ia484_p90ferr_suprime_ia484_meanf_suprime_ia484_p90ferr_ap_suprime_ia527_meanf_ap_suprime_ia527_p90ferr_suprime_ia527_meanf_suprime_ia527_p90ferr_ap_suprime_ia624_meanf_ap_suprime_ia624_p90ferr_suprime_ia624_meanf_suprime_ia624_p90ferr_ap_suprime_ia679_meanf_ap_suprime_ia679_p90ferr_suprime_ia679_meanf_suprime_ia679_p90ferr_ap_suprime_ia738_meanf_ap_suprime_ia738_p90ferr_suprime_ia738_meanf_suprime_ia738_p90ferr_ap_suprime_ia767_meanf_ap_suprime_ia767_p90ferr_suprime_ia767_meanf_suprime_ia767_p90ferr_ap_suprime_ib427_meanf_ap_suprime_ib427_p90ferr_suprime_ib427_meanf_suprime_ib427_p90ferr_ap_suprime_ib464_meanf_ap_suprime_ib464_p90ferr_suprime_ib464_meanf_suprime_ib464_p90ferr_ap_suprime_ib505_meanf_ap_suprime_ib505_p90ferr_suprime_ib505_meanf_suprime_ib505_p90ferr_ap_suprime_ib574_meanf_ap_suprime_ib574_p90ferr_suprime_ib574_meanf_suprime_ib574_p90ferr_ap_suprime_ib709_meanf_ap_suprime_ib709_p90ferr_suprime_ib709_meanf_suprime_ib709_p90ferr_ap_suprime_ib827_meanf_ap_suprime_ib827_p90ferr_suprime_ib827_meanf_suprime_ib827_p90ferr_ap_suprime_nb711_meanf_ap_suprime_nb711_p90ferr_suprime_nb711_meanf_suprime_nb711_p90ferr_ap_suprime_nb816_meanf_ap_suprime_nb816_p90ferr_suprime_nb816_meanf_suprime_nb816_p90ferr_ap_wfc3_f140w_meanf_ap_wfc3_f140w_p90ferr_wfc3_f140w_meanf_wfc3_f140w_p90ferr_ap_wfc3_f160w_meanf_ap_wfc3_f160w_p90ferr_wfc3_f160w_meanf_wfc3_f160w_p90ferr_ap_megacam_u_meanf_ap_megacam_u_p90ferr_megacam_u_meanf_megacam_u_p90ferr_ap_megacam_g_meanf_ap_megacam_g_p90ferr_megacam_g_meanf_megacam_g_p90ferr_ap_megacam_r_meanf_ap_megacam_r_p90ferr_megacam_r_meanf_megacam_r_p90ferr_ap_megacam_i_meanf_ap_megacam_i_p90ferr_megacam_i_meanf_megacam_i_p90ferr_ap_megacam_z_meanf_ap_megacam_z_p90ferr_megacam_z_meanf_megacam_z_p90ferr_ap_decam_g_meanf_ap_decam_g_p90ferr_decam_g_meanf_decam_g_p90ferr_ap_decam_r_meanf_ap_decam_r_p90ferr_decam_r_meanf_decam_r_p90ferr_ap_decam_z_meanf_ap_decam_z_p90ferr_decam_z_meanf_decam_z_p90ferr_ap_omegacam_u_meanf_ap_omegacam_u_p90ferr_omegacam_u_meanf_omegacam_u_p90ferr_ap_omegacam_g_meanf_ap_omegacam_g_p90ferr_omegacam_g_meanf_omegacam_g_p90ferr_ap_omegacam_r_meanf_ap_omegacam_r_p90ferr_omegacam_r_meanf_omegacam_r_p90ferr_ap_omegacam_i_meanf_ap_omegacam_i_p90ferr_omegacam_i_meanf_omegacam_i_p90ferr_ap_ukidss_y_meanf_ap_ukidss_y_p90ferr_ukidss_y_meanf_ukidss_y_p90ferr_ap_ukidss_j_meanf_ap_ukidss_j_p90ferr_ukidss_j_meanf_ukidss_j_p90ferr_ap_ukidss_h_meanf_ap_ukidss_h_p90ferr_ukidss_h_meanf_ukidss_h_p90ferr_ap_ukidss_k_meanf_ap_ukidss_k_p90ferr_ukidss_k_meanf_ukidss_k_p90ferr_ap_wircam_j_meanf_ap_wircam_j_p90ferr_wircam_j_meanf_wircam_j_p90ferr_ap_gpc1_g_meanf_ap_gpc1_g_p90ferr_gpc1_g_meanf_gpc1_g_p90ferr_ap_gpc1_r_meanf_ap_gpc1_r_p90ferr_gpc1_r_meanf_gpc1_r_p90ferr_ap_gpc1_i_meanf_ap_gpc1_i_p90ferr_gpc1_i_meanf_gpc1_i_p90ferr_ap_gpc1_z_meanf_ap_gpc1_z_p90ferr_gpc1_z_meanf_gpc1_z_p90ferr_ap_gpc1_y_meanf_ap_gpc1_y_p90ferr_gpc1_y_meanf_gpc1_y_p90ferr_ap_suprime_g_meanf_ap_suprime_g_p90ferr_suprime_g_meanf_suprime_g_p90ferr_ap_suprime_r_meanf_ap_suprime_r_p90ferr_suprime_r_meanf_suprime_r_p90ferr_ap_suprime_i_meanf_ap_suprime_i_p90ferr_suprime_i_meanf_suprime_i_p90ferr_ap_suprime_z_meanf_ap_suprime_z_p90ferr_suprime_z_meanf_suprime_z_p90ferr_ap_suprime_y_meanf_ap_suprime_y_p90ferr_suprime_y_meanf_suprime_y_p90ferr_ap_suprime_n921_meanf_ap_suprime_n921_p90ferr_suprime_n921_meanf_suprime_n921_p90ferr_ap_wircam_h_meanf_ap_wircam_h_p90ferr_wircam_h_meanf_wircam_h_p90ferr_ap_wircam_ks_meanf_ap_wircam_ks_p90ferr_wircam_ks_meanf_wircam_ks_p90ferr_wfc3_f125w_meanf_wfc3_f125w_p90ferr_acs_f606w_meanf_acs_f606w_p90ferr_acs_f814w_meanf_acs_f814w_p90ferr_irac_i1_meanf_irac_i1_p90ferr_irac_i2_meanf_irac_i2_p90ferr_irac_i3_meanf_irac_i3_p90ferr_irac_i4_meanf_irac_i4_p90
uJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJyuJy
04462998386973434nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannan2.850510120391845737.483173370361338.27859973907470780.665130615234383.258259852727254448.915866851806647.86016511917114394.222473144531255.23251819610595763.66101455688476621.813302993774414146.05964660644537.14781737327575754.77119750976563nannannannannannan0.4821200490555714325.8883944941364280.652790444201911634.0622019890210340.563892708999163736.094682886938290.747517138225168541.52501911247871.118965186922184446.6112436649981.21434698165682351.451705921474611.41159708297730340.3905854509703061.99890336902641452.6324619480099762.908853337875029468.281030141294795.059053353254844578.08087911895870.0298526824355639271.0358330905437470.034398338029859591.29907339811325070.034401816406076951.74678773880004940.04586917521300342.5807228088378910.037608448101181382.37395646572113030.048418197885996873.5139436483383190.0547812202712520963.5281291484832760.072484681045725244.7056693077087430.2178264903586085212.8665256500244140.3316597399012795616.844839477539058nannannannannannannannannannannannannannannannannannannannannannannannannannan
14462998356973434nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannan2.850510120391845737.483173370361338.27859973907470780.665130615234383.258259852727254448.915866851806647.86016511917114394.222473144531255.23251819610595763.66101455688476621.813302993774414146.05964660644537.14781737327575754.77119750976563nannannannannannan0.4821200490555714325.8883944941364280.652790444201911634.0622019890210340.563892708999163736.094682886938290.747517138225168541.52501911247871.118965186922184446.6112436649981.21434698165682351.451705921474611.41159708297730340.3905854509703061.99890336902641452.6324619480099762.908853337875029468.281030141294795.059053353254844578.08087911895870.0298526824355639271.0358330905437470.034398338029859591.29907339811325070.034401816406076951.74678773880004940.04586917521300342.5807228088378910.037608448101181382.37395646572113030.048418197885996873.5139436483383190.0547812202712520963.5281291484832760.072484681045725244.7056693077087430.2178264903586085212.8665256500244140.3316597399012795616.844839477539058nannannannannannannannannannannannannannannannannannannannannannannannannannan
24462998346973434nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannan2.850510120391845737.483173370361338.27859973907470780.665130615234383.258259852727254448.915866851806647.86016511917114394.222473144531255.23251819610595763.66101455688476621.813302993774414146.05964660644537.14781737327575754.77119750976563nannannannannannan0.4821200490555714325.8883944941364280.652790444201911634.0622019890210340.563892708999163736.094682886938290.747517138225168541.52501911247871.118965186922184446.6112436649981.21434698165682351.451705921474611.41159708297730340.3905854509703061.99890336902641452.6324619480099762.908853337875029468.281030141294795.059053353254844578.08087911895870.0298526824355639271.0358330905437470.034398338029859591.29907339811325070.034401816406076951.74678773880004940.04586917521300342.5807228088378910.037608448101181382.37395646572113030.048418197885996873.5139436483383190.0547812202712520963.5281291484832760.072484681045725244.7056693077087430.2178264903586085212.8665256500244140.3316597399012795616.844839477539058nannannannannannannannannannannannannannannannannannannannannannannannannannan
34462998336973434nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannan2.850510120391845737.483173370361338.27859973907470780.665130615234383.258259852727254448.915866851806647.86016511917114394.222473144531255.23251819610595763.66101455688476621.813302993774414146.05964660644537.14781737327575754.77119750976563nannannannannannan0.4821200490555714325.8883944941364280.652790444201911634.0622019890210340.563892708999163736.094682886938290.747517138225168541.52501911247871.118965186922184446.6112436649981.21434698165682351.451705921474611.41159708297730340.3905854509703061.99890336902641452.6324619480099762.908853337875029468.281030141294795.059053353254844578.08087911895870.0298526824355639271.0358330905437470.034398338029859591.29907339811325070.034401816406076951.74678773880004940.04586917521300342.5807228088378910.037608448101181382.37395646572113030.048418197885996873.5139436483383190.0547812202712520963.5281291484832760.072484681045725244.7056693077087430.2178264903586085212.8665256500244140.3316597399012795616.844839477539058nannannannannannannannannannannannannannannannannannannannannannannannannannan
44462998396973434nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannan2.850510120391845737.483173370361338.27859973907470780.665130615234383.258259852727254448.915866851806647.86016511917114394.222473144531255.23251819610595763.66101455688476621.813302993774414146.05964660644537.14781737327575754.77119750976563nannannannannannan0.4821200490555714325.8883944941364280.652790444201911634.0622019890210340.563892708999163736.094682886938290.747517138225168541.52501911247871.118965186922184446.6112436649981.21434698165682351.451705921474611.41159708297730340.3905854509703061.99890336902641452.6324619480099762.908853337875029468.281030141294795.059053353254844578.08087911895870.0298526824355639271.0358330905437470.034398338029859591.29907339811325070.034401816406076951.74678773880004940.04586917521300342.5807228088378910.037608448101181382.37395646572113030.048418197885996873.5139436483383190.0547812202712520963.5281291484832760.072484681045725244.7056693077087430.2178264903586085212.8665256500244140.3316597399012795616.844839477539058nannannannannannannannannannannannannannannannannannannannannannannannannannan
54462998376973434nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannan2.850510120391845737.483173370361338.27859973907470780.665130615234383.258259852727254448.915866851806647.86016511917114394.222473144531255.23251819610595763.66101455688476621.813302993774414146.05964660644537.14781737327575754.77119750976563nannannannannannan0.4821200490555714325.8883944941364280.652790444201911634.0622019890210340.563892708999163736.094682886938290.747517138225168541.52501911247871.118965186922184446.6112436649981.21434698165682351.451705921474611.41159708297730340.3905854509703061.99890336902641452.6324619480099762.908853337875029468.281030141294795.059053353254844578.08087911895870.0298526824355639271.0358330905437470.034398338029859591.29907339811325070.034401816406076951.74678773880004940.04586917521300342.5807228088378910.037608448101181382.37395646572113030.048418197885996873.5139436483383190.0547812202712520963.5281291484832760.072484681045725244.7056693077087430.2178264903586085212.8665256500244140.3316597399012795616.844839477539058nannannannannannannannannannannannannannannannannannannannannannannannannannan
64462998196973434nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannan2.850510120391845737.483173370361338.27859973907470780.665130615234383.258259852727254448.915866851806647.86016511917114394.222473144531255.23251819610595763.66101455688476621.813302993774414146.05964660644537.14781737327575754.77119750976563nannannannannannan0.4821200490555714325.8883944941364280.652790444201911634.0622019890210340.563892708999163736.094682886938290.747517138225168541.52501911247871.118965186922184446.6112436649981.21434698165682351.451705921474611.41159708297730340.3905854509703061.99890336902641452.6324619480099762.908853337875029468.281030141294795.059053353254844578.08087911895870.0298526824355639271.0358330905437470.034398338029859591.29907339811325070.034401816406076951.74678773880004940.04586917521300342.5807228088378910.037608448101181382.37395646572113030.048418197885996873.5139436483383190.0547812202712520963.5281291484832760.072484681045725244.7056693077087430.2178264903586085212.8665256500244140.3316597399012795616.844839477539058nannannannannannannannannannannannannannannannannannannannannannannannannannan
74462998326973434nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannan2.850510120391845737.483173370361338.27859973907470780.665130615234383.258259852727254448.915866851806647.86016511917114394.222473144531255.23251819610595763.66101455688476621.813302993774414146.05964660644537.14781737327575754.77119750976563nannannannannannan0.4821200490555714325.8883944941364280.652790444201911634.0622019890210340.563892708999163736.094682886938290.747517138225168541.52501911247871.118965186922184446.6112436649981.21434698165682351.451705921474611.41159708297730340.3905854509703061.99890336902641452.6324619480099762.908853337875029468.281030141294795.059053353254844578.08087911895870.0298526824355639271.0358330905437470.034398338029859591.29907339811325070.034401816406076951.74678773880004940.04586917521300342.5807228088378910.037608448101181382.37395646572113030.048418197885996873.5139436483383190.0547812202712520963.5281291484832760.072484681045725244.7056693077087430.2178264903586085212.8665256500244140.3316597399012795616.844839477539058nannannannannannannannannannannannannannannannannannannannannannannannannannan
84462998236973434nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannan2.850510120391845737.483173370361338.27859973907470780.665130615234383.258259852727254448.915866851806647.86016511917114394.222473144531255.23251819610595763.66101455688476621.813302993774414146.05964660644537.14781737327575754.77119750976563nannannannannannan0.4821200490555714325.8883944941364280.652790444201911634.0622019890210340.563892708999163736.094682886938290.747517138225168541.52501911247871.118965186922184446.6112436649981.21434698165682351.451705921474611.41159708297730340.3905854509703061.99890336902641452.6324619480099762.908853337875029468.281030141294795.059053353254844578.08087911895870.0298526824355639271.0358330905437470.034398338029859591.29907339811325070.034401816406076951.74678773880004940.04586917521300342.5807228088378910.037608448101181382.37395646572113030.048418197885996873.5139436483383190.0547812202712520963.5281291484832760.072484681045725244.7056693077087430.2178264903586085212.8665256500244140.3316597399012795616.844839477539058nannannannannannannannannannannannannannannannannannannannannannannannannannan
94462998226973434nannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannannan2.850510120391845737.483173370361338.27859973907470780.665130615234383.258259852727254448.915866851806647.86016511917114394.222473144531255.23251819610595763.66101455688476621.813302993774414146.05964660644537.14781737327575754.77119750976563nannannannannannan0.4821200490555714325.8883944941364280.652790444201911634.0622019890210340.563892708999163736.094682886938290.747517138225168541.52501911247871.118965186922184446.6112436649981.21434698165682351.451705921474611.41159708297730340.3905854509703061.99890336902641452.6324619480099762.908853337875029468.281030141294795.059053353254844578.08087911895870.0298526824355639271.0358330905437470.034398338029859591.29907339811325070.034401816406076951.74678773880004940.04586917521300342.5807228088378910.037608448101181382.37395646572113030.048418197885996873.5139436483383190.0547812202712520963.5281291484832760.072484681045725244.7056693077087430.2178264903586085212.8665256500244140.3316597399012795616.844839477539058nannannannannannannannannannannannannannannannannannannannannannannannannannan
In [78]:
np.sum(~np.isnan(cosmos_coverage['ferr_irac_i1_mean']))
Out[78]:
43200
In [79]:
plt.hist(cosmos_coverage[~np.isnan(cosmos_coverage['ferr_irac_i1_mean'])]['ferr_irac_i1_mean'], bins=100)
Out[79]:
(array([  448.,  1216.,  5440., 16384., 10368.,  2560.,  1664.,   768.,
          704.,   192.,   640.,  1152.,   512.,   192.,   256.,   192.,
            0.,    64.,    64.,     0.,     0.,     0.,    64.,     0.,
            0.,     0.,    64.,    64.,     0.,     0.,    64.,     0.,
            0.,     0.,     0.,     0.,    64.,     0.,     0.,     0.,
            0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
            0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
            0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
            0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
            0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
            0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
            0.,     0.,     0.,     0.,     0.,     0.,     0.,     0.,
            0.,     0.,     0.,    64.]),
 array([0.0337089 , 0.04570781, 0.05770672, 0.06970563, 0.08170455,
        0.09370346, 0.10570237, 0.11770128, 0.12970019, 0.1416991 ,
        0.15369801, 0.16569692, 0.17769583, 0.18969475, 0.20169366,
        0.21369257, 0.22569148, 0.23769039, 0.2496893 , 0.26168821,
        0.27368712, 0.28568604, 0.29768495, 0.30968386, 0.32168277,
        0.33368168, 0.34568059, 0.3576795 , 0.36967841, 0.38167733,
        0.39367624, 0.40567515, 0.41767406, 0.42967297, 0.44167188,
        0.45367079, 0.4656697 , 0.47766861, 0.48966753, 0.50166644,
        0.51366535, 0.52566426, 0.53766317, 0.54966208, 0.56166099,
        0.5736599 , 0.58565882, 0.59765773, 0.60965664, 0.62165555,
        0.63365446, 0.64565337, 0.65765228, 0.66965119, 0.68165011,
        0.69364902, 0.70564793, 0.71764684, 0.72964575, 0.74164466,
        0.75364357, 0.76564248, 0.77764139, 0.78964031, 0.80163922,
        0.81363813, 0.82563704, 0.83763595, 0.84963486, 0.86163377,
        0.87363268, 0.8856316 , 0.89763051, 0.90962942, 0.92162833,
        0.93362724, 0.94562615, 0.95762506, 0.96962397, 0.98162289,
        0.9936218 , 1.00562071, 1.01761962, 1.02961853, 1.04161744,
        1.05361635, 1.06561526, 1.07761417, 1.08961309, 1.101612  ,
        1.11361091, 1.12560982, 1.13760873, 1.14960764, 1.16160655,
        1.17360546, 1.18560438, 1.19760329, 1.2096022 , 1.22160111,
        1.23360002]),
 <a list of 100 Patch objects>)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [80]:
#We use total here because apertur fluxes are absent
cosmos_coverage['ferr_irac_i1_mean'].name = 'ferr_ap_irac_i1_mean'
cosmos_coverage['ferr_irac_i2_mean'].name = 'ferr_ap_irac_i2_mean'
cosmos_coverage['ferr_irac_i3_mean'].name = 'ferr_ap_irac_i3_mean'
cosmos_coverage['ferr_irac_i4_mean'].name = 'ferr_ap_irac_i4_mean'
In [81]:
cosmos_coverage['hp_idx_O_10'].name='hp_idx_o_10'
In [82]:
len(cosmos_coverage)
Out[82]:
99243
In [83]:
len(np.unique(cosmos_coverage['hp_idx_o_10']))
Out[83]:
1645
In [84]:
cosmos_coverage.sort('hp_idx_o_10')
is_duplicate = cosmos_coverage['hp_idx_o_10'][1:] == cosmos_coverage['hp_idx_o_10'][:-1]
#np.append(is_duplicate,False)
cosmos_coverage = cosmos_coverage[~np.append(is_duplicate,False)]
In [85]:
len(cosmos_coverage)
Out[85]:
1645
In [86]:
shared_cols = set(cosmos_coverage.colnames).intersection(set(depth_table.colnames))
In [87]:
shared_cols
Out[87]:
{'ferr_ap_decam_g_mean',
 'ferr_ap_decam_r_mean',
 'ferr_ap_decam_z_mean',
 'ferr_ap_gpc1_g_mean',
 'ferr_ap_gpc1_i_mean',
 'ferr_ap_gpc1_r_mean',
 'ferr_ap_gpc1_y_mean',
 'ferr_ap_gpc1_z_mean',
 'ferr_ap_irac_i1_mean',
 'ferr_ap_irac_i2_mean',
 'ferr_ap_irac_i3_mean',
 'ferr_ap_irac_i4_mean',
 'ferr_ap_megacam_g_mean',
 'ferr_ap_megacam_i_mean',
 'ferr_ap_megacam_r_mean',
 'ferr_ap_megacam_u_mean',
 'ferr_ap_megacam_z_mean',
 'ferr_ap_omegacam_g_mean',
 'ferr_ap_omegacam_i_mean',
 'ferr_ap_omegacam_r_mean',
 'ferr_ap_omegacam_u_mean',
 'ferr_ap_suprime_g_mean',
 'ferr_ap_suprime_i_mean',
 'ferr_ap_suprime_r_mean',
 'ferr_ap_suprime_y_mean',
 'ferr_ap_suprime_z_mean',
 'ferr_ap_ukidss_h_mean',
 'ferr_ap_ukidss_j_mean',
 'ferr_ap_ukidss_k_mean',
 'ferr_ap_ukidss_y_mean',
 'ferr_ap_vista_h_mean',
 'ferr_ap_vista_j_mean',
 'ferr_ap_vista_ks_mean',
 'ferr_ap_vista_y_mean',
 'ferr_ap_wircam_h_mean',
 'ferr_ap_wircam_j_mean',
 'ferr_ap_wircam_ks_mean',
 'hp_idx_o_10'}
In [88]:
cosmos_pixels = np.in1d(depth_table['hp_idx_o_10'], np.unique(cosmos_coverage['hp_idx_o_10']))
In [89]:
np.sum(cosmos_pixels)
Out[89]:
1645
In [90]:
len(depth_table)
Out[90]:
394298
In [91]:
depth_table= depth_table[~cosmos_pixels]
len(depth_table)
Out[91]:
392653
In [92]:
depth_table = vstack([depth_table, cosmos_coverage[list(shared_cols)]])
len(depth_table)
Out[92]:
394298
In [93]:
for col in depth_table.colnames:
    if depth_table[col].dtype == 'float64':
        depth_table[col].fill_value = np.nan
    if col.startswith('ferr'):
        depth_table[col][depth_table[col] < 1.e-3] *= 1.e6 
    
depth_table = depth_table.filled()
coverage = Table()
coverage.add_column(Column(data=depth_table['hp_idx_o_10'], name='hp_idx_o_10'))
for band in bands:
    specific_bands = [f for f in filters if f.split('_')[1] == band.lower()]
    print(specific_bands)
    for specific_band in specific_bands:
        if 'ferr_ap_{}_mean'.format(specific_band) not in depth_table.colnames:
            specific_bands.remove(specific_band)
    print(specific_bands)
    lowest_depths = np.nanmin([depth_table[column] for column in 
                               ['ferr_ap_{}_mean'.format(s) for s in specific_bands]]
                              , axis=0)
    
    coverage.add_column(Column(data=lowest_depths, name='ferr_ap_{}_mean_min'.format(band)))
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
['omegacam_u', 'mmt_u', 'bessell_u', 'lbc_u', 'wfi_u', 'megacam_u', 'mosaic_u', 'wfc_u', 'sdss_u']
['omegacam_u', 'mmt_u', 'bessell_u', 'wfi_u', 'megacam_u', 'mosaic_u', 'wfc_u', 'sdss_u']
['mmt_g', 'omegacam_g', 'suprime_g', 'megacam_g', 'wfc_g', 'gpc1_g', 'decam_g', '90prime_g', 'sdss_g']
['mmt_g', 'omegacam_g', 'suprime_g', 'megacam_g', 'wfc_g', 'gpc1_g', 'decam_g', '90prime_g', 'sdss_g']
['omegacam_r', 'mmt_r', 'cfht12k_r', 'megacam_r', 'wfi_r', 'suprime_r', 'mosaic_r', 'bessell_r', 'wfc_r', 'gpc1_r', 'decam_r', 'sdss_r', '90prime_r']
['omegacam_r', 'mmt_r', 'cfht12k_r', 'megacam_r', 'wfi_r', 'suprime_r', 'mosaic_r', 'bessell_r', 'wfc_r', 'gpc1_r', 'decam_r', 'sdss_r', '90prime_r']
['sdss_i', 'decam_i', 'gpc1_i', 'wfc_i', 'bessell_i', 'mosaic_i', 'megacam_i', 'wfi_i', 'suprime_i', 'cfht12k_i', 'mmt_i', 'omegacam_i']
['sdss_i', 'decam_i', 'gpc1_i', 'wfc_i', 'bessell_i', 'mosaic_i', 'megacam_i', 'wfi_i', 'suprime_i', 'cfht12k_i', 'mmt_i', 'omegacam_i']
['decam_z', '90prime_z', 'sdss_z', 'wfc_z', 'gpc1_z', 'suprime_z', 'megacam_z', 'vista_z', 'mosaic_z', 'omegacam_z', 'mmt_z']
['decam_z', '90prime_z', 'sdss_z', 'wfc_z', 'gpc1_z', 'suprime_z', 'megacam_z', 'vista_z', 'mosaic_z', 'omegacam_z', 'mmt_z']
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/ipykernel/__main__.py:20: RuntimeWarning: All-NaN axis encountered
['decam_y', 'ukidss_y', 'gpc1_y', 'suprime_y', 'megacam_y', 'vista_y', 'lbc_y', 'wircam_y']
['decam_y', 'ukidss_y', 'gpc1_y', 'suprime_y', 'megacam_y', 'vista_y', 'wircam_y']
['omega2000_j', 'ukidss_j', 'vista_j', 'newfirm_j', 'wircs_j', 'wircam_j']
['omega2000_j', 'ukidss_j', 'vista_j', 'newfirm_j', 'wircs_j', 'wircam_j']
['ukidss_h', 'vista_h', 'newfirm_h', 'wircam_h']
['ukidss_h', 'vista_h', 'newfirm_h', 'wircam_h']
['isaac_k', 'moircs_k', 'ukidss_k', 'newfirm_k', 'wircs_k', 'hawki_k']
['isaac_k', 'moircs_k', 'ukidss_k', 'newfirm_k', 'wircs_k', 'hawki_k']
['wircam_ks', 'vista_ks', 'moircs_ks', 'omega2000_ks', 'tifkam_ks']
['wircam_ks', 'vista_ks', 'moircs_ks', 'omega2000_ks', 'tifkam_ks']
['irac_i1']
['irac_i1']
['irac_i2']
['irac_i2']
['irac_i3']
['irac_i3']
['irac_i4']
['irac_i4']
In [94]:
coverage
Out[94]:
Table length=394298
hp_idx_o_10ferr_ap_u_mean_minferr_ap_g_mean_minferr_ap_r_mean_minferr_ap_i_mean_minferr_ap_z_mean_minferr_ap_y_mean_minferr_ap_J_mean_minferr_ap_H_mean_minferr_ap_K_mean_minferr_ap_Ks_mean_minferr_ap_i1_mean_minferr_ap_i2_mean_minferr_ap_i3_mean_minferr_ap_i4_mean_min
int64float64float64float64float64float64float64float64float64float64float64float64float64float64float64
10485760.38889680.019262240.0308703740.0417682040.061518430.143520151.929452419281011.73555041551596.38013552.36790292603629nannannannan
10485770.32870.0207175670.032935940.0447718050.066344530.15261591.919764578342441.666914749145516.5739222.3642338684627nannannannan
10485780.38461710.0213782490.0358769820.0471815580.069806070.159569112.236706224904542.364868815265486.9191893.06828086159446nannannannan
10485790.372779820.0210926680.033737640.042774640.0636066650.148774332.086209722927641.87964040040976.45810652.60780441455352nannannannan
10485800.29117440.0201995730.031687880.0423269760.062501730.145373821.781097559701831.780181774071285.69709162.52248514782299nannannannan
10485810.331932660.0223944730.034869830.046940380.0695505960.160667691.907746334870662.036426698062446.034682.77342678705851nannannannan
10485820.318233730.0209513250.0331601870.046381670.069108870.162918341.958781152199481.839073791958046.45133542.62036830054389nannannannan
10485830.251432990.0203835370.0318627170.044131130.065311070.15159351.840469779506811.757817593114135.6473152.52217631393604nannannannan
10485840.366214070.0226774350.037323410.0451929350.067524950.159001451.982360009793881.814337070395316.449092.55789082050323nannannannan
10485850.34862920.0214531330.0353255760.0477276070.070565330.16208371.876581941978841.767192272912896.34269432.52972699237126nannannannan
.............................................
7000392nan0.03949049186571550.042293873149901630.053266985531007580.086335445357405620.34042684744288044.9012394507726046.8401751177651545.3777127999525804nannannannannan
7000393nan0.0593308065744007350.071260028705000880.102064841737349820.17218849406792566nannannannannannannannannan
7000396nan0.342800337703489330.35339916462417681.29231037133920662.0220060029036772.77239525318145753.2325675487518315.3637525013514934.35411622789171nannannannannan
7000400nan0.033914037286180310.0367893597436814370.051176684055644990.067876209471169420.33386889489647613.5004761755466465.5273259754838615.044542247598821nannannannannan
7000401nan0.034548922284175790.0373965225682038950.047634963373756480.064896869498171140.324966464723859543.39376756123134055.408653278350835.025601618630546nannannannannan
7000402nan0.039274963697320540.0447488605665663850.064506666660308840.078290573986513284.7561716863905346.4459285736083987.6005549430847176.771794319152832nannannannannan
7000403nan0.0415309409300486240.046394628658890730.070458960602991280.0828817965406362.8447082837422693.27972753842671735.2988047599792484.9634097417195635nannannannannan
7000404nan0.038013347028549820.040804353534733340.046208923080574880.063408265857970690.288477698961893743.9733146667480476.0071185694800485.45918771955702nannannannannan
7000405nan0.0363350028793017060.0410231953220708060.039877564001541870.056049210640291370.1984483927488327nannan4.802572250366211nannannannannan
7001088nan0.033389435983017870.036368891969323160.038764764128600140.05429598480715590.206611176729202263.9680560827255256.5042142868041995.0468034744262695nannannannannan
In [95]:
#for m, band in enumerate(bands):
#    field_coverages.add_column(Column(data=np.full(len(field_coverages), np.nan), name='ferr_ap_{}_mean_median'.format(band)))

fields_table = Table()
for n, field in enumerate(fields['fields']):
    field_moc = MOC(filename=field['region'].replace('dmu_products/', '../../../'))
    field_cells= Table()
    field_cells.add_column(Column(data=list(field_moc.flattened(order=10)), name='hp_idx_o_10'))
    field_cells.add_column(Column(data=np.full(len(field_cells), field['name'] ), name='field'))
    fields_table = vstack([fields_table, field_cells])
                           
In [96]:
coverage = join(coverage, fields_table, join_type='left', keys='hp_idx_o_10')
In [97]:
coverage.write('./data/coverage_band_overview.fits', overwrite=True)
In [98]:
coverage = Table.read('./data/coverage_band_overview.fits')
In [99]:
coverage
Out[99]:
Table masked=True length=449146
hp_idx_o_10ferr_ap_u_mean_minferr_ap_g_mean_minferr_ap_r_mean_minferr_ap_i_mean_minferr_ap_z_mean_minferr_ap_y_mean_minferr_ap_J_mean_minferr_ap_H_mean_minferr_ap_K_mean_minferr_ap_Ks_mean_minferr_ap_i1_mean_minferr_ap_i2_mean_minferr_ap_i3_mean_minferr_ap_i4_mean_minfield
int64float64float64float64float64float64float64float64float64float64float64float64float64float64float64bytes18
10485760.38889680.019262240.0308703740.0417682040.061518430.143520151.929452419281011.73555041551596.38013552.36790292603629nannannannanGAMA-09
10485770.32870.0207175670.032935940.0447718050.066344530.15261591.919764578342441.666914749145516.5739222.3642338684627nannannannanGAMA-09
10485780.38461710.0213782490.0358769820.0471815580.069806070.159569112.236706224904542.364868815265486.9191893.06828086159446nannannannanGAMA-09
10485790.372779820.0210926680.033737640.042774640.0636066650.148774332.086209722927641.87964040040976.45810652.60780441455352nannannannanGAMA-09
10485800.29117440.0201995730.031687880.0423269760.062501730.145373821.781097559701831.780181774071285.69709162.52248514782299nannannannanGAMA-09
10485810.331932660.0223944730.034869830.046940380.0695505960.160667691.907746334870662.036426698062446.034682.77342678705851nannannannanGAMA-09
10485820.318233730.0209513250.0331601870.046381670.069108870.162918341.958781152199481.839073791958046.45133542.62036830054389nannannannanGAMA-09
10485830.251432990.0203835370.0318627170.044131130.065311070.15159351.840469779506811.757817593114135.6473152.52217631393604nannannannanGAMA-09
10485840.366214070.0226774350.037323410.0451929350.067524950.159001451.982360009793881.814337070395316.449092.55789082050323nannannannanGAMA-09
10485850.34862920.0214531330.0353255760.0477276070.070565330.16208371.876581941978841.767192272912896.34269432.52972699237126nannannannanGAMA-09
................................................
12042983nan0.4705934479754130.7053642102220360.980352786966052nannannannannannannannannannanN/A
12042985nan0.4012452702654150.6319633845030220.886734809470708nannannannannannannannannannanN/A
120430083.431171175967141.128913188916371.566442875062271.669263722627494.31668842759001nannannannannannannannannanN/A
120430091.812010149663940.5089669083391330.8900918817952821.13120176744273.09896943585728nannannannannannannannannanN/A
120430102.492682854418860.4941584036289820.9096135055973421.1367931926593.12670346706475nannannannannannannannannanN/A
120430112.093735532630530.5772472806626180.9912988547407981.226746605010413.39733806461695nannannannannannannannannanN/A
12043012nan0.445860992796356nan1.02642671074533nannannannannannannannannannanN/A
120430163.586932785339880.6847284109680421.195860289470911.384430630723523.92742906404126nannannannannannannannannanN/A
12043017nan0.4624989512221750.851184860160681.080969524711512.88149622026963nannannannannannannannannanN/A
120430182.010320846170470.5929363701821391.042060284059161.312155217749144.08352324846221nannannannannannannannannanN/A

Make field summaries

In [100]:
order10_area = MOC(order=10, cells=[1]).area_sq_deg
order10_area
Out[100]:
0.0032784908016061202
In [101]:
#Make a list of all bands
#this was too slow so tried to run whole query at once
field_coverages = Table()
field_coverages.add_column(Column(data=[field['name'] for field in fields['fields']], name='field' ))

for m, band in enumerate(bands):
    field_coverages.add_column(Column(data=np.full(len(field_coverages), np.nan), 
                                      name='{}_band_area'.format(band)))
    field_coverages.add_column(Column(data=np.full(len(field_coverages), np.nan), 
                                      name='ferr_ap_{}_mean_meadian'.format(band)))


for n, field in enumerate(fields['fields']):
    in_field = coverage['field'] == field['name']
    for m, band in enumerate(bands):
        has_band = in_field & ~np.isnan(coverage['ferr_ap_{}_mean_min'.format(band)])
        area = np.sum(has_band) * order10_area
        
        field_coverages['{}_band_area'.format(band)][field_coverages['field'] == field['name']] = area
        
        if np.sum(has_band) != 0:
            depth_median = np.nanmedian(coverage['ferr_ap_{}_mean_min'.format(band)][has_band])
            depth_max = np.nanmax(coverage['ferr_ap_{}_mean_min'.format(band)][has_band])
        else:
            depth_median = np.nan
            depth_max = np.nan
        
        field_coverages['ferr_ap_{}_mean_meadian'.format(band)][field_coverages['field'] == field['name']] = depth_median
        
        if band == 'i1':
            print("Field: {}, {} band coverage: {}, median depth = {}, max depth = {}".format(field['name'],
                                                       band,
                                                       area,
                                                       depth_median,
                                                       depth_max))
        
        
            
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/numpy/core/fromnumeric.py:688: UserWarning: Warning: 'partition' will ignore the 'mask' of the MaskedColumn.
  a.partition(kth, axis=axis, kind=kind, order=order)
Field: AKARI-NEP, i1 band coverage: 7.173337873914191, median depth = 1.6617190000000002, max depth = 9.11136
Field: AKARI-SEP, i1 band coverage: 7.294642033573617, median depth = 1.0387509, max depth = 62.539757
Field: Bootes, i1 band coverage: 10.117422613756487, median depth = 0.7535689270149595, max depth = 23.952327804264
Field: CDFS-SWIRE, i1 band coverage: 8.22245493042815, median depth = 0.5481367645686981, max depth = 7.6217866678337
Field: COSMOS, i1 band coverage: 2.212981291084131, median depth = 0.08034571709348072, max depth = 1.2336000204086304
Field: EGS, i1 band coverage: 0.0, median depth = nan, max depth = nan
Field: ELAIS-N1, i1 band coverage: 9.710889754357328, median depth = 0.78441163003663, max depth = 6.62454545454545
Field: ELAIS-N2, i1 band coverage: 4.484975416597172, median depth = 0.8212270942408375, max depth = 5.89333333333333
Field: ELAIS-S1, i1 band coverage: 7.206122781930253, median depth = 0.706632612529864, max depth = 10.5114285714286
Field: GAMA-09, i1 band coverage: 0.0, median depth = nan, max depth = nan
Field: GAMA-12, i1 band coverage: 0.0, median depth = nan, max depth = nan
Field: GAMA-15, i1 band coverage: 0.0, median depth = nan, max depth = nan
Field: HDF-N, i1 band coverage: 0.0, median depth = nan, max depth = nan
Field: Herschel-Stripe-82, i1 band coverage: 98.92518144766308, median depth = 1.9088288565758451, max depth = 80.1761464394222
Field: Lockman-SWIRE, i1 band coverage: 11.612414419288879, median depth = 0.6888698618707021, max depth = 4.76666666666667
Field: HATLAS-NGP, i1 band coverage: 0.0, median depth = nan, max depth = nan
Field: SA13, i1 band coverage: 0.0, median depth = nan, max depth = nan
Field: HATLAS-SGP, i1 band coverage: 0.0, median depth = nan, max depth = nan
Field: SPIRE-NEP, i1 band coverage: 0.0, median depth = nan, max depth = nan
Field: SSDF, i1 band coverage: 94.2795599817872, median depth = 79.68621, max depth = 17731.0
Field: xFLS, i1 band coverage: 4.091556520404438, median depth = 5.391215873751545, max depth = 1211.70427483696
Field: XMM-13hr, i1 band coverage: 0.0, median depth = nan, max depth = nan
Field: XMM-LSS, i1 band coverage: 10.02234638050991, median depth = 0.669229317030779, max depth = 15.175
In [102]:
field_coverages
Out[102]:
Table length=23
fieldu_band_areaferr_ap_u_mean_meadiang_band_areaferr_ap_g_mean_meadianr_band_areaferr_ap_r_mean_meadiani_band_areaferr_ap_i_mean_meadianz_band_areaferr_ap_z_mean_meadiany_band_areaferr_ap_y_mean_meadianJ_band_areaferr_ap_J_mean_meadianH_band_areaferr_ap_H_mean_meadianK_band_areaferr_ap_K_mean_meadianKs_band_areaferr_ap_Ks_mean_meadiani1_band_areaferr_ap_i1_mean_meadiani2_band_areaferr_ap_i2_mean_meadiani3_band_areaferr_ap_i3_mean_meadiani4_band_areaferr_ap_i4_mean_meadian
str18float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64
AKARI-NEP0.0nan9.599421067102721.5368271627509259.6026995579043271.610832395729739.6026995579043271.497358855946639.6026995579043273.213156208794219.6026995579043277.155204004839740.0nan0.0nan0.0nan0.0nan7.1733378739141911.66171900000000027.199565800327041.36674930.0nan0.0nan
AKARI-SEP0.0nan9.2519010421324720.1049150959250059.2551795329340770.1256984090109999.2519010421324720.207567666613907529.2486225513308650.3914428092489999.219116134116411.3777517479915259.143710845679473.65498928.576531937001615.85628530.0nan7.8913273594659316.4569577.2946420335736171.03875097.1700593831125850.951545660.0nan0.0nan
Bootes0.0nan11.8714151926157620.1305940611.9042001006318220.098377114945024811.9042001006318220.18848300001729811.897643119028610.19468352043495711.8583012294093374.3415297166517711.8287948121948821.3523338665036059.7141682451589341.538835720505499.6781048463412672.994388418991675.294762644593884512.143566609840110.1174226137564870.753568927014959510.1075871413516691.02598004541859.9830044908906365.412508497441949.9731690184858187.358867777855445
CDFS-SWIRE13.2188749120758782.17129283430091513.4713187037995490.097766642448822413.4713187037995490.11508273055559713.4680402129979410.1124551077331185113.4647617221963360.19043903842073713.4516477589899120.17857073932005510.579689816782952.2673593891991510.1961063929950340.89360693250535650.0nan10.1600429941773670.9476835372500458.222454930428150.54813676456869818.1601636051976330.6159647735745468.0716443535542684.6535157894736858.0224669915301774.809375
COSMOS2.19658883707610060.020699859135001885.3931173686420680.0239928555701159485.3931173686420680.0263500579895864025.3931173686420680.0293231678789122675.3931173686420680.043215650985510945.3865603870388550.173438906594167775.2914841537922783.8473968045278035.3013196261970964.7104326135971975.3373830250147645.8740630801615682.19986732787770660.196193212664675432.2129812910841310.080345717093480722.21953827268734340.09256590098443322.13101902104397833.84571046293058762.1015126038295236.694406648476918
EGS3.8489482010855850.061362351379113953.85878367349040370.03308972534961093.85878367349040370.06444148667547043.85550518268879740.094220335656375553.85550518268879740.1821299863446553.6751881886004615.092251786820183.7932138574582816.2902920.56390041787625270.10585615687138750.87535704402883411.497008382040220.56717890867785880.1322655993106710.0nan0.0nan0.0nan0.0nan
ELAIS-N113.209039439671060.01519586513.9106364712147690.01084685913.9139149620163740.020674653513.8975225080083430.056162783114406513.9139149620163740.04801705150000000513.8352311827778270.16750753656569859.2682934961405030.54818150.0nan9.2846859501485320.68103642000000010.0nan9.7108897543573280.784411630036639.7305606991669651.0321712823600259.6387629567219944.94245833333333459.6518769199284184.86182194616977
ELAIS-N28.2683538016506350.0184354689.5109018154593560.0169387769.5207372878641740.0260510259999999989.5207372878641741.2765486048155559.5207372878641740.0613261189.5207372878641745.13743589233718550.0nan0.0nan0.0nan0.0nan4.4849754165971720.82122709424083754.478418434993961.0535974128073154.4226840913666564.787567567567574.4062916373586264.64675
ELAIS-S10.0nan9.4617244534352630.1233860144933989.4420535086256270.13219586916889659.4584459626336570.2439562063219729.4617244534352630.44263761577839.455167471832051.082285432183999.4322180362208082.578623890876778.2290119120313623.738987103104590.0nan9.2289516065212285.284153900146487.2061227819302530.7066326125298647.3897182668201950.97094507152505056.7110706708877285.277692307692316.7045136892845165.45833333333333
GAMA-0959.062011790934260.2832419663.491252863904120.0936017663.514202299515370.09253827563.504366827110550.24837012563.5010883363089460.5290056563.5338732443251.449528929305463.4683034282928841.9007867455482563.415847575467183.1148492813110459.976710724582366.0982916556.557244818507183.086330014539050.0nan0.0nan0.0nan0.0nan
.......................................................................................
Herschel-Stripe-82115.750396241505680.28281020784016797366.856563718121660.13312250161150452366.94836146056660.1607005552674815366.85000673651840.2505212891630565366.95491844216980.438992619723303368.04009889750151.66655107462496356.07688596244074.01589206055859351.280453919690965.46538630775783233.903926240588656.27123086397038241.218239218971926.512134994521284598.925181447663081.908828856575845199.026814662512861.849502379897950.0nan0.0nan
Lockman-SWIRE14.8056644600532380.01216064299999999922.1199774384364930.01090886222.12325592923810.015816610522.097028002825251.2276592117475722.0511291316027640.04248597121.9757238431658246.234801020608620.4348331664109475.506308058033820.0nan8.619152317422490.62190370.0nan11.6124144192888790.688869861870702111.6124144192888790.94208082122122711.4517683700101785.0186666666666711.4517683700101785.26111111111111
HATLAS-NGP0.0nan179.576055167173621.13681224196556179.589169130380041.0795281666189451179.572776676372031.2273446313397179.61867554759451.0867627179.572776676372033.2590716177.199149336009194.1193457177.25488367963655.139570300000001178.353178098174545.71264840.0nan0.0nan0.0nan0.0nan0.0nan
SA130.0nan0.281950208938126330.190771620.285228699739732470.3101130.0nan0.285228699739732471.03674320.0nan0.33768455256543046.80165240.0nan0.0nan0.0nan0.0nan0.0nan0.0nan0.0nan
HATLAS-SGP0.0nan179.576055167173621.13681224196556179.589169130380041.0795281666189451179.572776676372031.2273446313397179.61867554759451.0867627179.572776676372033.2590716177.199149336009194.1193457177.25488367963655.139570300000001178.353178098174545.71264840.0nan0.0nan0.0nan0.0nan0.0nan
SPIRE-NEP0.0nan0.163924540080306021.550829528225660.163924540080306021.5831337938013250.163924540080306021.634765615651940.163924540080306023.88239396282783030.163924540080306027.089256997006440.0nan0.0nan0.0nan0.0nan0.0nan0.0nan0.0nan0.0nan
SSDF0.0nan112.770248102845710.107691356484737112.780083575250540.13076024198950348112.776805084448920.209138197405894112.776805084448920.367745113347188112.727627722424841.1696262000282052111.675232175109272.695057697.967862133594084.071280.0nan107.491877912259875.46475494.279559981787279.6862192.9714421519463686.925160.0nan0.0nan
xFLS4.724305245114422.43899157.8257575434338090.162669947.8552639606482640.089791157.8421499974418391.454303613332127.8388715066402342.477237551390067.8290360342354156.222903159755045.6160547431512846.08841470.0nan0.0nan0.0nan4.0915565204044385.3912158737515454.0653285939915896.0016732110300553.963695379141799321.01481105297033.963695379141799320.4360184558011
XMM-13hr0.0nan0.84912911761598520.2031490.84912911761598520.202700730.0nan0.84585062681437910.837000320.0nan0.86552157162401586.185498750.0nan0.0nan0.0nan0.0nan0.0nan0.0nan0.0nan
XMM-LSS18.8677145632432220.052211232239810322.4478265185971040.022237319847412222.4511050093987130.0386317723433906522.4511050093987130.04362370374584885522.4478265185971040.090036108488459222.4379910461922880.1806634960360695222.3298008497392862.5914106919215321.0708603819225363.558621031897417.1176035302868870.59675937181954921.9921162971738555.131535547429864510.022346380509910.6692293170307799.8223584416119360.78783616395257859.337141802974235.8489454545454549.3469772753790486.38166666666667
In [103]:
field_coverages['field', 'ferr_ap_i1_mean_meadian'][field_coverages['ferr_ap_i1_mean_meadian'] > 10]
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in greater
  return getattr(self.data, op)(other)
Out[103]:
Table length=1
fieldferr_ap_i1_mean_meadian
str18float64
SSDF79.68621
In [104]:
field_coverages.write('./data/field_coverages_band_overview.fits', overwrite=True)
In [105]:
field_coverages = Table.read('./data/field_coverages_band_overview.fits')
In [106]:
table = 'field '
for band in bands:
    table += '& \\multicolumn{2}{c}{' + band + '}'
    
table += ' \\\\ \n'

table += '\\cline{1-29} \n'

for band in bands:
    table += '& a & \\sigma '

table += '\\\\ \n'
In [107]:
len('AKARI-NEP&&&9.6&1.5&9.6&1.6&9.6&1.5&9.6&3.2&9.6&7.2&&&&&&&&&7.2&1.7&7.2&1.4&&&&\\'.split('&'))
Out[107]:
29
In [108]:
print(table)
field & \multicolumn{2}{c}{u}& \multicolumn{2}{c}{g}& \multicolumn{2}{c}{r}& \multicolumn{2}{c}{i}& \multicolumn{2}{c}{z}& \multicolumn{2}{c}{y}& \multicolumn{2}{c}{J}& \multicolumn{2}{c}{H}& \multicolumn{2}{c}{K}& \multicolumn{2}{c}{Ks}& \multicolumn{2}{c}{i1}& \multicolumn{2}{c}{i2}& \multicolumn{2}{c}{i3}& \multicolumn{2}{c}{i4} \\ 
\cline{1-29} 
& a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma \\ 

In [109]:
for n, field in enumerate(field_coverages):
    latex = ''
    for element in field:


        if isinstance(element , float):
            if np.isnan(element):
                element = ''
            elif np.isclose(element, 0.0):
                element = ''
            else:
                element = round(element,1)


        
        latex +=  str(element) + '&' 
    print(latex[:-1] + '\\\\')
    table += latex[:-1] + '\\\\ \n'

table += '\\hline'
AKARI-NEP&&&9.6&1.5&9.6&1.6&9.6&1.5&9.6&3.2&9.6&7.2&&&&&&&&&7.2&1.7&7.2&1.4&&&&\\
AKARI-SEP&&&9.3&0.1&9.3&0.1&9.3&0.2&9.2&0.4&9.2&1.4&9.1&3.7&8.6&5.9&&&7.9&6.5&7.3&1.0&7.2&1.0&&&&\\
Bootes&&&11.9&0.1&11.9&0.1&11.9&0.2&11.9&0.2&11.9&4.3&11.8&1.4&9.7&1.5&9.7&3.0&5.3&12.1&10.1&0.8&10.1&1.0&10.0&5.4&10.0&7.4\\
CDFS-SWIRE&13.2&2.2&13.5&0.1&13.5&0.1&13.5&0.1&13.5&0.2&13.5&0.2&10.6&2.3&10.2&0.9&&&10.2&0.9&8.2&0.5&8.2&0.6&8.1&4.7&8.0&4.8\\
COSMOS&2.2&0.0&5.4&0.0&5.4&0.0&5.4&0.0&5.4&0.0&5.4&0.2&5.3&3.8&5.3&4.7&5.3&5.9&2.2&0.2&2.2&0.1&2.2&0.1&2.1&3.8&2.1&6.7\\
EGS&3.8&0.1&3.9&0.0&3.9&0.1&3.9&0.1&3.9&0.2&3.7&5.1&3.8&6.3&0.6&0.1&0.9&1.5&0.6&0.1&&&&&&&&\\
ELAIS-N1&13.2&0.0&13.9&0.0&13.9&0.0&13.9&0.1&13.9&0.0&13.8&0.2&9.3&0.5&&&9.3&0.7&&&9.7&0.8&9.7&1.0&9.6&4.9&9.7&4.9\\
ELAIS-N2&8.3&0.0&9.5&0.0&9.5&0.0&9.5&1.3&9.5&0.1&9.5&5.1&&&&&&&&&4.5&0.8&4.5&1.1&4.4&4.8&4.4&4.6\\
ELAIS-S1&&&9.5&0.1&9.4&0.1&9.5&0.2&9.5&0.4&9.5&1.1&9.4&2.6&8.2&3.7&&&9.2&5.3&7.2&0.7&7.4&1.0&6.7&5.3&6.7&5.5\\
GAMA-09&59.1&0.3&63.5&0.1&63.5&0.1&63.5&0.2&63.5&0.5&63.5&1.4&63.5&1.9&63.4&3.1&60.0&6.1&56.6&3.1&&&&&&&&\\
GAMA-12&62.1&0.2&64.2&0.1&64.2&0.1&64.2&0.4&64.2&0.5&64.1&1.4&64.1&1.7&64.0&2.7&62.4&6.3&61.8&2.9&&&&&&&&\\
GAMA-15&62.0&0.3&63.2&0.1&63.3&0.1&63.2&0.3&63.2&0.6&63.2&1.4&63.0&1.5&63.1&2.5&62.1&6.6&60.6&2.8&&&&&&&&\\
HDF-N&0.3&0.0&0.8&1.2&0.8&1.2&0.8&1.5&0.8&2.8&0.8&5.0&&&&&&&&&&&&&&&&\\
Herschel-Stripe-82&115.8&0.3&366.9&0.1&366.9&0.2&366.9&0.3&367.0&0.4&368.0&1.7&356.1&4.0&351.3&5.5&233.9&6.3&241.2&6.5&98.9&1.9&99.0&1.8&&&&\\
Lockman-SWIRE&14.8&0.0&22.1&0.0&22.1&0.0&22.1&1.2&22.1&0.0&22.0&6.2&20.4&5.5&&&8.6&0.6&&&11.6&0.7&11.6&0.9&11.5&5.0&11.5&5.3\\
HATLAS-NGP&&&179.6&1.1&179.6&1.1&179.6&1.2&179.6&1.1&179.6&3.3&177.2&4.1&177.3&5.1&178.4&5.7&&&&&&&&&&\\
SA13&&&0.3&0.2&0.3&0.3&&&0.3&1.0&&&0.3&6.8&&&&&&&&&&&&&&\\
HATLAS-SGP&&&179.6&1.1&179.6&1.1&179.6&1.2&179.6&1.1&179.6&3.3&177.2&4.1&177.3&5.1&178.4&5.7&&&&&&&&&&\\
SPIRE-NEP&&&0.2&1.6&0.2&1.6&0.2&1.6&0.2&3.9&0.2&7.1&&&&&&&&&&&&&&&&\\
SSDF&&&112.8&0.1&112.8&0.1&112.8&0.2&112.8&0.4&112.7&1.2&111.7&2.7&98.0&4.1&&&107.5&5.5&94.3&79.7&93.0&86.9&&&&\\
xFLS&4.7&2.4&7.8&0.2&7.9&0.1&7.8&1.5&7.8&2.5&7.8&6.2&5.6&6.1&&&&&&&4.1&5.4&4.1&6.0&4.0&21.0&4.0&20.4\\
XMM-13hr&&&0.8&0.2&0.8&0.2&&&0.8&0.8&&&0.9&6.2&&&&&&&&&&&&&&\\
XMM-LSS&18.9&0.1&22.4&0.0&22.5&0.0&22.5&0.0&22.4&0.1&22.4&0.2&22.3&2.6&21.1&3.6&7.1&0.6&22.0&5.1&10.0&0.7&9.8&0.8&9.3&5.8&9.3&6.4\\
In [110]:
print(table)
field & \multicolumn{2}{c}{u}& \multicolumn{2}{c}{g}& \multicolumn{2}{c}{r}& \multicolumn{2}{c}{i}& \multicolumn{2}{c}{z}& \multicolumn{2}{c}{y}& \multicolumn{2}{c}{J}& \multicolumn{2}{c}{H}& \multicolumn{2}{c}{K}& \multicolumn{2}{c}{Ks}& \multicolumn{2}{c}{i1}& \multicolumn{2}{c}{i2}& \multicolumn{2}{c}{i3}& \multicolumn{2}{c}{i4} \\ 
\cline{1-29} 
& a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma & a & \sigma \\ 
AKARI-NEP&&&9.6&1.5&9.6&1.6&9.6&1.5&9.6&3.2&9.6&7.2&&&&&&&&&7.2&1.7&7.2&1.4&&&&\\ 
AKARI-SEP&&&9.3&0.1&9.3&0.1&9.3&0.2&9.2&0.4&9.2&1.4&9.1&3.7&8.6&5.9&&&7.9&6.5&7.3&1.0&7.2&1.0&&&&\\ 
Bootes&&&11.9&0.1&11.9&0.1&11.9&0.2&11.9&0.2&11.9&4.3&11.8&1.4&9.7&1.5&9.7&3.0&5.3&12.1&10.1&0.8&10.1&1.0&10.0&5.4&10.0&7.4\\ 
CDFS-SWIRE&13.2&2.2&13.5&0.1&13.5&0.1&13.5&0.1&13.5&0.2&13.5&0.2&10.6&2.3&10.2&0.9&&&10.2&0.9&8.2&0.5&8.2&0.6&8.1&4.7&8.0&4.8\\ 
COSMOS&2.2&0.0&5.4&0.0&5.4&0.0&5.4&0.0&5.4&0.0&5.4&0.2&5.3&3.8&5.3&4.7&5.3&5.9&2.2&0.2&2.2&0.1&2.2&0.1&2.1&3.8&2.1&6.7\\ 
EGS&3.8&0.1&3.9&0.0&3.9&0.1&3.9&0.1&3.9&0.2&3.7&5.1&3.8&6.3&0.6&0.1&0.9&1.5&0.6&0.1&&&&&&&&\\ 
ELAIS-N1&13.2&0.0&13.9&0.0&13.9&0.0&13.9&0.1&13.9&0.0&13.8&0.2&9.3&0.5&&&9.3&0.7&&&9.7&0.8&9.7&1.0&9.6&4.9&9.7&4.9\\ 
ELAIS-N2&8.3&0.0&9.5&0.0&9.5&0.0&9.5&1.3&9.5&0.1&9.5&5.1&&&&&&&&&4.5&0.8&4.5&1.1&4.4&4.8&4.4&4.6\\ 
ELAIS-S1&&&9.5&0.1&9.4&0.1&9.5&0.2&9.5&0.4&9.5&1.1&9.4&2.6&8.2&3.7&&&9.2&5.3&7.2&0.7&7.4&1.0&6.7&5.3&6.7&5.5\\ 
GAMA-09&59.1&0.3&63.5&0.1&63.5&0.1&63.5&0.2&63.5&0.5&63.5&1.4&63.5&1.9&63.4&3.1&60.0&6.1&56.6&3.1&&&&&&&&\\ 
GAMA-12&62.1&0.2&64.2&0.1&64.2&0.1&64.2&0.4&64.2&0.5&64.1&1.4&64.1&1.7&64.0&2.7&62.4&6.3&61.8&2.9&&&&&&&&\\ 
GAMA-15&62.0&0.3&63.2&0.1&63.3&0.1&63.2&0.3&63.2&0.6&63.2&1.4&63.0&1.5&63.1&2.5&62.1&6.6&60.6&2.8&&&&&&&&\\ 
HDF-N&0.3&0.0&0.8&1.2&0.8&1.2&0.8&1.5&0.8&2.8&0.8&5.0&&&&&&&&&&&&&&&&\\ 
Herschel-Stripe-82&115.8&0.3&366.9&0.1&366.9&0.2&366.9&0.3&367.0&0.4&368.0&1.7&356.1&4.0&351.3&5.5&233.9&6.3&241.2&6.5&98.9&1.9&99.0&1.8&&&&\\ 
Lockman-SWIRE&14.8&0.0&22.1&0.0&22.1&0.0&22.1&1.2&22.1&0.0&22.0&6.2&20.4&5.5&&&8.6&0.6&&&11.6&0.7&11.6&0.9&11.5&5.0&11.5&5.3\\ 
HATLAS-NGP&&&179.6&1.1&179.6&1.1&179.6&1.2&179.6&1.1&179.6&3.3&177.2&4.1&177.3&5.1&178.4&5.7&&&&&&&&&&\\ 
SA13&&&0.3&0.2&0.3&0.3&&&0.3&1.0&&&0.3&6.8&&&&&&&&&&&&&&\\ 
HATLAS-SGP&&&179.6&1.1&179.6&1.1&179.6&1.2&179.6&1.1&179.6&3.3&177.2&4.1&177.3&5.1&178.4&5.7&&&&&&&&&&\\ 
SPIRE-NEP&&&0.2&1.6&0.2&1.6&0.2&1.6&0.2&3.9&0.2&7.1&&&&&&&&&&&&&&&&\\ 
SSDF&&&112.8&0.1&112.8&0.1&112.8&0.2&112.8&0.4&112.7&1.2&111.7&2.7&98.0&4.1&&&107.5&5.5&94.3&79.7&93.0&86.9&&&&\\ 
xFLS&4.7&2.4&7.8&0.2&7.9&0.1&7.8&1.5&7.8&2.5&7.8&6.2&5.6&6.1&&&&&&&4.1&5.4&4.1&6.0&4.0&21.0&4.0&20.4\\ 
XMM-13hr&&&0.8&0.2&0.8&0.2&&&0.8&0.8&&&0.9&6.2&&&&&&&&&&&&&&\\ 
XMM-LSS&18.9&0.1&22.4&0.0&22.5&0.0&22.5&0.0&22.4&0.1&22.4&0.2&22.3&2.6&21.1&3.6&7.1&0.6&22.0&5.1&10.0&0.7&9.8&0.8&9.3&5.8&9.3&6.4\\ 
\hline
In [111]:
round(np.nan,2)
Out[111]:
nan
In [112]:
np.sum(np.isnan(field_coverages['ferr_ap_u_mean_meadian']))
Out[112]:
10

Plot general overview of depths

In [113]:
def depths_sample(band):
    mask = ~np.isnan(coverage['ferr_ap_{}_mean_min'.format(band)])
    mask &= coverage['ferr_ap_{}_mean_min'.format(band)] > 0.
    mask &= coverage['ferr_ap_{}_mean_min'.format(band)] <1.e3
    area = (np.sum(mask)/len(coverage)) * 1270.
    return np.log10(np.array(coverage['ferr_ap_{}_mean_min'.format(band)][mask]) *5.e-6 ), area
    

data = [ depths_sample(band)[0] for band in bands ]
areas = [ depths_sample(band)[1] for band in bands ]
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in greater
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
In [114]:
len(data)
Out[114]:
14
In [115]:
# fake data
fs = 10  # fontsize
#pos = [1, 2, 4, 5, 7, 8]
#data = np.array([np.array(coverage['ferr_ap_{}_mean_min'.format(b)]) for b in bands]).T

cmap = mpl.cm.viridis
norm = mpl.colors.Normalize(vmin=np.min(areas), vmax=np.max(areas))
scalmap = mpl.cm.ScalarMappable( cmap=cmap, norm=norm)
colors = scalmap.to_rgba(areas)   # The color is the angle
colors[:, 3] = 1

fig, ax = plt.subplots()

def set_axis_style(ax, labels):
    ax.get_xaxis().set_tick_params(direction='out')
    ax.xaxis.set_ticks_position('bottom')
    ax.set_xticks(np.arange(1, len(labels) + 1))
    ax.set_xticklabels(labels)
    ax.set_xlim(0.25, len(labels) + 0.75)
    ax.set_xlabel('band')

#ax.violinplot(np.array(coverage['ferr_ap_{}_mean_min'.format('g') ] ) )
#ax.set_title('Custom violinplot 1', fontsize=fs)

ax.set_ylabel('log10( 5$\sigma$ Depths  [Jy] )')
set_axis_style(ax, ['$' + band + '$' for band in bands])
ax.set_ylim(-7, -3)



parts = ax.violinplot(data, showmeans=False, showmedians=False,
        showextrema=False)

for n, part in enumerate(parts['bodies']):
    part.set_facecolor(colors[n])
    part.set_alpha(1)

cax, _ = mpl.colorbar.make_axes(ax)
n_ticks = 7
values = np.linspace(0,1200, n_ticks)
ticks = values/np.max(areas)

cbar = mpl.colorbar.ColorbarBase(cax, cmap=cmap, ticks = ticks)
cax.set_yticklabels([int(d) for d in values])
cbar.set_label('area [square degrees]')

plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

#fig.suptitle("Violin Plotting Examples")
#fig.subplots_adjust(hspace=0.4)
#plt.ylim(-10,10)
column_width_cm = 8.9
width_cm = 3.0 * column_width_cm
hieght_cm = width_cm / 1.9
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)

plt.savefig('./figs/band_depths_overviews.pdf', bbox_inches='tight')
plt.savefig('./figs/band_depths_overviews.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [116]:
widths = [np.max(np.histogram(data[n], bins = 100, density = True)[0])*areas[n] for n in np.arange(len(data)) ]
widths /= np.max(widths)

print(widths)
[0.3454938  0.7776233  0.71631326 0.75628717 0.64232469 0.65254824
 0.61656475 0.6314781  1.         0.5538689  0.18692627 0.18278592
 0.07429385 0.06284298]
In [117]:
# fake data
fs = 10  # fontsize
#pos = [1, 2, 4, 5, 7, 8]
#data = np.array([np.array(coverage['ferr_ap_{}_mean_min'.format(b)]) for b in bands]).T

cmap = mpl.cm.viridis
norm = mpl.colors.Normalize(vmin=np.min(areas), vmax=np.max(areas))
scalmap = mpl.cm.ScalarMappable( cmap=cmap, norm=norm)
colors = scalmap.to_rgba(areas)   # The color is the angle
colors[:, 3] = 1

fig, ax = plt.subplots()

def set_axis_style(ax, labels):
    ax.get_xaxis().set_tick_params(direction='out')
    ax.xaxis.set_ticks_position('bottom')
    ax.set_xticks(np.arange(1, len(labels) + 1))
    ax.set_xticklabels(labels)
    ax.set_xlim(0.25, len(labels) + 0.75)
    ax.set_xlabel('band')

#ax.violinplot(np.array(coverage['ferr_ap_{}_mean_min'.format('g') ] ) )
#ax.set_title('Custom violinplot 1', fontsize=fs)

ax.set_ylabel('log10( 5$\sigma$ Depths  [Jy] )')
set_axis_style(ax, ['$' + band + '$' for band in bands])
ax.set_ylim(-7, -3)


#areas/np.max(areas)
parts = ax.violinplot(data, widths=widths, showmeans=False, showmedians=False,
        showextrema=False)

for n, part in enumerate(parts['bodies']):
    part.set_facecolor(colors[n])
    part.set_alpha(1)

cax, _ = mpl.colorbar.make_axes(ax)
n_ticks = 7
values = np.linspace(0,1200, n_ticks)
ticks = values/np.max(areas)

cbar = mpl.colorbar.ColorbarBase(cax, cmap=cmap, ticks = ticks)
cax.set_yticklabels([int(d) for d in values])
cbar.set_label('Area [square degrees]')

plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

#fig.suptitle("Violin Plotting Examples")
#fig.subplots_adjust(hspace=0.4)
#plt.ylim(-10,10)
column_width_cm = 8.9
width_cm = 3.0 * column_width_cm
hieght_cm = width_cm / 1.9
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)

plt.savefig('./figs/band_depths_overviews_areaweighted.pdf', bbox_inches='tight')
plt.savefig('./figs/band_depths_overviews_areaweighted.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [118]:
# fake data
fs = 10  # fontsize
#pos = [1, 2, 4, 5, 7, 8]
#data = np.array([np.array(coverage['ferr_ap_{}_mean_min'.format(b)]) for b in bands]).T

cmap = mpl.cm.viridis
norm = mpl.colors.Normalize(vmin=np.min(areas), vmax=np.max(areas))
scalmap = mpl.cm.ScalarMappable( cmap=cmap, norm=norm)
colors = scalmap.to_rgba(areas)   # The color is the angle
colors[:, 3] = 1

fig, ax = plt.subplots()

def set_axis_style(ax, labels):
    ax.get_xaxis().set_tick_params(direction='out')
    ax.xaxis.set_ticks_position('bottom')
    ax.set_xticks(np.arange(1, len(labels) + 1))
    ax.set_xticklabels(labels)
    ax.set_xlim(0.25, len(labels) + 0.75)
    ax.set_xlabel('band')

#ax.violinplot(np.array(coverage['ferr_ap_{}_mean_min'.format('g') ] ) )
#ax.set_title('Custom violinplot 1', fontsize=fs)

ax.set_ylabel('log10( 5$\sigma$ Depths  [Jy] )')
set_axis_style(ax, ['$' + band + '$' for band in bands])
ax.set_ylim(-7, -3)



parts = ax.violinplot(data, widths=np.log10(areas)/np.log10(np.max(areas)), showmeans=False, showmedians=False,
        showextrema=False)

for n, part in enumerate(parts['bodies']):
    part.set_facecolor(colors[n])
    part.set_alpha(1)

cax, _ = mpl.colorbar.make_axes(ax)
n_ticks = 7
values = np.linspace(0,1200, n_ticks)
ticks = values/np.max(areas)

cbar = mpl.colorbar.ColorbarBase(cax, cmap=cmap, ticks = ticks)
cax.set_yticklabels([int(d) for d in values])
cbar.set_label('area [square degrees]')

plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

#fig.suptitle("Violin Plotting Examples")
#fig.subplots_adjust(hspace=0.4)
#plt.ylim(-10,10)
column_width_cm = 8.9
width_cm = 3.0 * column_width_cm
hieght_cm = width_cm / 1.9
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)

plt.savefig('./figs/band_depths_overviews_logareaweighted.pdf', bbox_inches='tight')
plt.savefig('./figs/band_depths_overviews_logareaweighted.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))

Add SED to plot

In [119]:
#s.add_contribution("HELP_SED", orig_spec['WAVE'], orig_spec['LUMIN'])
In [120]:
cigale_filternames = {
    'u':  'u_prime',
    'g':  'MCam_g',
    'r':  'MCam_r',
    'i':  'MCam_i',
    'z':  'MCam_z',
    'y':  'WFCAM_Y',
    'J':  'WFCAM_J',
    'H':  'WFI_H',
    'K':  'WFI_K',
    'Ks': 'Ks_2mass',
    'i1': 'IRAC1',
    'i2': 'IRAC2',
    'i3': 'IRAC3',
    'i4': 'IRAC4'
}
In [121]:
gal1 = './data/HELP_J095946.083p021914.438_best_model.fits'
gal2 = './data/HELP_J100130.443p020929.494_best_model.fits'
gal3 = './data/HELP_J095809.302p013203.775_best_model.fits'
gal4 = './data/HELP_J095822.986p013145.336_best_model.figs'
gal5 = './data/HELP_J003412.527-441056.846_best_model.fits'  #z=4
gal6 = './data/HELP_J095738.934+021508.530_best_model.fits' #From hedam - high fluxes
gal7 = './data/HELP_J095818.598+013057.910_best_model.fits'
gal8 = './data/HELP_J095809.488+013225.513_best_model.fits'
gal9 = './data/HELP_J100108.952+022730.528_best_model.fits'
orig_spec = Table.read(gal9)
        
s = SED()
    # This is wrong because the best SED we get from CIGALE is redshifted (written by Yannick)
s.add_contribution("HELP_SED", orig_spec['wavelength'], orig_spec['L_lambda_total'])
    
#z=1
zs = np.arange(1, 5, 1)

gal_fluxes = np.full([len(zs), len(bands)], np.nan)
for n, z in enumerate(zs):
    print('z = {}:'.format(z))
    sed = s.copy()
    mod = get_module("redshifting", redshift=z)
    mod.process(sed)
    for m, band in enumerate(cigale_filternames):
        flux = sed.compute_fnu(cigale_filternames[band])
        print("{} band: {} mJy".format(band,flux))
        gal_fluxes[n, m] = flux
z = 1:
u band: 2.114516433453811e-14 mJy
g band: 3.0563981403425805e-09 mJy
r band: 0.00023904458353796008 mJy
i band: 0.0009553789491208575 mJy
z band: 0.0017674393225071221 mJy
y band: 0.002210527019337881 mJy
J band: 0.0031530530488951374 mJy
H band: 0.004319244360765199 mJy
K band: 0.006317239316778982 mJy
Ks band: 0.006425892513915043 mJy
i1 band: 0.018534434102073255 mJy
i2 band: 0.022325640838740227 mJy
i3 band: 0.028361672884062546 mJy
i4 band: 0.03943146563662903 mJy
z = 2:
u band: 3.2109771603860785e-14 mJy
g band: 1.472095477474736e-14 mJy
r band: 1.8720567509109372e-15 mJy
i band: 3.854106891800718e-09 mJy
z band: 2.1468245393122928e-05 mJy
y band: 0.00016607597536633694 mJy
J band: 0.0003941947948125535 mJy
H band: 0.0006761987050407453 mJy
K band: 0.0010020216486769902 mJy
Ks band: 0.0010142964936523775 mJy
i1 band: 0.002347266655974899 mJy
i2 band: 0.0043217328844773 mJy
i3 band: 0.0052289219194516685 mJy
i4 band: 0.006923820648659838 mJy
z = 3:
u band: 9.829977022524199e-15 mJy
g band: 1.5021676773415236e-14 mJy
r band: 8.226487430259352e-15 mJy
i band: 1.7866685802931346e-15 mJy
z band: 2.5764041139481603e-16 mJy
y band: 2.2897794934742463e-18 mJy
J band: 3.0398181580537362e-05 mJy
H band: 0.0001731234078584286 mJy
K band: 0.00031012822532282215 mJy
Ks band: 0.00032463657441220823 mJy
i1 band: 0.0006490423409499602 mJy
i2 band: 0.0009478071477916342 mJy
i3 band: 0.0020350690916562104 mJy
i4 band: 0.0026444128595119257 mJy
z = 4:
u band: 8.958612478427203e-17 mJy
g band: 4.745942464644878e-15 mJy
r band: 8.905185022589142e-15 mJy
i band: 5.9291611466690814e-15 mJy
z band: 1.6402212404316308e-15 mJy
y band: 5.927868224683764e-16 mJy
J band: 1.5860746804993732e-18 mJy
H band: 3.5530840494120205e-05 mJy
K band: 0.0001271513501834063 mJy
Ks band: 0.00013800427652824684 mJy
i1 band: 0.00030794458759961604 mJy
i2 band: 0.00041479209264370335 mJy
i3 band: 0.0006499537085758418 mJy
i4 band: 0.0013850168940527713 mJy
In [122]:
fig, ax = plt.subplots()
for n, z in enumerate(zs):
    print('z = {}:'.format(z))
    sed = s.copy()
    mod = get_module("redshifting", redshift=z)
    mod.process(sed)
    ax.plot(np.log10(sed.wavelength_grid), np.log10(sed.fnu * 1.e-3), label=str(z))
#ax.plot(np.log10(orig_spec['wavelength']), np.log10(orig_spec['Fnu']))

plt.legend()
ax.set_ylim(-7, 0)
#ax.set_xlim(0, 14.75)
z = 1:
z = 2:
z = 3:
z = 4:
Out[122]:
(-7, 0)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [123]:
gal_fluxes
Out[123]:
array([[2.11451643e-14, 3.05639814e-09, 2.39044584e-04, 9.55378949e-04,
        1.76743932e-03, 2.21052702e-03, 3.15305305e-03, 4.31924436e-03,
        6.31723932e-03, 6.42589251e-03, 1.85344341e-02, 2.23256408e-02,
        2.83616729e-02, 3.94314656e-02],
       [3.21097716e-14, 1.47209548e-14, 1.87205675e-15, 3.85410689e-09,
        2.14682454e-05, 1.66075975e-04, 3.94194795e-04, 6.76198705e-04,
        1.00202165e-03, 1.01429649e-03, 2.34726666e-03, 4.32173288e-03,
        5.22892192e-03, 6.92382065e-03],
       [9.82997702e-15, 1.50216768e-14, 8.22648743e-15, 1.78666858e-15,
        2.57640411e-16, 2.28977949e-18, 3.03981816e-05, 1.73123408e-04,
        3.10128225e-04, 3.24636574e-04, 6.49042341e-04, 9.47807148e-04,
        2.03506909e-03, 2.64441286e-03],
       [8.95861248e-17, 4.74594246e-15, 8.90518502e-15, 5.92916115e-15,
        1.64022124e-15, 5.92786822e-16, 1.58607468e-18, 3.55308405e-05,
        1.27151350e-04, 1.38004277e-04, 3.07944588e-04, 4.14792093e-04,
        6.49953709e-04, 1.38501689e-03]])
In [124]:
pos = [3561.,     #u  (SDSS)
       4866.,     #g  (GPC1)
       6215.,     #r  (GPC1)
       7545.,     #i  (GPC1)
       8680.,     #z  (GPC1)
       9633.,     #y  (GPC1)
       12510.,    #J  (UKIRT)
       16377.,    #H  (UKIRT)
       22081.,    #K   (UKIRT)
       21496.,    #Ks (WIRCam)
       36000.,    #i1
       45000.,    #i2 
       56000.,    #i3
       80000.    #i4
      ]   
fwhms = [
       [3048., 4028.],     #u  (SDSS)
       [3943., 5593.],     #g  (GPC1)
       [5386., 7036.],     #r  (GPC1)
       [6778., 8304.],     #i  (GPC1)
       [8028., 9346.],     #z  (GPC1)
       [9100., 10838.],     #y  (GPC1)
       [11690., 13280],     #J  (UKIRT)
       [14920., 17840.],     #H  (UKIRT)
       [20290., 23800.],     #K   (UKIRT)
       [19578., 23431.],     #Ks (WIRCam)
       [31296, 39614 ],     #i1
       [39173, 50561],      #i2 
       [48983, 65089],     #i3
       [62994, 95876]      #i4
        ]
In [125]:
fig, ax = plt.subplots()

line_styles = [':', '-.', '--', '-']
colours = ['b', 'g', 'r', 'k']
for n, z in enumerate(zs):
    sed = s.copy()
    mod = get_module("redshifting", redshift=z)
    mod.process(sed)
    ax.plot(sed.wavelength_grid*10, 
            np.log10(sed.fnu * 1.e-3),
            #c='k',
            c= colours[n],
            #linestyle = line_styles[n],
           )
    for m, band in enumerate(cigale_filternames):
        if m == 0:
            lab = 'z = {}'.format(z)
        else:
            lab=None
        ax.plot([fwhms[m][0], fwhms[m][1]], [np.log10(gal_fluxes[n, m]   )-3, 
                                     np.log10(gal_fluxes[n, m]   )-3], 
               # c='k',
                c= colours[n],
               #linestyle = line_styles[n],
               label=lab
               )


plt.legend()
plt.xscale('log')
ax.set_ylim(-7, -3)
ax.set_xlim(3000., 100000)
Out[125]:
(3000.0, 100000)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [126]:
# fake data
fs = 10  # fontsize
# Angstroms     
   
#data = np.array([np.array(coverage['ferr_ap_{}_mean_min'.format(b)]) for b in bands]).T

cmap = mpl.cm.viridis
norm = mpl.colors.Normalize(vmin=np.min(areas), vmax=np.max(areas))
scalmap = mpl.cm.ScalarMappable( cmap=cmap, norm=norm)
colors = scalmap.to_rgba(areas)   # The color is the angle
colors[:, 3] = 1

fig, ax = plt.subplots()

def set_axis_style(ax, labels, positions=False):
    ax.get_xaxis().set_tick_params(direction='out')
    ax.xaxis.set_ticks_position('bottom')
    if not positions:
        ax.set_xticks(np.arange(1, len(labels) + 1))
        ax.set_xticklabels(labels)
        ax.set_xlim(0.25, len(labels) + 0.75)
    else:
        ax.set_xticks(positions)
        ax.set_xticklabels(labels)
        ax.set_xlim(3000., 100000)
        plt.xscale('log')
    
    ax.set_xlabel('band')

#ax.violinplot(np.array(coverage['ferr_ap_{}_mean_min'.format('g') ] ) )
#ax.set_title('Custom violinplot 1', fontsize=fs)

ax.set_ylabel('log10( 5$\sigma$ Depths  [Jy] )')
set_axis_style(ax, ['$' + band + '$' for band in bands])
ax.set_ylim(-7, -3)


#widths
log_widths = np.ones(len(pos)) * (pos) * .2 * widths
#areas/np.max(areas)
parts = ax.violinplot(data, 
                      #positions=pos, 
                      widths=widths, 
                      showmeans=False, 
                      showmedians=False, #widths=widths,
        showextrema=False)

for n, part in enumerate(parts['bodies']):
    part.set_facecolor(colors[n])
    part.set_alpha(1.)

cax, _ = mpl.colorbar.make_axes(ax)
n_ticks = 7
values = np.linspace(0,1200, n_ticks)
ticks = values/np.max(areas)

cbar = mpl.colorbar.ColorbarBase(cax, cmap=cmap, ticks = ticks)
cax.set_yticklabels([int(d) for d in values])
cbar.set_label('Area [square degrees]')

plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

#fig.suptitle("Violin Plotting Examples")
#fig.subplots_adjust(hspace=0.4)
#plt.ylim(-10,10)
column_width_cm = 8.9
width_cm = 3.0 * column_width_cm
hieght_cm = width_cm / 1.9
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)


line_styles = [':', '-.', '--', '-']
for n, z in enumerate(zs):
    for m, band in enumerate(cigale_filternames):
        if m == 0:
            lab = 'z = {}'.format(z)
        else:
            lab=None
        ax.plot([m + 0.5, m + 1.5], [np.log10(gal_fluxes[n, m]  *1.e-3 ), 
                                     np.log10(gal_fluxes[n, m]  *1.e-3 )], 
                c='k',
               linestyle = line_styles[n],
               label=lab
               )

ax.legend(loc=2)

plt.savefig('./figs/band_depths_overviews_areaweighted_with_seds.pdf', bbox_inches='tight')
plt.savefig('./figs/band_depths_overviews_areaweighted_with_seds.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [127]:
# fake data
fs = 10  # fontsize
# Angstroms     


#data = np.array([np.array(coverage['ferr_ap_{}_mean_min'.format(b)]) for b in bands]).T

cmap = mpl.cm.viridis
norm = mpl.colors.Normalize(vmin=np.min(areas), vmax=np.max(areas))
scalmap = mpl.cm.ScalarMappable( cmap=cmap, norm=norm)
colors = scalmap.to_rgba(areas)   # The color is the angle
colors[:, 3] = 1

fig, ax = plt.subplots()

ax2 = ax.twiny()

#ax2.set_xlim(3000., 100000)
#ax2.set_xticks(pos)
#ax2.set_xticklabels(['$' + band + '$' for band in bands])
#ax2.set_xlabel('band')
#ax2.set_xscale('log')
ax2.set_xlim(np.log10(3000.), np.log10(100000))
ax2.set_xticks(np.log10(pos))
ax2.set_xticklabels(['${}$'.format(band).replace('$Ks$', '').replace('K', 'K/Ks') for band in bands])
ax2.set_xlabel('band')
#ax2.set_xscale('log')

line_styles = [':', '-.', '--', '-']
colours = ['y', 'b', 'g', 'r', 'k']
for n, z in enumerate([0.25, 1, 2, 3, 4]):
    sed = s.copy()
    mod = get_module("redshifting", redshift=z)
    mod.process(sed)
    ax.plot(sed.wavelength_grid*10, 
            np.log10(sed.fnu * 1.e-3),
            #c='k',
            c= colours[n],
            #linestyle = line_styles[n],
            label= 'z = {}'.format(z),
            alpha=0.5
           )
    for m, band in enumerate(cigale_filternames):
        continue
        if m == 0:
            lab = 'z = {}'.format(z)
        else:
            lab=None
        ax.plot([fwhms[m][0], fwhms[m][1]], [np.log10(gal_fluxes[n, m]   )-3, 
                                     np.log10(gal_fluxes[n, m]   )-3], 
               # c='k',
                c= colours[n],
               #linestyle = line_styles[n],
               label=lab,
                alpha=0.7
               )

        




ax.set_ylabel('log10( 5$\sigma$ Depths  [Jy] )')

#ax.set_xticks(pos)
#ax.set_xticklabels(['${}$'.format(band.replace('Ks', '').replace('K', 'K/Ks')) for band in bands])
ax.set_xlim(3000., 100000)
ax.set_xscale('log')    
ax.set_xlabel('Wavelength [nm]')
ax.set_ylim(-7, -3)
ax.legend(loc=2)

#widths
log_widths = np.ones(len(pos)) * (pos) * .2 * widths
#areas/np.max(areas)
parts = ax.violinplot(data, 
                      positions=pos, 
                      widths=log_widths, 
                      showmeans=False, 
                      showmedians=False, #widths=widths,
        showextrema=False)

for n, part in enumerate(parts['bodies']):
    part.set_facecolor(colors[n])
    part.set_alpha(.9)

cax, _ = mpl.colorbar.make_axes([ax, ax2])
n_ticks = 7
values = np.linspace(0,1200, n_ticks)
ticks = values/np.max(areas)

cbar = mpl.colorbar.ColorbarBase(cax, cmap=cmap, ticks = ticks)
cax.set_yticklabels([int(d) for d in values])
cbar.set_label('Area [square degrees]')









plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

#fig.suptitle("Violin Plotting Examples")
#fig.subplots_adjust(hspace=0.4)
#plt.ylim(-10,10)
column_width_cm = 8.9
width_cm = 3.0 * column_width_cm
hieght_cm = width_cm / 1.9
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)
plt.savefig('./figs/band_depths_overviews_areaweighted_with_seds_wave.pdf', bbox_inches='tight')
plt.savefig('./figs/band_depths_overviews_areaweighted_with_seds_wave.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [128]:
# fake data
fs = 10  # fontsize
# Angstroms     


#data = np.array([np.array(coverage['ferr_ap_{}_mean_min'.format(b)]) for b in bands]).T

cmap = mpl.cm.viridis
norm = mpl.colors.Normalize(vmin=np.min(areas), vmax=np.max(areas))
scalmap = mpl.cm.ScalarMappable( cmap=cmap, norm=norm)
colors = scalmap.to_rgba(areas)   # The color is the angle
colors[:, 3] = 1

fig, ax = plt.subplots()

ax2 = ax.twiny()

#ax2.set_xlim(3000., 100000)
#ax2.set_xticks(pos)
#ax2.set_xticklabels(['$' + band + '$' for band in bands])
#ax2.set_xlabel('band')
#ax2.set_xscale('log')
ax2.set_xlim(np.log10(3000.), np.log10(100000))
ax2.set_xticks(np.log10(pos))
ax2.set_xticklabels(['${}$'.format(band).replace('$Ks$', '').replace('K', 'K/Ks') for band in bands])
ax2.set_xlabel('band')
#ax2.set_xscale('log')


line_styles = [':', '-.', '--', '-']
colours = ['y', 'b', 'g', 'r', 'k']
for n, z in enumerate([0.25, 1, 2, 3, 4]):
    sed = s.copy()
    mod = get_module("redshifting", redshift=z)
    mod.process(sed)
    ax.plot(sed.wavelength_grid*10, 
            np.log10(sed.fnu * 1.e-3),
            c='k',
            #c= colours[n],
            #linestyle = line_styles[n],
            label= 'z = {}'.format(z),
            linewidth=1.0,
            alpha=1.
           )
    for m, band in enumerate(cigale_filternames):
        continue
        if m == 0:
            lab = 'z = {}'.format(z)
        else:
            lab=None
        ax.plot([fwhms[m][0], fwhms[m][1]], [np.log10(gal_fluxes[n, m]   )-3, 
                                     np.log10(gal_fluxes[n, m]   )-3], 
               # c='k',
                c= colours[n],
               #linestyle = line_styles[n],
               label=lab,
                alpha=1.0
               )

        




ax.set_ylabel('log10( 5$\sigma$ Depths  [Jy] )')

#ax.set_xticks(pos)
#ax.set_xticklabels(['${}$'.format(band.replace('Ks', '').replace('K', 'K/Ks')) for band in bands])
ax.set_xlim(3000., 100000)
ax.set_xscale('log')    
ax.set_xlabel('Wavelength [nm]')
ax.set_ylim(-7, -3)
#ax.legend(loc=2)


#widths
log_widths = np.ones(len(pos)) * (pos) * .2 * widths
#areas/np.max(areas)
parts = ax.violinplot(data, 
                      positions=pos, 
                      widths=log_widths, 
                      showmeans=False, 
                      showmedians=False, #widths=widths,
        showextrema=False)

for n, part in enumerate(parts['bodies']):
    part.set_facecolor(colors[n])
    part.set_alpha(1.0)

cax, _ = mpl.colorbar.make_axes([ax, ax2])
n_ticks = 7
values = np.linspace(0,1200, n_ticks)
ticks = values/np.max(areas)

cbar = mpl.colorbar.ColorbarBase(cax, cmap=cmap, ticks = ticks)
cax.set_yticklabels([int(d) for d in values])
cbar.set_label('Area [square degrees]')



plt.figtext(0.49, 0.83, 'z = 0.25')
plt.figtext(0.71, 0.645, 'z = 1')
plt.figtext(0.71, 0.51, 'z = 2')
plt.figtext(0.71, 0.425, 'z = 3')
plt.figtext(0.71, 0.365, 'z = 4')





plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

#fig.suptitle("Violin Plotting Examples")
#fig.subplots_adjust(hspace=0.4)
#plt.ylim(-10,10)
column_width_cm = 8.9
width_cm = 3.0 * column_width_cm
hieght_cm = width_cm / 1.9
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)
plt.savefig('./figs/band_depths_overviews_areaweighted_with_black_seds_wave.pdf', bbox_inches='tight')
plt.savefig('./figs/band_depths_overviews_areaweighted_with_black_seds_wave.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [129]:
# fake data
fs = 10  # fontsize
# Angstroms     


#data = np.array([np.array(coverage['ferr_ap_{}_mean_min'.format(b)]) for b in bands]).T

cmap = mpl.cm.viridis
norm = mpl.colors.Normalize(vmin=np.min(areas), vmax=np.max(areas))
scalmap = mpl.cm.ScalarMappable( cmap=cmap, norm=norm)
colors = scalmap.to_rgba(areas)   # The color is the angle
colors[:, 3] = 1

fig, ax = plt.subplots()

ax2 = ax.twiny()

#ax2.set_xlim(3000., 100000)
#ax2.set_xticks(pos)
#ax2.set_xticklabels(['$' + band + '$' for band in bands])
#ax2.set_xlabel('band')
#ax2.set_xscale('log')
ax2.set_xlim(np.log10(300.), np.log10(10000))
ax2.set_xticks(np.log10(np.array(pos)/10))
ax2.set_xticklabels(['${}$'.format(band).replace('$Ks$', '').replace('K', 'K/Ks') for band in bands])
ax2.set_xlabel('band')
#ax2.set_xscale('log')


line_styles = [':', '-.', '--', '-']
colours = ['y', 'b', 'g', 'r', 'k']
for n, z in enumerate([0.25, 1, 2, 3, 4]):
    sed = s.copy()
    mod = get_module("redshifting", redshift=z)
    mod.process(sed)
    ax.plot(sed.wavelength_grid, #*10 factor ten turns angstrom to nm fix unit error
            #np.log10(sed.fnu * 1.e-3), #This is for flux in Jy
            flux_to_mag(sed.fnu * 1.e-3)[0], #This is for flux in mag
            c='k',
            #c= colours[n],
            #linestyle = line_styles[n],
            label= 'z = {}'.format(z),
            linewidth=1.0,
            alpha=1.
           )
    for m, band in enumerate(cigale_filternames):
        continue
        if m == 0:
            lab = 'z = {}'.format(z)
        else:
            lab=None
        ax.plot([fwhms[m][0], fwhms[m][1]], [np.log10(gal_fluxes[n, m]   )-3, 
                                     np.log10(gal_fluxes[n, m]   )-3], 
               # c='k',
                c= colours[n],
               #linestyle = line_styles[n],
               label=lab,
                alpha=1.0
               )

        




ax.set_ylabel('5$\sigma$ depth [mag]')

#ax.set_xticks(pos)
#ax.set_xticklabels(['${}$'.format(band.replace('Ks', '').replace('K', 'K/Ks')) for band in bands])
ax.set_xlim(300., 10000)
ax.set_xscale('log')    
ax.set_xlabel('Wavelength [nm]')
ax.set_ylim(27, 16)
#ax.legend(loc=2)


#widths
log_widths = np.ones(len(pos)) * (pos) * .2 * widths
#areas/np.max(areas)
parts = ax.violinplot([flux_to_mag(10**d)[0] for d in data], #flux_to_mag assumes Jy
                      positions=np.array(pos)/10, #fix unit error 
                      widths=log_widths/10, 
                      showmeans=False, 
                      showmedians=False, #widths=widths,
        showextrema=False)

for n, part in enumerate(parts['bodies']):
    part.set_facecolor(colors[n])
    part.set_alpha(1.0)

cax, _ = mpl.colorbar.make_axes([ax, ax2])
n_ticks = 7
values = np.linspace(0,1200, n_ticks)
ticks = values/np.max(areas)

cbar = mpl.colorbar.ColorbarBase(cax, cmap=cmap, ticks = ticks)
cax.set_yticklabels([int(d) for d in values])
cbar.set_label('Area [deg.$^2$]')



plt.figtext(0.49, 0.81, 'z = 0.25')
plt.figtext(0.70, 0.645, 'z = 1')
plt.figtext(0.70, 0.52, 'z = 2')
plt.figtext(0.70, 0.435, 'z = 3')
plt.figtext(0.70, 0.385, 'z = 4')





plt.rc('font', family='serif', serif='Times')
plt.rc('text') #, usetex=True)
plt.rc('xtick', labelsize=12)
plt.rc('ytick', labelsize=12)
plt.rc('axes', labelsize=12)

#fig.suptitle("Violin Plotting Examples")
#fig.subplots_adjust(hspace=0.4)
#plt.ylim(-10,10)
column_width_cm = 8.9
width_cm = 3.0 * column_width_cm
hieght_cm = width_cm / 1.9
width_inches = width_cm/2.5
hieght_inches = hieght_cm/2.5
fig.set_size_inches(width_inches, hieght_inches)
plt.savefig('./figs/band_depths_overviews_areaweighted_with_black_seds_wave_mag.pdf', bbox_inches='tight')
plt.savefig('./figs/band_depths_overviews_areaweighted_with_black_seds_wave_mag.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [130]:
['${}$'.format(band).replace('$Ks$', '').replace('K', 'K/Ks') for band in bands]
Out[130]:
['$u$',
 '$g$',
 '$r$',
 '$i$',
 '$z$',
 '$y$',
 '$J$',
 '$H$',
 '$K/Ks$',
 '',
 '$i1$',
 '$i2$',
 '$i3$',
 '$i4$']
In [131]:
data[0].shape
Out[131]:
(204388,)
In [132]:
fig, ax = plt.subplots()
#cmap = mpl.cm.get_cmap('viridis', 256)
#norm = mpl.colors.Normalize(vmin=np.min(areas), vmax=np.min(areas))

cmap = mpl.cm.viridis
norm = mpl.colors.Normalize(vmin=np.min(areas), vmax=np.max(areas))
scalmap = mpl.cm.ScalarMappable( cmap=cmap, norm=norm)
colors = scalmap.to_rgba(areas)   # The color is the angle
colors[:, 3] = 1

#cb = mpl.colorbar.ColorbarBase(ax, cmap=cmap,  norm=norm)

#cmap = mpl.colors.ListedColormap('viridis')
#colors = cmap(np.array(areas))


im = plt.scatter(np.arange(len(areas)), areas, c=colors)


cax, _ = mpl.colorbar.make_axes(ax)
cbar = mpl.colorbar.ColorbarBase(cax, cmap=cmap)
cbar.set_label('area [square degrees]')
#cax.set_yticklabels(['$-\pi$', '0', '$\pi$'])
#cb = mpl.colorbar.ColorbarBase(ax, cmap=cmap,  norm=norm)
# Optionally add a colorbar
#cax, _ = mpl.colorbar.make_axes(ax)
#cbar = mpl.colorbar.ColorbarBase(cax, cmap=cmap)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [133]:
colors
Out[133]:
array([[0.151918, 0.500685, 0.557587, 1.      ],
       [0.993248, 0.906157, 0.143936, 1.      ],
       [0.983868, 0.904867, 0.136897, 1.      ],
       [0.983868, 0.904867, 0.136897, 1.      ],
       [0.993248, 0.906157, 0.143936, 1.      ],
       [0.9553  , 0.901065, 0.118128, 1.      ],
       [0.814576, 0.883393, 0.110347, 1.      ],
       [0.657642, 0.860219, 0.203082, 1.      ],
       [0.120092, 0.600104, 0.54253 , 1.      ],
       [0.120565, 0.596422, 0.543611, 1.      ],
       [0.273006, 0.20452 , 0.501721, 1.      ],
       [0.274128, 0.199721, 0.498911, 1.      ],
       [0.267004, 0.004874, 0.329415, 1.      ],
       [0.267004, 0.004874, 0.329415, 1.      ]])
In [134]:
cmap = mpl.cm.hot
norm = mpl.colors.Normalize(vmin=np.min(areas), vmax=np.max(areas))
scalmap = mpl.cm.ScalarMappable( cmap=cmap, norm=norm)
colors = scalmap.to_rgba(areas)  # The color is the angle
#colors[:, 3] = 0.5
print(scalmap.to_rgba(500),
     scalmap.to_rgba(1000),
     scalmap.to_rgba(100))
colors
(0.9990204970624408, 0.0, 0.0, 1.0) (1.0, 1.0, 0.13529325294031186, 1.0) (0.13425359648991364, 0.0, 0.0, 1.0)
Out[134]:
array([[1.        , 0.17402028, 0.        , 1.        ],
       [1.        , 1.        , 1.        , 1.        ],
       [1.        , 1.        , 0.98455881, 1.        ],
       [1.        , 1.        , 0.98455881, 1.        ],
       [1.        , 1.        , 1.        , 1.        ],
       [1.        , 1.        , 0.93823523, 1.        ],
       [1.        , 1.        , 0.72205855, 1.        ],
       [1.        , 1.        , 0.49044067, 1.        ],
       [1.        , 0.45196101, 0.        , 1.        ],
       [1.        , 0.44166691, 0.        , 1.        ],
       [0.43280407, 0.        , 0.        , 1.        ],
       [0.42250923, 0.        , 0.        , 1.        ],
       [0.0416    , 0.        , 0.        , 1.        ],
       [0.0416    , 0.        , 0.        , 1.        ]])
In [135]:
mask = ~np.isnan(coverage['ferr_ap_{}_mean_min'.format('i1')])
mask |= coverage['ferr_ap_{}_mean_min'.format('i1')] > 0.
mask |= coverage['ferr_ap_{}_mean_min'.format('i1')] <1.e3
plt.hist(np.log10(np.array(coverage['ferr_ap_{}_mean_min'.format('i1')][mask ]) *1.e-6), bins=50)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in greater
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
Out[135]:
(array([7.0000e+00, 1.7000e+01, 1.8600e+02, 3.4000e+02, 5.3000e+01,
        2.6000e+01, 3.5000e+01, 5.0000e+00, 2.8000e+01, 3.2990e+03,
        2.6680e+03, 5.9660e+03, 1.2033e+04, 4.6040e+03, 3.4370e+03,
        1.7157e+04, 2.4320e+03, 1.5290e+03, 4.9600e+02, 6.8100e+02,
        2.0300e+02, 1.0200e+02, 1.6800e+02, 2.9900e+02, 4.3800e+02,
        7.4700e+02, 1.4360e+03, 3.1540e+03, 5.1880e+03, 5.7870e+03,
        4.5870e+03, 3.0960e+03, 2.1500e+03, 1.0010e+03, 3.9300e+02,
        1.2300e+02, 6.0000e+01, 2.6000e+01, 1.3000e+01, 8.0000e+00,
        3.0000e+00, 2.0000e+00, 0.0000e+00, 1.0000e+00, 1.0000e+00,
        0.0000e+00, 1.0000e+00, 0.0000e+00, 0.0000e+00, 2.0000e+00]),
 array([-7.47225542, -7.35783564, -7.24341587, -7.1289961 , -7.01457632,
        -6.90015655, -6.78573678, -6.67131701, -6.55689723, -6.44247746,
        -6.32805769, -6.21363791, -6.09921814, -5.98479837, -5.8703786 ,
        -5.75595882, -5.64153905, -5.52711928, -5.4126995 , -5.29827973,
        -5.18385996, -5.06944019, -4.95502041, -4.84060064, -4.72618087,
        -4.61176109, -4.49734132, -4.38292155, -4.26850177, -4.154082  ,
        -4.03966223, -3.92524246, -3.81082268, -3.69640291, -3.58198314,
        -3.46756336, -3.35314359, -3.23872382, -3.12430405, -3.00988427,
        -2.8954645 , -2.78104473, -2.66662495, -2.55220518, -2.43778541,
        -2.32336563, -2.20894586, -2.09452609, -1.98010632, -1.86568654,
        -1.75126677]),
 <a list of 50 Patch objects>)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))
In [136]:
areas
Out[136]:
[577.9251290226341,
 1265.6398587541692,
 1259.37392295601,
 1260.7368205438765,
 1263.7397193785541,
 1243.774117992813,
 1178.0213783491338,
 1107.826497397283,
 703.7980523037053,
 699.6075663592685,
 237.4354218895415,
 235.95942076741193,
 56.67335343073299,
 56.5970085451056]
In [137]:
np.sum(np.log10(coverage['ferr_ap_{}_mean_min'.format('i1')] )  >3)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in greater
  return getattr(self.data, op)(other)
Out[137]:
17
In [138]:
np.sum(coverage['ferr_ap_{}_mean_min'.format('i1')]  >10.)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in greater
  return getattr(self.data, op)(other)
Out[138]:
28723

All field comparison

In [139]:
def depths_sample_field(band, field):
    
    mask = ~np.isnan(coverage['ferr_ap_{}_mean_min'.format(band)])
    mask &= coverage['ferr_ap_{}_mean_min'.format(band)] > 0.
    mask &= coverage['ferr_ap_{}_mean_min'.format(band)] <1.e3
    mask &= coverage['field'] == field
    area = (np.sum(mask)/len(coverage[coverage['field'] == field])) #* 1270. #Return fractional areas
    
    pixel_depths = np.log10(np.array(coverage['ferr_ap_{}_mean_min'.format(band)][mask]) *5.e-6 )
    if np.sum(mask)== 0:
        pixel_depths = np.full(100, -9.)
    return pixel_depths, area
    
f = 'ELAIS-N1'
data_field = [ depths_sample_field(band, f)[0] for band in bands ]
areas_field = [ depths_sample_field(band, f)[1] for band in bands ]
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in greater
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
In [140]:
areas_field
Out[140]:
[0.9446658851113716,
 0.994841735052755,
 0.9950762016412661,
 0.9939038686987104,
 0.9950762016412661,
 0.9894490035169988,
 0.6628370457209848,
 0.0,
 0.6640093786635405,
 0.0,
 0.6944900351699883,
 0.6958968347010551,
 0.6893317702227433,
 0.6902696365767879]
In [141]:
dim = [4,6]
fig, axes = plt.subplots(dim[1], dim[0], sharex=True, sharey=True)
plt.rcParams.update({'font.size': 12})
cmap = mpl.cm.viridis
norm = mpl.colors.Normalize(vmin=0, vmax=1)
scalmap = mpl.cm.ScalarMappable( cmap=cmap, norm=norm)

for n, f in enumerate(np.unique(coverage['field'])):
        
    x, y = np.floor_divide(n, dim[0]), np.remainder(n, dim[0])
    
    
    #axes[x,y].scatter( np.arange(20), np.arange(20))
    #axes[x,y].legend()
    
    
    #####MAKE FIELD DATA#####
    data_field = [ depths_sample_field(band, f)[0] for band in bands ]
    areas_field = [ depths_sample_field(band, f)[1] for band in bands ]
    data_field_mag = [flux_to_mag(10**d)[0] for d in data_field]
    
    
    colors = scalmap.to_rgba(areas_field)   # The color is the angle
    colors[:, 3] = 1

   

    def set_axis_style(ax, labels):
        axes[x,y].get_xaxis().set_tick_params(direction='out')
        axes[x,y].xaxis.set_ticks_position('bottom')
        axes[x,y].tick_params(axis='x', labelsize=8)
        axes[x,y].set_xticks(np.arange(1, len(labels) + 1))
        axes[x,y].set_xticklabels(labels)
        axes[x,y].set_xlim(0.25, len(labels) + 0.75)
        #axes[x,y].set_xlabel('band')
        #axes[x,y].set_ylabel('5$\sigma$ depth [mag]')
    #ax.violinplot(np.array(coverage['ferr_ap_{}_mean_min'.format('g') ] ) )
    #ax.set_title('Custom violinplot 1', fontsize=fs)

    #axes[x,y].set_ylabel('log10( 5$\sigma$ Depths  [Jy] )')
    set_axis_style(axes[x,y], ['$' + band + '$' for band in bands])
    axes[x,y].set_ylim(28, 17)



    parts = axes[x,y].violinplot(data_field_mag, widths=0.75, showmeans=False, showmedians=False,
            showextrema=False)
    
    
    #This is just to add the field name
    axes[x,y].scatter([-99],[-99], 
                      label=f.replace('SGP', 'HATLAS-SGP').replace('NGP', 'HATLAS-NGP'), 
                      c='w', s=0.0001)
    axes[x,y].legend(frameon=False, loc=4)

    for n, part in enumerate(parts['bodies']):
        part.set_facecolor(colors[n])
        part.set_alpha(1)

#cax, _ = mpl.colorbar.make_axes(axes[dim[1]-1,dim[0]-1], panchor=(-8.8, 10.6)) #5 3 depend on 4 x 6
#This bit moves the color bar
cax = inset_axes(axes[dim[1]-1,dim[0]-1],
                   width="5%",  # width = 5% of parent_bbox width
                   height="85%",  # height : 50%
                   loc=3,
                   bbox_to_anchor=(0.05, 0.08, 1, 1),
                   bbox_transform=axes[dim[1]-1,dim[0]-1].transAxes,
                   borderpad=0,
                   )

ticks = [0, 0.5, 1]
cbar = mpl.colorbar.ColorbarBase(cax, cmap=cmap, ticks = ticks)
cax.set_yticklabels(ticks)
cbar.set_label('coverage')
    
axes[dim[1]-1,dim[0]-1].tick_params(axis='x', labelsize=8)
#axes[dim[1]-1,dim[0]-1].set_xlabel('band')
    
fig.text(0.5, 0.07, 'Bands', ha='center')
fig.text(0.04, 0.5, '5$\sigma$ depth [mag]', va='center', rotation='vertical')

fig.set_size_inches(10, 12)
fig.subplots_adjust(hspace=0, wspace=0)

plt.rc('axes', labelsize=12)
plt.savefig('./figs/fields_depths_comparison_grid.pdf', bbox_inches='tight')
plt.savefig('./figs/fields_depths_comparison_grid.png', bbox_inches='tight')
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in greater
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/astropy/table/column.py:965: RuntimeWarning: invalid value encountered in less
  return getattr(self.data, op)(other)
/Users/rs548/anaconda/envs/herschelhelp_internal/lib/python3.6/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))

Summarise the filters

In [142]:
for band in bands:
    specific_bands = [f for f in filters if f.split('_')[1] == band.lower()]
    print(specific_bands)
    for specific_band in specific_bands:
        if 'ferr_ap_{}_mean'.format(specific_band) not in coverage.colnames:
            specific_bands.remove(specific_band)
    #print(specific_bands)
['omegacam_u', 'mmt_u', 'bessell_u', 'lbc_u', 'wfi_u', 'megacam_u', 'mosaic_u', 'wfc_u', 'sdss_u']
['mmt_g', 'omegacam_g', 'suprime_g', 'megacam_g', 'wfc_g', 'gpc1_g', 'decam_g', '90prime_g', 'sdss_g']
['omegacam_r', 'mmt_r', 'cfht12k_r', 'megacam_r', 'wfi_r', 'suprime_r', 'mosaic_r', 'bessell_r', 'wfc_r', 'gpc1_r', 'decam_r', 'sdss_r', '90prime_r']
['sdss_i', 'decam_i', 'gpc1_i', 'wfc_i', 'bessell_i', 'mosaic_i', 'megacam_i', 'wfi_i', 'suprime_i', 'cfht12k_i', 'mmt_i', 'omegacam_i']
['decam_z', '90prime_z', 'sdss_z', 'wfc_z', 'gpc1_z', 'suprime_z', 'megacam_z', 'vista_z', 'mosaic_z', 'omegacam_z', 'mmt_z']
['decam_y', 'ukidss_y', 'gpc1_y', 'suprime_y', 'megacam_y', 'vista_y', 'lbc_y', 'wircam_y']
['omega2000_j', 'ukidss_j', 'vista_j', 'newfirm_j', 'wircs_j', 'wircam_j']
['ukidss_h', 'vista_h', 'newfirm_h', 'wircam_h']
['isaac_k', 'moircs_k', 'ukidss_k', 'newfirm_k', 'wircs_k', 'hawki_k']
['wircam_ks', 'vista_ks', 'moircs_ks', 'omega2000_ks', 'tifkam_ks']
['irac_i1']
['irac_i2']
['irac_i3']
['irac_i4']
In [143]:
filter_info = Table.read(herschelhelp_python_loc + 'documentation/filters.csv')
In [144]:
has_broad_typical = np.full(len(filter_info), False)
for band in bands:
    has_broad_typical |= filter_info['filter'] == band
    
filter_info[has_broad_typical]
Out[144]:
Table masked=True length=80
filter_filetelescopecamerafiltersurveysdescriptionwavelength_regionucd
str17str83str83str6int64int64str3str12
90prime_g.xmlThe Bok TelescopeThe 90-inch prime focus camera (90prime)g----optB
90prime_r.xmlThe Bok TelescopeThe 90-inch prime focus camera (90prime)r----optR
90prime_z.xmlThe Bok TelescopeThe 90-inch prime focus camera (90prime)z----optI
bessell_i.xmlStandardised telescope response (telescope uknown)Standard camera response (camera unknown)i----optI
bessell_r.xmlStandardised telescope response (telescope uknown)Standard camera response (camera unknown)r----optR
bessell_u.xmlStandardised telescope response (telescope uknown)Standard camera response (camera unknown)u----optU
cfht12k_i.xmlCanada France Hawaii Telescope (CFHT)The CFH12K prime focus 12K camerai----optI
cfht12k_r.xmlCanada France Hawaii Telescope (CFHT)The CFH12K prime focus 12K camerar----optR
decam_g.xmlBlancoThe Dark Energy Camera (DECam)g----optB
decam_i.xmlBlancoThe Dark Energy Camera (DECam)i----optI
........................
wfc_r.xmlIsaac Newton Telescope (INT)The Wide Field Camera (WFC)r----optR
wfc_u.xmlIsaac Newton Telescope (INT)The Wide Field Camera (WFC)u----optU
wfc_z.xmlIsaac Newton Telescope (INT)The Wide Field Camera (WFC)z----optI
wfi_i.xmlThe Max Planck Gesellschaft (MPG) telescopeThe Wide Field Imager (WFI)i----optI
wfi_u.xmlThe Max Planck Gesellschaft (MPG) telescopeThe Wide Field Imager (WFI)u----optU
wircam_h.xmlCanada France Hawaii Telescope (CFHT)Wide-field InfraRed Camera (WIRCam)H----IRH
wircam_j.xmlCanada France Hawaii Telescope (CFHT)Wide-field InfraRed Camera (WIRCam)J----IRJ
wircam_ks.xmlCanada France Hawaii Telescope (CFHT)Wide-field InfraRed Camera (WIRCam)Ks----IRK
wircs_j.xmlPalomar 200-inch Hale Telescope (P200)Wide Infrared Camera (WIRC)J----IRJ
wircs_k.xmlPalomar 200-inch Hale Telescope (P200)Wide Infrared Camera (WIRC)Ks----IRK
In [145]:
has_optical = np.full(len(filter_info), False)
optical_bands = ['u', 'g', 'r', 'i', 'z', 'y']
has_near_infrared = np.full(len(filter_info), False)
near_infrared_bands = ['J', 'H', 'K', 'Ks']

for band in bands:
    if band in optical_bands:
        has_optical |= filter_info['filter'] == band
    if band in near_infrared_bands:
        has_near_infrared |= filter_info['filter'] == band
In [146]:
def get_bands(camera):
    band_list = []
    for b in filter_info['filter'][filter_info['camera'] == camera]:
        #print(b)
        band_list.append( b)
    band_list_ordered_string = ''
    for band in bands:
        if band in band_list:
            band_list_ordered_string += band
    
    return '$' + band_list_ordered_string + '$'



print(get_bands('HyperSuprimeCam'))
$grizy$
In [147]:
optical_sentence = ''
for camera in np.unique(filter_info['camera'][has_optical]):
    if camera == 'Standard camera response (camera unknown)':
        continue
    row = filter_info[filter_info['camera'] == camera][0] 
    optical_sentence += 'From {} on {} we have the optical bands {}. '.format(row['camera'].replace('The', 'the'), 
                                                             row['telescope'].replace('The', 'the'),
                                                             get_bands(camera))
    
print(optical_sentence)
From HyperSuprimeCam on the Subaru telescope we have the optical bands $grizy$. From MegaCam on the Multiple Mirror Telescope (MMT) Observatory we have the optical bands $ugriz$. From MegaPrime/MegaCam on Canada France Hawaii Telescope (CFHT) we have the optical bands $ugrizy$. From Mosaic-3 Wide Field Imager on the Kitt Peak National Observatory we have the optical bands $uriz$. From OmegaCAM on the Very Large Telescope (VLT) Survey Telescope (VST) at Paranal we have the optical bands $ugriz$. From the 90-inch prime focus camera (90prime) on the Bok Telescope we have the optical bands $grz$. From the CFH12K prime focus 12K camera on Canada France Hawaii Telescope (CFHT) we have the optical bands $ri$. From the Dark Energy Camera (DECam) on Blanco we have the optical bands $grizy$. From the Pan-STARRS Gigapixel Camera on the Panoramic Survey Telescope and Rapid Response System (Pan-STARRS) we have the optical bands $grizy$. From the Sloan Digital Sky Survey (SDSS) standard camera on the Sloan Digital Sky Survey (SDSS) dedicated telescope at Apache Point Observatory we have the optical bands $ugriz$. From the Wide Field Camera (WFC) on Isaac Newton Telescope (INT) we have the optical bands $ugriz$. From the Wide Field Imager (WFI) on the Max Planck Gesellschaft (MPG) telescope we have the optical bands $ui$. 
In [148]:
near_infrared_sentence = ''
for camera in np.unique(filter_info['camera'][has_near_infrared]):
    if camera == 'Standard camera response (camera unknown)':
        continue
    row = filter_info[filter_info['camera'] == camera][0] 
    near_infrared_sentence += 'From {} on {} we have the optical bands {}. '.format(row['camera'].replace('The', 'the'), 
                                                             row['telescope'].replace('The', 'the'),
                                                             get_bands(camera))
    
print(near_infrared_sentence)
From National Optical Astronomy Observatory (NOAO) Extremely Wide-Field Imager (NEWFIRM) on National Optical Astronomy Observatory (NOAO) Gemini Observatory we have the optical bands $JHK$. From the High Acuity Wide field K-band Imager (HAWK-I) on the Very Large Telescope (VLT) at Paranal we have the optical bands $K$. From the Infrared Spectrometer And Array Camera (ISAAC) on the Very Large Telescope (VLT) at Paranal we have the optical bands $Ks$. From the Infrared Wide-Field Camera OMEGA2000 on the 3.5m telescope at Calar Alto we have the optical bands $JKs$. From the Instrument Formerly Known as Mosaic (TIFKAM) on the Michigan Dartmouth MIT (MDM) Observatory we have the optical bands $Ks$. From the Multi Object Infrared Camera and Spectrograph (MOIRCS) on the Subaru telescope we have the optical bands $KKs$. From the VISTA InfraRed CAMera (VIRCAM) on the 4.1m Visible and Infrared Survey Telescope for Astronomy (VISTA) we have the optical bands $JHKs$. From the Wide Field Camera (WFCAM) on the United Kingdom Infrared Telescope (UKIRT) we have the optical bands $JHK$. From Wide Infrared Camera (WIRC) on Palomar 200-inch Hale Telescope (P200) we have the optical bands $JKs$. From Wide-field InfraRed Camera (WIRCam) on Canada France Hawaii Telescope (CFHT) we have the optical bands $JHKs$. 

Count the number of flagged objects

For each band lets count the number of objects that have a flag

# Import the module # Setting up the service object service = vo.dal.TAPService("https://herschel-vos.phys.sussex.ac.uk/__system__/tap/run/tap") # Downloading the data query = "SELECT COUNT(*) as n, flag_merged FROM herschelhelp.main GROUP BY flag_merged " #Then we execute the query #resultset = service.run_async(irac_i1_query) job = service.submit_job(query) job.run() job_url = job.url job_result = vo.dal.tap.AsyncTAPJob(job_url) start_time = time.time() wait = 10 while job.phase == 'EXECUTING': print('Job still running after {} seconds.'.format(round(time.time() - start_time))) time.sleep(wait) #wait ten seconds and try again wait *= 2 print(job.phase) table = job_result.fetch_result()