#!/usr/bin/env python """Run viz_meerkat_alma on the first N distinct SMGPS-covered ALMA targets.""" import os, re, glob, subprocess, sys N = int(sys.argv[1]) if len(sys.argv) > 1 else 10 DL = 'continuum_downloads' OUT = 'meerkat_alma_figs' os.makedirs(OUT, exist_ok=True) bad = ('_ph.', '_bp.', '_polleak', '.cube', '.contsub', '.mfs.p.', '.mfs.a.') files = glob.glob(os.path.join(DL, '*sci*pbcor.fits')) groups = {} for f in files: nm = os.path.basename(f).lower() if any(b in nm for b in bad): continue m = re.search(r'g(0?\d{2,3}\.\d+)', nm) if not m: continue l = float(m.group(1)) if not ((2 <= l <= 60) or (251 <= l <= 359)): # SMGPS coverage continue key = round(l, 2) score = ('.cont.' in nm) * 10 + nm.count('_') # prefer aggregate continuum if key not in groups or score > groups[key][0]: groups[key] = (score, f) keys = sorted(groups)[:N] print(f"{len(groups)} distinct SMGPS targets; running first {len(keys)}: {keys}") ok = [] for k in keys: f = groups[k][1] out = os.path.join(OUT, f"G{k:.2f}.png") print("===", k, os.path.basename(f)) r = subprocess.run(['python', 'viz_meerkat_alma.py', f, out, '--field-arcmin', '3']) if r.returncode == 0 and os.path.exists(out): ok.append(out) print(f"DONE {len(ok)}/{len(keys)} figures in {OUT}/") for o in ok: print(" ", o)