99################################################################################################
1010
1111
12- def generate_pickingpdf (fn ,picking_root_dir ,frame_spacing = 25 ,surf_dir = 'CSARP_surf_ndh' ,crop_type = '100' ):
12+ def generate_pickingpdf (fn ,picking_root_dir ,frame_spacing = 25 ,surf_dir = 'CSARP_surf_ndh' ,crop_type = '100' , clims = [], alternative_data_opt = 0 ):
1313 """
1414 % (C) Nick Holschuh - Amherst College -- 2022 (Nick.Holschuh@gmail.com)
1515 %
@@ -115,60 +115,102 @@ def generate_pickingpdf(fn,picking_root_dir,frame_spacing=25,surf_dir='CSARP_sur
115115
116116 os .system ('rm -r ' + picking_root_dir + seg )
117117
118-
118+ ####################################################################################################################
119+ ####################################################################################################################
120+ ####################################################################################################################
121+ ####################################################################################################################
122+ ####################################################################################################################
119123 #######################################################################################################
120124 ####################### The alternative is a directory full of standard files
121125 str_opt , str_ind = ndh .str_compare ([fn ],'standard' )
122126 if len (str_opt ) > 0 :
127+
123128 file_list = sorted (glob .glob (fn + '/Data_*.mat' ))
129+
130+ if len (file_list ) > 0 :
131+ ki = [];
132+ for ind ,i in enumerate (file_list ):
133+ if i .split ('/' )[- 1 ][5 ] != 'i' :
134+ ki .append (ind )
135+ file_list = ndh .index_list (file_list ,ki )
136+ else :
137+ file_list = sorted (glob .glob (fn + '/*.mat' ))
124138
125- max_num = int (file_list [- 1 ].split ('/' )[- 1 ].split ('.' )[0 ].split ('_' )[- 1 ])
126- seg = file_list [- 1 ].split ('/' )[- 2 ]
127- froot = '_' .join (file_list [- 1 ].split ('/' )[- 1 ].split ('.' )[0 ].split ('_' )[0 :- 1 ])
139+
140+ try :
141+ max_num = int (file_list [- 1 ].split ('/' )[- 1 ].split ('.' )[0 ].split ('_' )[- 1 ])
142+ seg = file_list [- 1 ].split ('/' )[- 2 ]
143+ froot = '_' .join (file_list [- 1 ].split ('/' )[- 1 ].split ('.' )[0 ].split ('_' )[0 :- 1 ])
144+ except :
145+ max_num = len (file_list )
146+ seg = file_list [- 1 ].split ('/' )[- 2 ]
147+ froot = seg
128148 num_range = np .arange (1 ,max_num + 1 ,1 )
129149
150+
130151
131152 ################ Here we do some directory checking to make sure all folders we need exist
132153 if not os .path .isdir (picking_root_dir + 'To_Pick/' + seg ):
133154 os .makedirs (picking_root_dir + 'To_Pick/' + seg ) ### The pdf directory where pickfiles are stored
134155
135- if not os .path .isdir (picking_root_dir + seg ):
136- os .makedirs (picking_root_dir + seg ) ### The directory for the segment
137-
138156 fig = plt .figure (figsize = (15 ,7 ))
139157 ax = plt .gca ()
140158
141159 for ind1 ,file_num in enumerate (num_range ):
160+
142161 fn_frame = '%s/%s_%0.3d.mat' % (fn ,froot ,file_num )
162+ print (fn_frame )
163+ if os .path .isfile (fn_frame ) == 0 :
164+ fn_frame = file_list [ind1 ]
165+
143166 radar_data ,depth_data = ndh .radar_load (fn_frame ,plot_flag = 0 ,elevation1_or_depth2 = 0 )
144167
145- bot_inds = ndh .find_nearest (radar_data ['Time' ],radar_data ['Bottom' ])['index' ].astype (float )
146- surf_inds = ndh .find_nearest (radar_data ['Time' ],radar_data ['Surface' ])['index' ].astype (float )
147- bot_inds [bot_inds == 0 ] = np .NaN
148- surf_inds [surf_inds == 0 ] = np .NaN
149-
150-
151- if crop_type == '100' :
152- bot_ind = np .nanmax (bot_inds )+ 100
153- crop_string = 'maxbotplus100'
168+ if len (radar_data .keys ()) > 0 :
169+ bot_inds = ndh .find_nearest (radar_data ['Time' ],radar_data ['Bottom' ])['index' ].astype (float )
170+ surf_inds = ndh .find_nearest (radar_data ['Time' ],radar_data ['Surface' ])['index' ].astype (float )
171+ bot_inds [bot_inds == 0 ] = np .NaN
172+ surf_inds [surf_inds == 0 ] = np .NaN
173+
174+
175+ if crop_type == '100' :
176+ bot_ind = np .nanmax (bot_inds )+ 100
177+ crop_string = 'maxbotplus100'
178+ else :
179+ bot_ind = len (radar_data ['Time' ])
180+ crop_string = 'nocrop'
181+
182+ ndh .remove_image (ax ,1 ,verbose = 0 )
183+ ndh .remove_line (ax ,2 ,verbose = 0 )
184+
185+ if np .isnan (bot_ind ) == 1 :
186+ plt .plot (0 ,0 )
187+ else :
188+ ########### This accomodates files that have more than one data type
189+ if alternative_data_opt == 1 :
190+ find_data_opts = ndh .str_compare (radar_data .keys ,'Data2' )
191+ if len (find_data_opts [0 ]) > 0 :
192+ radar_data ['Data' ] = radar_data ['Data2' ]
193+
194+ if len (clims ) > 0 :
195+ imdata = plt .imshow (10 * np .log10 (radar_data ['Data' ][:int (bot_ind ),:]),
196+ origin = 'lower' ,aspect = 'auto' ,cmap = 'gray_r' ,vmin = clims [0 ],vmax = clims [1 ])
197+ else :
198+ imdata = plt .imshow (10 * np .log10 (radar_data ['Data' ][:int (bot_ind ),:]),
199+ origin = 'lower' ,aspect = 'auto' ,cmap = 'gray_r' )
200+
201+ plt .plot (np .arange (0 ,len (radar_data ['distance' ])),bot_inds ,ls = '--' ,c = 'green' ,alpha = 0.2 )
202+ plt .plot (np .arange (0 ,len (radar_data ['distance' ])),surf_inds ,ls = '--' ,c = 'green' ,alpha = 0.2 )
203+
154204 else :
155- bot_ind = len (radar_data ['Time' ])
156- crop_string = 'nocrop'
205+ plt .plot (0 ,0 )
157206
158- ndh .remove_image (ax ,1 ,verbose = 0 )
159- ndh .remove_line (ax ,2 ,verbose = 0 )
160-
161- imdata = plt .imshow (np .log10 (radar_data ['Data' ][:int (bot_ind ),:]),
162- origin = 'lower' ,aspect = 'auto' ,cmap = 'gray_r' )
163-
164- plt .plot (np .arange (0 ,len (radar_data ['distance' ])),bot_inds ,ls = '--' ,c = 'green' ,alpha = 0.2 )
165- plt .plot (np .arange (0 ,len (radar_data ['distance' ])),surf_inds ,ls = '--' ,c = 'green' ,alpha = 0.2 )
166207
167208 ax .invert_yaxis ()
168209
169210 plt .axis ('off' )
170- plt .savefig ('%s%s/Frame_%0.3d.png' % (picking_root_dir ,seg ,file_num ))
171-
211+ frame_fn = '%s/To_Pick/%s/Frame_%0.3d.png' % (picking_root_dir ,seg ,file_num )
212+ plt .savefig (frame_fn )
213+ print (' --- Completed Image ' + str (ind1 )+ ' of ' + str (len (num_range )))
172214
173215 print ('Completed the image generation' )
174216
@@ -180,9 +222,14 @@ def generate_pickingpdf(fn,picking_root_dir,frame_spacing=25,surf_dir='CSARP_sur
180222 pdfend = 'StandardPicks_%s_crop_%s.pdf' % (seg ,crop_string )
181223 pdfname = pdfroot + pdfend
182224
183- frames = '%s%s/*.png' % (picking_root_dir ,seg )
225+ frames = '%s/To_Pick/ %s/*.png' % (picking_root_dir ,seg )
184226
185227 os .system ("convert -adjoin " + frames + " -gravity center -scale '90<x770<' " + pdfname )
186228 ###########
187229
188- os .system ('rm -r ' + picking_root_dir + seg )
230+ if 0 :
231+ os .system ('rm -r ' + picking_root_dir + '/To_Pick/' + seg )
232+ os .system ('rmdir ' + picking_root_dir + '/To_Pick/' + seg )
233+ else :
234+ print ('rm -r ' + picking_root_dir + '/To_Pick/' + seg )
235+ print ('rmdir ' + picking_root_dir + '/To_Pick/' + seg )
0 commit comments