annotate preprocess_dexela_h5_galaxy.py @ 0:4d2a2268a17a draft

"planemo upload"
author mzhuang
date Thu, 23 Sep 2021 21:00:48 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
1 import argparse
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
2 import glob
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
3 import os
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
4
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
5 import numpy as np
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
6
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
7 import time
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
8 from datetime import datetime
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
9
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
10 from hexrd.imageseries import omega
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
11 import pp_dexela
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
12 #from IPython import embed
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
13
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
14 # =============================================================================
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
15 # USER INPUT
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
16 # =============================================================================
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
17
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
18 # panel keys to MATCH INSTRUMENT FILE
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
19 panel_keys = ['FF1', 'FF2']
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
20 panel_opts = dict.fromkeys(panel_keys)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
21
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
22 # !!!: hard coded options for each dexela for April 2017
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
23 panel_opts['FF1'] = [('add-row', 1944), ('add-column', 1296),('flip', 'v'), ]
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
24 panel_opts['FF2'] = [('add-row', 1944), ('add-column', 1296),('flip', 'h'), ]
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
25
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
26 # ==================== End Inputs (should not need to alter below this line)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
27
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
28
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
29
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
30 def process_dexelas(file_names, samp_name, scan_number,
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
31 ostart, ostep, num_frames,
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
32 panel_opts, threshold):
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
33 """
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
34 wrapper for F2 dexela setup
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
35 """
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
36 ostop = ostart + num_frames*ostep
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
37 omw = omega.OmegaWedges(num_frames)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
38 omw.addwedge(ostart, ostop, num_frames)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
39
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
40 for file_name in file_names:
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
41 for key in panel_keys:
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
42 if key.lower() in file_name:
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
43 ppd = pp_dexela.PP_Dexela(
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
44 file_name,
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
45 omw,
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
46 panel_opts[key],
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
47 panel_id=key,
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
48 frame_start=fstart)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
49 # embed()
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
50 # ppd=add_missing_pixel_gap(ppd)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
51
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
52 #output_name = samp_name + '_' + \
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
53 # str(scan_number) + '_' + \
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
54 output_name = file_name.split('/')[-4] + '_' + \
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
55 file_name.split('/')[-3]+ '_' + \
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
56 file_name.split('/')[-1].split('.')[0]
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
57 ppd.save_processed(output_name, threshold)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
58 head_tail = os.path.split(file_name)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
59 if head_tail[0] is not None:
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
60 os.system('cp -p ' + './' + output_name + '* ' + head_tail[0] + ' 2>/dev/null')
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
61 if __name__ == '__main__':
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
62 #
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
63 # Run preprocessor
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
64 #
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
65
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
66 parser = argparse.ArgumentParser(
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
67 description="pre-process double Dexela images from F2")
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
68
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
69 parser.add_argument('file_name',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
70 help="raw data path on chess daq", type=str)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
71
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
72 #parser.add_argument('base_dir',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
73 # help="raw data path on chess daq", type=str)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
74 #parser.add_argument('expt_name',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
75 # help="experiment name", type=str)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
76 #parser.add_argument('samp_name',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
77 # help="sample name", type=str)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
78 #parser.add_argument('scan_number',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
79 # help="ff scan number", type=int)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
80
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
81 parser.add_argument('-n', '--num-frames',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
82 help="number of frames to read",
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
83 type=int, default=1441)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
84 parser.add_argument('-s', '--start-frame',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
85 help="index of first data frame",
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
86 type=int, default=4)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
87 parser.add_argument('-t', '--threshold',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
88 help="threshold for frame caches",
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
89 type=int, default=50)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
90 parser.add_argument('-o', '--ome-start',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
91 help="start omega",
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
92 type=float, default=0.)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
93 # parser.add_argument('-d', '--ome-delta',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
94 # help="delta omega",
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
95 # type=float, default=0.2498265093684941)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
96
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
97 parser.add_argument('-e', '--ome-end',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
98 help="end omega",
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
99 type=float, default=360.)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
100
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
101
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
102 args = parser.parse_args()
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
103
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
104 print(args.file_name)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
105 # strip args
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
106 file_name = args.file_name
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
107 #data_dir = args.base_dir
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
108 #expt_name = args.expt_name
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
109 #samp_name = args.samp_name
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
110 #scan_number = args.scan_number
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
111 samp_name = file_name.split('/')[-4]
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
112 scan_number = file_name.split('/')[-3]
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
113 num_frames = args.num_frames
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
114 fstart = args.start_frame
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
115 threshold = args.threshold
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
116 ostart = args.ome_start
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
117 oend = args.ome_end
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
118 ostep = (oend-ostart)/float(num_frames)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
119
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
120 print("== Running preprocessor .... processing " + file_name + " ==")
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
121 now = datetime.now()
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
122 print(now.strftime("%m/%d/%Y %H:%M:%S"))
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
123
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
124 #file_names = glob.glob(
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
125 # os.path.join(
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
126 # data_dir,
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
127 # expt_name,
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
128 # samp_name,
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
129 # str(scan_number),
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
130 # 'ff',
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
131 # '*.h5')
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
132 #)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
133 file_names = [file_name]
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
134 #path = os.path.join(data_dir, expt_name, samp_name, str(scan_number), 'ff', '*.h5')
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
135 #print("Preprocessor: after getting file_names ...." + path)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
136 for f in file_names:
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
137 print(f)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
138
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
139 check_files_exist = [os.path.exists(file_name) for file_name in file_names]
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
140 if not np.all(check_files_exist):
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
141 raise RuntimeError("files don't exist!")
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
142
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
143 process_dexelas(file_names, samp_name, scan_number,
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
144 ostart, ostep, num_frames,
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
145 panel_opts, threshold)
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
146 now = datetime.now()
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
147 print(now.strftime("%m/%d/%Y %H:%M:%S"))
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
148 print("== End of processing " + file_name + " ==")
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
149 print(" ")
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
150 print(" ")
4d2a2268a17a "planemo upload"
mzhuang
parents:
diff changeset
151