-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathpodi_exporttable.py
More file actions
executable file
·84 lines (65 loc) · 2.29 KB
/
podi_exporttable.py
File metadata and controls
executable file
·84 lines (65 loc) · 2.29 KB
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
77
78
79
80
81
82
83
84
#! /usr/bin/env python3
#
# Copyright 2012-2013 Ralf Kotulla
# kotulla@uwm.edu
#
# 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.
#
"""
Extract a single extension from the input FITS file.
Usage:
---------
``podi_extractextension input.fits EXT.NAME output.fits``
"""
import sys
import os
import astropy.io.fits as pyfits
import numpy
from podi_definitions import *
if __name__ == "__main__":
inputfile = get_clean_cmdline()[1]
tablename = get_clean_cmdline()[2]
outputfile = get_clean_cmdline()[3]
if (not os.path.isfile(inputfile)):
print("Unable to open file %s" % (inputfile))
sys.exit(0)
try:
hdulist = pyfits.open(inputfile)
except:
pass
sys.exit(0)
try:
table = hdulist[tablename]
except:
print("File %s does not contain table %s" % (inputfile, tablename))
pass
sys.exit(0)
with open(outputfile, "w") as of:
# print header
stdout_write("(%s) writing header ..." % (inputfile))
for i in range(len(table.columns)):
col = table.columns[i]
print("# Column %02d: %-20s %-50s [%-10s]" % (i+1, col.name, col.disp, col.unit), file=of)
n_rows = table.data.field(0).shape[0]
n_fields = len(table.columns)
for row in range(n_rows):
for field in range(n_fields):
print(table.data.field(field)[row],file=of)
print("", file=of)
stdout_write("\r(%s) Writing row %d of %d ..." % (inputfile, row+1, n_rows))
stdout_write("done!\n")