-
Notifications
You must be signed in to change notification settings - Fork 3
/
podi_deleteextension.py
executable file
·76 lines (56 loc) · 1.94 KB
/
podi_deleteextension.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#! /usr/bin/env python3
#
# Copyright 2012-2013 Ralf Kotulla
#
# This file is part of the ODI QuickReduce pipeline package.
#
# If you find this program or parts thereof please make sure to
# cite it appropriately (please contact the author for the most
# up-to-date reference to use). Also if you find any problems
# or have suggestiosn on how to improve the code or its
# functionality please let me know. Comments and questions are
# always welcome.
#
# The code is made publicly available. Feel free to share the link
# with whoever might be interested. However, I do ask you to not
# publish additional copies on your own website or other sources.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
"""
Small tool to delete one or more extensions from a FITS file.
Usage:
-----------------
``podi_deleteextension.py input.fits output.fits extension1 extension2 ...``
"""
import sys
import os
import astropy.io.fits as pyfits
import numpy
from podi_definitions import *
if __name__ == "__main__":
inputfile = sys.argv[1]
outputfile = sys.argv[2]
hdulist = pyfits.open(inputfile)
outlist = [pyfits.PrimaryHDU()]
for i in range(1, len(hdulist)):
try:
extname = hdulist[i].header['EXTNAME']
delete_this_one = False
for ext_to_delete in sys.argv[3:]:
if (extname == ext_to_delete):
delete_this_one = True
break
if (delete_this_one):
print("Deleting extension %s ..." % (extname))
continue
except:
pass
print("Keeping extension %s ..." % (extname))
outlist.append(hdulist[i])
print("writing")
hdu_out = pyfits.HDUList(outlist)
hdu_out.writeto(outputfile, overwrite=True)