-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstack.py
More file actions
executable file
·52 lines (50 loc) · 1.5 KB
/
Copy pathstack.py
File metadata and controls
executable file
·52 lines (50 loc) · 1.5 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
#!/usr/bin/python
'''
Program:
This is a program for stacking images in list.
Usage:
stack.py [image list]
Editor:
Jacob975
20170216
#################################
update log
20180716 version alpha 1
1. The code work
'''
import os
from astropy.io import fits as pyfits
from sys import argv
import numpy as np
import time
def stack_mdn_method(fits_list):
data_list = []
for name in fits_list:
data = pyfits.getdata(name)
data_list.append(data)
data_list = np.array(data_list)
sum_fits = np.median(data_list, axis = 0)
return sum_fits
#--------------------------------------------
# main code
if __name__ == "__main__":
# Measure time
start_time = time.time()
#----------------------------------------
# Load arguments
if len(argv) != 2:
print "Wrong numbers of arguments"
print "Usage: stack.py [image list]"
exit()
name_list = argv[1]
image_name_list = np.loadtxt(name_list, dtype = str)
#----------------------------------------
# Stack images
sum_fits = stack_mdn_method(image_name_list)
header = pyfits.getheader(image_name_list[len(image_name_list)/2])
#pyfits.writeto("stacked_image.fits", sum_fits, header, overwrite = True)
pyfits.writeto("{0}.fits".format(name_list[:-4]), sum_fits, header, overwrite = True)
#----------------------------------------
# Measure time
elapsed_time = time.time() - start_time
print "Exiting Main Program, spending ", elapsed_time, "seconds."