#!/usr/bin/env python
"""Table of ALMA-observed RMS HII regions: name, class, ALMA program ID(s),
band coverage, distance."""
import numpy as np
from astropy.table import Table
LOG=open('observed_targets.txt','w')
def p(*a):
    s=' '.join(str(x) for x in a);print(s);print(s,file=LOG)

c=Table.read('alma_census.csv',format='csv')
rc=Table.read('radio_characterized.fits')
hcl={str(rc['Name'][i]):str(rc['hii_class'][i]) for i in range(len(rc))}

nobs=np.array(c['n_obs'],float)
obs=nobs>0
co=c[obs]
rows=[]
for r in co:
    nm=str(r['Name'])
    cls=hcl.get(nm,'none')                       # HC HII/UC HII/compact/classical/none
    if cls in ('none','--'): cls=str(r['radio_class'])
    bands='B'+',B'.join(sorted(set(str(r['bands']).split('|')))) if str(r['bands']) not in('','nan') else '-'
    progs=str(r['proj_ids']).replace('|','; ')
    dist=float(r['Dist'])
    rows.append((nm,cls,progs,bands,dist))

order={'HC HII':0,'UC HII':1,'UCHII':1,'compact':2,'classical':3,'none':4}
rows.sort(key=lambda x:(order.get(x[1],5),x[4]))

T=Table(rows=rows,names=['Name','class','ALMA_programs','bands','Dist_kpc'])
T.write('observed_targets.csv',overwrite=True)
p(f'# {len(rows)} ALMA-observed RMS HII regions')
p(f'{"Name":22s} {"class":9s} {"bands":14s} {"d/kpc":6s}  ALMA program ID(s)')
p('-'*120)
for nm,cls,progs,bands,dist in rows:
    p(f'{nm:22s} {cls:9s} {bands:14s} {dist:6.1f}  {progs}')
LOG.close()
