|
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