Skip to content

Commit aedaa4c

Browse files
committed
Added option for choosing different background types for running difference images.
1 parent be10dc3 commit aedaa4c

2 files changed

Lines changed: 59 additions & 10 deletions

File tree

functions.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2849,7 +2849,8 @@ def get_bkgd(path, ftpsc, start, bflag, ins, bg_dur, rolling=False):
28492849
else:
28502850
interv = np.arange(bg_dur)
28512851

2852-
datelist = [datetime.datetime.strftime(date + datetime.timedelta(days=int(i)), '%Y%m%d') for i in interv]
2852+
datelist = [datetime.datetime.strftime(date + datetime.timedelta(days=int(i)), '%Y%m%d') for i in interv]
2853+
28532854
red_path = path + 'reduced/data/' + ftpsc + '/'
28542855

28552856
red_paths = []
@@ -2860,7 +2861,14 @@ def get_bkgd(path, ftpsc, start, bflag, ins, bg_dur, rolling=False):
28602861
red_files.extend(sorted(glob.glob(red_path + str(dates) + '/' + bflag + '/' + ins + '/*.fts')))
28612862

28622863
if len(red_files) == 0:
2863-
return np.nan
2864+
extended_interv = np.arange(bg_dur+5)
2865+
datelist = [datetime.datetime.strftime(date + datetime.timedelta(days=int(i)), '%Y%m%d') for i in extended_interv]
2866+
for k, dates in enumerate(datelist):
2867+
red_paths.append(red_path + str(dates) + '/' + bflag + '/' + ins + '/*.fts')
2868+
red_files.extend(sorted(glob.glob(red_path + str(dates) + '/' + bflag + '/' + ins + '/*.fts')))
2869+
2870+
if len(red_files) == 0:
2871+
return np.nan
28642872

28652873
data = []
28662874

