Source code for drizzlepac.haputils.which_skycell

#!/usr/bin/env python
"""Reports the name(s) of the projection cell(s)/skycell(s) that the observations in the user-specified input
file occupy.

USAGE:
    >>> python drizzlepac/haputils/which_skycell.py -[i]

    - The '-i' optional input allows users to specify the name of a file containing a list of calibrated fits
      files (ending with "_flt.fits" or "_flc.fits") to process. If not explicitly specified, all
      'flc/flt fits files in the current working directory will be processed.

Python USAGE:
    >>> python
    >>> from drizzlepac.haputils import which_skycell
    >>> which_skycell.report_skycells(img_list)
 """

import argparse
import glob
import os
import sys

from drizzlepac.haputils import cell_utils


# ------------------------------------------------------------------------------------------------------------


[docs] def report_skycells(img_list): """reports the names of the projection cell(s)/skycell(s) that the observations in the user-specified input list occupy. Parameters ---------- img_list : list list of the images to process Returns ------- Nothing! """ skycell_dict = cell_utils.get_sky_cells(img_list) print("\n") for skycell_name in skycell_dict.keys(): print("Skycell {} contains {} image(s)".format(skycell_name, len(skycell_dict[skycell_name].members))) for imgname in skycell_dict[skycell_name].members: print(" {}".format(imgname)) print("\n")
# ------------------------------------------------------------------------------------------------------------ if __name__ == '__main__': parser = argparse.ArgumentParser(description='identifies the projection cell(s) and skycell(s) that the ' 'user-specified observations occupy') parser.add_argument('-i', '--input_list', required=False, default="NONE", help='Name of a file containing a list of calibrated fits files (ending with ' '"_flt.fits" or "_flc.fits") to process. If not explicitly specified, all ' 'flc/flt fits files in the current working directory will be processed.') in_args = parser.parse_args() if in_args.input_list == "NONE": img_list = glob.glob("*_fl?.fits") if len(img_list) > 0: report_skycells(img_list) else: sys.exit("ERROR: No flc/flt fits files found in current path {}/".format(os.getcwd())) elif os.path.exists(in_args.input_list): with open(in_args.input_list) as fin: img_list = fin.read().splitlines() report_skycells(img_list) else: sys.exit("ERROR: Input file {} does not exist!".format(in_args.input_list))