Source code for copy_cutouts_askap

from __future__ import annotations

import argparse
import os

import copy_data
import spica
from arrakis.logger import logger, logging
from arrakis.utils.io import try_mkdir

logger.setLevel(logging.INFO)

# racs_area = os.path.abspath('/askapbuffer/processing/len067/arrakis')
# spice_area = os.path.abspath('/group/askap/athomson/projects/arrakis/spica')
[docs] spice_area = os.path.abspath("/askapbuffer/processing/len067/arrakis")
# spice_area = os.path.abspath('/scratch/ja3/athomson/spica')
[docs] group_area = os.path.abspath("/group/ja3/athomson/spica")
[docs] def main(field, dry_run=False, ncores=10): spica_tab = spica.main() spica_tab.add_index("Field name") row = spica_tab.loc["Field name", f"{field}"] cut_dir = os.path.join( spice_area, f"{row['SBID']}", f"RACS_test4_1.05_{field}", "cutouts" ) test_cut = os.path.isdir(cut_dir) if not test_cut: raise FileNotFoundError(cut_dir) else: logger.info(f"Copying '{cut_dir}'") field_dir = os.path.join( group_area, f"{row['CAL SBID']}", f"RACS_test4_1.05_{field}" ) try_mkdir(field_dir) test_field = os.path.isdir(field_dir) if not test_field: raise FileNotFoundError(test_field) store_dir = os.path.join(field_dir, "cutouts") try_mkdir(store_dir) test_store = os.path.isdir(store_dir) if not test_store: raise FileNotFoundError(store_dir) else: logger.info(f"Storing in '{store_dir}'") if not dry_run: copy_data.prsync(f"{cut_dir}/*", store_dir, ncores=ncores)
[docs] def cli(): descStr = """ Copy data from RACS area to SPICE area' """ parser = argparse.ArgumentParser( description=descStr, formatter_class=argparse.ArgumentDefaultsHelpFormatter ) parser.add_argument( "field", metavar="field", type=str, help="RACS field to find e.g. 2132-50A" ) parser.add_argument( "--dry_run", action="store_true", help="Don't launch rsync", ) parser.add_argument( "--ncores", type=int, default=1, help="Ncores for parallel rsync", ) args = parser.parse_args() main( field=args.field, dry_run=args.dry_run, ncores=args.ncores, )
if __name__ == "__main__": cli()