|
24 | 24 |
|
25 | 25 | make_eddy_track_ROMS.py |
26 | 26 |
|
27 | | -Version 1.3.0 |
| 27 | +Version 1.4.0 |
28 | 28 |
|
29 | 29 |
|
30 | 30 |
|
|
90 | 90 | filetype = 'avg' |
91 | 91 | sigma_lev = -1 # -1 for surface |
92 | 92 |
|
93 | | - days_btwn_recs = 3. |
| 93 | + days_btwn_recs = 3. # days |
| 94 | + # Save only tracks longer than... |
| 95 | + track_duration_min = 28 # days |
94 | 96 |
|
95 | 97 | # Set grid |
96 | 98 | grdname = 'roms_grd_NA2009_7pt5km.nc' |
|
132 | 134 | qparameter = np.linspace(0, 5*10**-11, 25) |
133 | 135 |
|
134 | 136 | elif 'sla' in diag_type: # Units, cm; for anticyclones use -50 to 50 |
135 | | - slaparameter = np.arange(-100., 101., 1.0) |
| 137 | + slaparameter = np.arange(-100., 101., .25) |
136 | 138 |
|
137 | 139 |
|
138 | 140 | # Apply a filter to the Q parameter |
|
149 | 151 | else: |
150 | 152 | error |
151 | 153 |
|
152 | | - # Save only tracks longer than... |
153 | | - track_duration_min = 5 # days |
154 | 154 |
|
155 | 155 |
|
156 | 156 |
|
|
161 | 161 | lonmax = -5.5 |
162 | 162 | latmin = 20.5 |
163 | 163 | latmax = 38.5 |
| 164 | + |
| 165 | + #lonmin = -25. # Canary |
| 166 | + #lonmax = -15 |
| 167 | + #latmin = 22. |
| 168 | + #latmax = 28. |
164 | 169 |
|
165 | 170 | # for canbas4 |
166 | 171 | #lonmin = -36. |
|
186 | 191 |
|
187 | 192 | # Parameters used by CSS11 and KCCMC11 (Sec. 3.2) to ensure the slow evolution |
188 | 193 | # of the eddies over time; they use min and max values of 0.25 and 2.5 |
189 | | - evolve_ammin = 0.05 #0.25 #0.15 # min change in amplitude |
190 | | - evolve_ammax = 5 #2.5 #5. # max change in amplitude |
191 | | - evolve_armin = 0.05 #0.25 #0.15 # min change in area |
192 | | - evolve_armax = 5 #2.5 #5. # max change in area |
| 194 | + evolve_ammin = 0.0005 #0.25 #0.15 # min change in amplitude |
| 195 | + evolve_ammax = 500 #2.5 #5. # max change in amplitude |
| 196 | + evolve_armin = 0.0005 #0.25 #0.15 # min change in area |
| 197 | + evolve_armax = 500 #2.5 #5. # max change in area |
193 | 198 |
|
194 | 199 |
|
195 | 200 | separation_method = 'ellipse' # see CSS11 |
|
238 | 243 | #shape_err = 35. * np.ones(qparameter.size) |
239 | 244 |
|
240 | 245 | elif 'sla' in diag_type: |
| 246 | + #shape_err = 55. * np.ones(slaparameter.size) |
241 | 247 | shape_err = 55. * np.ones(slaparameter.size) |
242 | 248 | #shape_err = np.power(np.linspace(85., 40, slaparameter.size), 2) / 100. |
243 | 249 | #shape_err[shape_err < 50.] = 50. |
|
387 | 393 | A_eddy.dist0 = np.float(dist0) |
388 | 394 | C_eddy.dist0 = np.float(dist0) |
389 | 395 |
|
390 | | - start = 0 |
| 396 | + start = True |
391 | 397 | start_time = time.time() |
392 | 398 |
|
393 | 399 | # Loop thru the years... |
|
402 | 408 | filename = directory + model + '_' + filetype + \ |
403 | 409 | '_Y' + str(Yr) + 'M' + str(Mo) + '.nc' |
404 | 410 | print 'Opening file:', filename |
405 | | - if start == 0: |
406 | | - start = 1 |
| 411 | + if start: |
| 412 | + start = False |
407 | 413 | record_range = get_ROMS_data(filename) |
408 | | - A_eddy.days_btwn_recs = np.squeeze(np.diff(record_range[0:2]) / 86400.) |
409 | | - C_eddy.days_btwn_recs = np.squeeze(np.diff(record_range[0:2]) / 86400.) |
| 414 | + |
| 415 | + check_days_btwn_recs = np.squeeze(np.diff(record_range[0:2]) / 86400.) |
| 416 | + assert days_btwn_recs == check_days_btwn_recs, '"days_btwn_recs" is incorrectly set' |
| 417 | + A_eddy.days_btwn_recs = check_days_btwn_recs |
| 418 | + C_eddy.days_btwn_recs = check_days_btwn_recs |
410 | 419 |
|
411 | 420 | if 'ip_roms' in model: |
412 | 421 | nc = netcdf.Dataset(filename) |
|
595 | 604 | verbose=verbose) |
596 | 605 |
|
597 | 606 | elif 'sla' in diag_type: |
598 | | - #print 'rtime 1', rtime |
599 | 607 | A_eddy.sign_type = 'Anticyclonic' |
600 | 608 | A_eddy = collection_loop(A_CS, grd, rtime, |
601 | 609 | A_list_obj=A_eddy, C_list_obj=None, |
602 | 610 | sign_type=A_eddy.sign_type, verbose=verbose) |
603 | | - # Note that CSc is reverse order |
| 611 | + # Note that CSc is in reverse order |
604 | 612 | C_eddy.sign_type = 'Cyclonic' |
605 | 613 | C_eddy = collection_loop(C_CS, grd, rtime, |
606 | 614 | A_list_obj=None, C_list_obj=C_eddy, |
|
640 | 648 | plt.close(250) |
641 | 649 |
|
642 | 650 | if start: |
643 | | - first_record = True |
644 | 651 | # Set old variables equal to new variables |
645 | 652 | A_eddy.set_old_variables() |
646 | 653 | C_eddy.set_old_variables() |
647 | | - start = False |
| 654 | + first_record = True |
| 655 | + #start = False |
648 | 656 | else: |
649 | 657 | first_record = False |
650 | 658 |
|
|
0 commit comments