Source code for kmos_tools.io

# -*- coding: utf-8 -*-
"""I/O functions for KMOS data


"""

__author__ = ["Charlotte Mason (UCLA)"]

import glob


[docs]def insensitive_glob(pattern): """Case insensitive find file names Args: pattern (str): pattern to search for Returns: file_list (list): sorted list of filenames which match pattern """ def either(c): return '[%s%s]' % (c.lower(), c.upper()) if c.isalpha() else c file_list = sorted(glob.glob(''.join(map(either, pattern)))) return file_list
[docs]def find_exposures(dir='*', prefix='*'): """Find all the SCI_RECONSTRUCTED fits files in a directory Args: dir (str): Directory to look for exposures in prefix (str): prefix for filenames """ dir_prefix = '%s/%s' % (dir, prefix) sci_exposures = set(glob.glob('%s*SCI_RECONSTRUCTED*.fits' % dir_prefix)) \ - set(glob.glob('%s*star*.fits' % dir_prefix)) \ - set(glob.glob('%s*SKYFIX*.fits' % dir_prefix)) \ - set(glob.glob('%s*SKYSPEC*.fits' % dir_prefix)) \ - set(glob.glob('%s*MASK*.fits' % dir_prefix)) \ - set(glob.glob('%s*COMBINE*.fits' % dir_prefix)) \ - set(glob.glob('%s*COLL*.fits' % dir_prefix)) \ - set(glob.glob('%s*BADCALIB*.fits' % dir_prefix)) \ - set(glob.glob('%s*FLUXFIX*.fits' % dir_prefix)) print(len(sci_exposures), 'science exposures found') return sci_exposures