9
9
################################################################################################
10
10
11
11
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 ):
13
13
"""
14
14
% (C) Nick Holschuh - Amherst College -- 2022 ([email protected] )
15
15
%
@@ -115,60 +115,102 @@ def generate_pickingpdf(fn,picking_root_dir,frame_spacing=25,surf_dir='CSARP_sur
115
115
116
116
os .system ('rm -r ' + picking_root_dir + seg )
117
117
118
-
118
+ ####################################################################################################################
119
+ ####################################################################################################################
120
+ ####################################################################################################################
121
+ ####################################################################################################################
122
+ ####################################################################################################################
119
123
#######################################################################################################
120
124
####################### The alternative is a directory full of standard files
121
125
str_opt , str_ind = ndh .str_compare ([fn ],'standard' )
122
126
if len (str_opt ) > 0 :
127
+
123
128
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' ))
124
138
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
128
148
num_range = np .arange (1 ,max_num + 1 ,1 )
129
149
150
+
130
151
131
152
################ Here we do some directory checking to make sure all folders we need exist
132
153
if not os .path .isdir (picking_root_dir + 'To_Pick/' + seg ):
133
154
os .makedirs (picking_root_dir + 'To_Pick/' + seg ) ### The pdf directory where pickfiles are stored
134
155
135
- if not os .path .isdir (picking_root_dir + seg ):
136
- os .makedirs (picking_root_dir + seg ) ### The directory for the segment
137
-
138
156
fig = plt .figure (figsize = (15 ,7 ))
139
157
ax = plt .gca ()
140
158
141
159
for ind1 ,file_num in enumerate (num_range ):
160
+
142
161
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
+
143
166
radar_data ,depth_data = ndh .radar_load (fn_frame ,plot_flag = 0 ,elevation1_or_depth2 = 0 )
144
167
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
+
154
204
else :
155
- bot_ind = len (radar_data ['Time' ])
156
- crop_string = 'nocrop'
205
+ plt .plot (0 ,0 )
157
206
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 )
166
207
167
208
ax .invert_yaxis ()
168
209
169
210
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 )))
172
214
173
215
print ('Completed the image generation' )
174
216
@@ -180,9 +222,14 @@ def generate_pickingpdf(fn,picking_root_dir,frame_spacing=25,surf_dir='CSARP_sur
180
222
pdfend = 'StandardPicks_%s_crop_%s.pdf' % (seg ,crop_string )
181
223
pdfname = pdfroot + pdfend
182
224
183
- frames = '%s%s/*.png' % (picking_root_dir ,seg )
225
+ frames = '%s/To_Pick/ %s/*.png' % (picking_root_dir ,seg )
184
226
185
227
os .system ("convert -adjoin " + frames + " -gravity center -scale '90<x770<' " + pdfname )
186
228
###########
187
229
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