@@ -2977,6 +2985,7 @@ def running_difference(start, bkgd, path, datpath, ftpsc, ins, bflag, silent, sa
29772985
prev_date = datetime.datetime.strftime(prev_date, '%Y%m%d')
29782986

29792987
if np.isnan(bkgd).all():
2988+
print('No background image found for ' + ftpsc + ' ' + ins + ' on ' + start)
29802989
return
29812990

29822991
bkgd_arr = bkgd.copy()
@@ -3028,6 +3037,9 @@ def running_difference(start, bkgd, path, datpath, ftpsc, ins, bflag, silent, sa
30283037
for file in sorted(glob.glob(redpath + '*.fts')):
30293038
files.append(file)
30303039

3040+
if len(files) == 0:
3041+
print('No files found for ' + ftpsc + ' ' + ins + ' on ' + start)
3042+
return
30313043
# get times and headers from .fits files
30323044

30333045
hdul = [fits.open(files[i]) for i in range(len(files))]
@@ -5195,7 +5207,14 @@ def reduction(start,hdul,hdul_data,hdul_header,ftpsc,ins,bflag,calpath,pointpath
51955207
num_pixels = np.array([hdul_header[i]['NAXIS1'] * hdul_header[i]['NAXIS2'] for i in range(len(hdul_header))])
51965208
zero_percentage = num_zero / num_pixels
51975209

5198-
bad_ind = [i for i in range(len(zero_percentage)) if zero_percentage[i] > 0.25]
5210+
# for i in range(len(zero_percentage)):
5211+
# if zero_percentage[i] > 0.05:
5212+
# print('', hdul_header[i]['DATE-OBS'], ' has ', np.round(zero_percentage[i],2), ' % pixels with value 0.0')
5213+
# plt.imshow(hdul_data[i], cmap='gray')
5214+
# plt.title(hdul_header[i]['DATE-OBS'])
5215+
# plt.show()
5216+
5217+
bad_ind = [i for i in range(len(zero_percentage)) if np.round(zero_percentage[i],2) > 0.34]
51995218
bad_img += bad_ind
52005219

52015220
base = 34

hi_data_processing.py

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ def main():
2222

2323
if config['task'] == 'difference' or config['task'] == 'all' or config['task'] == 'all-nojplot':
2424
save_img = config['task_spec']['save_img']
25+
background_spec = config['task_spec']['background_spec']
2526

2627
list_len = len(config['spacecraft'])
2728

@@ -92,9 +93,18 @@ def main():
9293

9394
if config['task'] == 'difference':
9495
for ins in ins_list:
95-
bkgd = get_bkgd(config['output_directory'], config['spacecraft'][num], datelist[0], config['data_type'][num], ins, config['background_length'])
96-
for i in range(len(datelist)):
97-
running_difference(datelist[i], bkgd, config['output_directory'], config['solarsoft_directory'], config['spacecraft'][num], ins, config['data_type'][num], config['silent_mode'], save_img)
96+
if background_spec == 'per_daterange':
97+
bkgd = get_bkgd(config['output_directory'], config['spacecraft'][num], datelist[0], config['data_type'][num], ins, config['background_length'])
98+
for i in range(len(datelist)):
99+
running_difference(datelist[i], bkgd, config['output_directory'], config['solarsoft_directory'], config['spacecraft'][num], ins, config['data_type'][num], config['silent_mode'], save_img)
100+
101+
elif background_spec == 'per_day':
102+
for i in range(len(datelist)):
103+
bkgd = get_bkgd(config['output_directory'], config['spacecraft'][num], datelist[i], config['data_type'][num], ins, config['background_length'])
104+
running_difference(datelist[i], bkgd, config['output_directory'], config['solarsoft_directory'], config['spacecraft'][num], ins, config['data_type'][num], config['silent_mode'], save_img)
105+
else:
106+
print('Invalid background type specified. Please choose either "per_daterange" (for nicer looking J-maps) or "per_day" (for all other purposes). Exiting...')
107+
sys.exit()
98108

99109
print('\n')
100110

@@ -120,8 +130,18 @@ def main():
120130

121131
for i in range(len(datelist)):
122132
for ins in ins_list:
123-
bkgd = get_bkgd(config['output_directory'], config['spacecraft'][num], datelist[i], config['data_type'][num], ins, config['background_length'])
124-
running_difference(datelist[i], bkgd, config['output_directory'], config['solarsoft_directory'], config['spacecraft'][num], ins, config['data_type'][num], config['silent_mode'], save_img)
133+
if background_spec == 'per_daterange':
134+
bkgd = get_bkgd(config['output_directory'], config['spacecraft'][num], datelist[0], config['data_type'][num], ins, config['background_length'])
135+
for i in range(len(datelist)):
136+
running_difference(datelist[i], bkgd, config['output_directory'], config['solarsoft_directory'], config['spacecraft'][num], ins, config['data_type'][num], config['silent_mode'], save_img)
137+
138+
elif background_spec == 'per_day':
139+
for i in range(len(datelist)):
140+
bkgd = get_bkgd(config['output_directory'], config['spacecraft'][num], datelist[i], config['data_type'][num], ins, config['background_length'])
141+
running_difference(datelist[i], bkgd, config['output_directory'], config['solarsoft_directory'], config['spacecraft'][num], ins, config['data_type'][num], config['silent_mode'], save_img)
142+
else:
143+
print('Invalid background type specified. Please choose either "per_daterange" (for nicer looking J-maps) or "per_day" (for all other purposes). Exiting...')
144+
sys.exit()
125145

126146
make_jplot(datelist, config['output_directory'], config['spacecraft'][num], config['instrument'], config['data_type'][num], config['data_directory'], config['silent_mode'], jplot_type)
127147

@@ -134,8 +154,18 @@ def main():
134154

135155
for i in range(len(datelist)):
136156
for ins in ins_list:
137-
bkgd = get_bkgd(config['output_directory'], config['spacecraft'][num], datelist[i], config['data_type'][num], ins, config['background_length'])
138-
running_difference(datelist[i], bkgd, config['output_directory'], config['solarsoft_directory'], config['spacecraft'][num], ins, config['data_type'][num], config['silent_mode'], save_img)
157+
if background_spec == 'per_daterange':
158+
bkgd = get_bkgd(config['output_directory'], config['spacecraft'][num], datelist[0], config['data_type'][num], ins, config['background_length'])
159+
for i in range(len(datelist)):
160+
running_difference(datelist[i], bkgd, config['output_directory'], config['solarsoft_directory'], config['spacecraft'][num], ins, config['data_type'][num], config['silent_mode'], save_img)
161+
162+
elif background_spec == 'per_day':
163+
for i in range(len(datelist)):
164+
bkgd = get_bkgd(config['output_directory'], config['spacecraft'][num], datelist[i], config['data_type'][num], ins, config['background_length'])
165+
running_difference(datelist[i], bkgd, config['output_directory'], config['solarsoft_directory'], config['spacecraft'][num], ins, config['data_type'][num], config['silent_mode'], save_img)
166+
else:
167+
print('Invalid background type specified. Please choose either "per_daterange" (for nicer looking J-maps) or "per_day" (for all other purposes). Exiting...')
168+
sys.exit()
139169

140170
if config['task'] == 'reduced_pngs':
141171

0 commit comments

Comments
 (0)