48 lines
1.6 KiB
Python
Executable File
48 lines
1.6 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
def main(infiles=None):
|
|
"""
|
|
Retrieve native spatial resolution from given observation.
|
|
"""
|
|
from os.path import join as path_join
|
|
from warnings import catch_warnings, filterwarnings
|
|
from astropy.io.fits import getheader
|
|
from astropy.wcs import WCS, FITSFixedWarning
|
|
from numpy.linalg import eig
|
|
|
|
if infiles is None:
|
|
print("Usage: \"python get_cdelt.py -f infiles\"")
|
|
return 1
|
|
prod = [["/".join(filepath.split('/')[:-1]), filepath.split('/')[-1]] for filepath in infiles]
|
|
data_folder = prod[0][0]
|
|
infiles = [p[1] for p in prod]
|
|
|
|
cdelt = {}
|
|
size = {}
|
|
for currfile in infiles:
|
|
with catch_warnings():
|
|
filterwarnings('ignore', message="'datfix' made the change", category=FITSFixedWarning)
|
|
wcs = WCS(getheader(path_join(data_folder, currfile))).celestial
|
|
key = currfile[:-5]
|
|
size[key] = wcs.array_shape
|
|
if wcs.wcs.has_cd():
|
|
cdelt[key] = eig(wcs.wcs.cd)[0]*3600.
|
|
else:
|
|
cdelt[key] = wcs.wcs.cdelt*3600.
|
|
|
|
print("Image name, native resolution in arcsec and shape")
|
|
for currfile in infiles:
|
|
key = currfile[:-5]
|
|
print(key, cdelt[key], size[key])
|
|
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser(description='Query MAST for target products')
|
|
parser.add_argument('-f', '--files', metavar='path', required=False, nargs='*', help='the full or relative path to the data products', default=None)
|
|
args = parser.parse_args()
|
|
exitcode = main(infiles=args.files)
|