
import numpy as np
from astropy import table

filename = '../input/ZTF.ref'
refs = table.unique(table.Table.read(filename,
    format='ascii', data_start=2, data_end=-1)['field', 'fid'])
reference_images = {group[0]['field']: group['fid'].astype(int).tolist()
    for group in refs.group_by('field').groups}

filename = '../input/ZTF.tess'
fields = np.loadtxt(filename,usecols=range(3))
refs_slice = np.array([0,0,0])
refs_all = np.array([0,0,0])
for field_id, ra, dec in fields:
    reference_filter_ids = reference_images.get(field_id, [])
    for reference_filter_id in reference_filter_ids:
        refs_all[reference_filter_id-1] = refs_all[reference_filter_id-1] + 1
        if (dec >= -30) and (dec <=80):
            refs_slice[reference_filter_id-1] = refs_slice[reference_filter_id-1] + 1

idx = np.where((fields[:,2] >= -30) & (fields[:,2] <=80))[0]
print(100*refs_slice/len(idx))
print(100*refs_all/len(fields))

