Skip to content

Commit b282e54

Browse files
committed
Fixed global mask for DT10
H: Enter commit message. Lines beginning with 'HG:' are
1 parent 29fe893 commit b282e54

File tree

4 files changed

+51
-15
lines changed

4 files changed

+51
-15
lines changed

make_eddy_track_AVISO.py

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -490,14 +490,15 @@ class AvisoGrid (PyEddyTracker):
490490
Class to satisfy the need of the eddy tracker
491491
to have a grid class
492492
"""
493-
def __init__(self, AVISO_FILE, THE_DOMAIN, LONMIN, LONMAX, LATMIN, LATMAX,
494-
with_pad=True):
493+
def __init__(self, AVISO_FILE, THE_DOMAIN, PRODUCT,
494+
LONMIN, LONMAX, LATMIN, LATMAX, with_pad=True):
495495
"""
496496
Initialise the grid object
497497
"""
498498
super(AvisoGrid, self).__init__()
499499
print '\nInitialising the AVISO_grid'
500500
self.THE_DOMAIN = THE_DOMAIN
501+
self.PRODUCT = PRODUCT
501502
self.LONMIN = LONMIN
502503
self.LONMAX = LONMAX
503504
self.LATMIN = LATMIN
@@ -595,14 +596,44 @@ def set_mask(self, sla):
595596
# Close Drake Passage
596597
minus70 = np.argmin(np.abs(self.lonpad()[0] + 70))
597598
self.mask[:125, minus70] = 0
599+
600+
# DT10 mask is open around Panama, so close it...
601+
if 'AVISO_DT10' in self.PRODUCT:
602+
603+
mask = 0
604+
self.mask[348, 92:110] = mask
605+
self.mask[348:356, 92] = mask
606+
self.mask[355, 71:92] = mask
607+
self.mask[355:363, 71] = mask
608+
self.mask[362, 66:71] = mask
609+
self.mask[362:380, 66] = mask
610+
self.mask[380, 47:67] = mask
611+
self.mask[380:389, 47] = mask
612+
self.mask[388, 13:47] = mask
613+
self.mask[388:393, 13] = mask
614+
self.mask[392, :13] = mask
615+
ind = 4 * 360
616+
self.mask[348, 92 + ind:110 + ind] = mask
617+
self.mask[348:356, 92 + ind] = mask
618+
self.mask[355, 71 + ind:92 + ind] = mask
619+
self.mask[355:363, 71 + ind] = mask
620+
self.mask[362, 66 + ind:71 + ind] = mask
621+
self.mask[362:380, 66 + ind] = mask
622+
self.mask[380, 47 + ind:67 + ind] = mask
623+
self.mask[380:389, 47 + ind] = mask
624+
self.mask[388, 13 + ind:47 + ind] = mask
625+
self.mask[388:393, 13 + ind] = mask
626+
self.mask[392, ind:13 + ind] = mask
627+
598628
# Mask all unwanted regions (Caspian Sea, etc)
599629
labels = ndimage.label(self.mask)[0]
600-
plus200 = np.argmin(np.abs(self.lonpad()[0] - 200))
601-
plus10 = np.argmin(np.abs(self.latpad()[:, 0] - 10))
630+
631+
self.labels = labels
602632
# Set to known sea point
603-
good_lab = labels[plus10, plus200]
604-
self.mask[labels != good_lab] = 0
605-
633+
plus200 = np.argmin(np.abs(self.lonpad()[0] - 200))
634+
plus9 = np.argmin(np.abs(self.latpad()[:, 0] - 9))
635+
sea_label = labels[plus9, plus200]
636+
np.place(self.mask, labels != sea_label, 0)
606637
return self
607638

608639

@@ -815,13 +846,17 @@ def set_interp_coeffs(self, sla, uspd):
815846
AVISO_DT14 = config['AVISO']['AVISO_DT14']
816847
AVISO_FILES = config['AVISO']['AVISO_FILES']
817848
if AVISO_DT14:
849+
PRODUCT = 'AVISO_DT14'
818850
AVISO_DT14_SUBSAMP = config['AVISO']['AVISO_DT14_SUBSAMP']
819851
if AVISO_DT14_SUBSAMP:
820852
DAYS_BTWN_RECORDS = config['AVISO']['DAYS_BTWN_RECORDS']
821853
else:
822854
DAYS_BTWN_RECORDS = 1.
823855
else:
856+
PRODUCT = 'AVISO_DT10'
824857
DAYS_BTWN_RECORDS = 7. # old seven day AVISO
858+
859+
AVISO_FILES = config['AVISO']['AVISO_FILES']
825860

826861
#TRACK_DURATION_MIN = config['TRACK_DURATION_MIN']
827862

@@ -904,7 +939,7 @@ def set_interp_coeffs(self, sla, uspd):
904939
AVISO_FILES = AVISO_FILES[5:-5:np.int(DAYS_BTWN_RECORDS)]
905940

906941
# Set up a grid object using first AVISO file in the list
907-
sla_grd = AvisoGrid(AVISO_FILES[0], config['THE_DOMAIN'],
942+
sla_grd = AvisoGrid(AVISO_FILES[0], config['THE_DOMAIN'], PRODUCT,
908943
config['LONMIN'], config['LONMAX'],
909944
config['LATMIN'], config['LATMAX'])
910945

@@ -1010,6 +1045,7 @@ def set_interp_coeffs(self, sla, uspd):
10101045
sla = sla_grd.get_AVISO_data(AVISO_FILE)
10111046
sla_grd.set_mask(sla).uvmask()
10121047

1048+
10131049
if SMOOTHING:
10141050

10151051
if 'Gaussian' in SMOOTHING_TYPE:
@@ -1175,11 +1211,11 @@ def set_interp_coeffs(self, sla, uspd):
11751211

11761212

11771213
# Test pickling
1178-
#with open("".join((SAVE_DIR, 'A_eddy_%s.pkl' % ymd_str)), 'wb') as save_pickle:
1179-
#pickle.dump(A_eddy, save_pickle)
1214+
with open("".join((SAVE_DIR, 'A_eddy_%s.pkl' % ymd_str)), 'wb') as save_pickle:
1215+
pickle.dump(A_eddy, save_pickle)
11801216

1181-
#with open("".join((SAVE_DIR, 'C_eddy_%s.pkl' % ymd_str)), 'wb') as save_pickle:
1182-
#pickle.dump(C_eddy, save_pickle)
1217+
with open("".join((SAVE_DIR, 'C_eddy_%s.pkl' % ymd_str)), 'wb') as save_pickle:
1218+
pickle.dump(C_eddy, save_pickle)
11831219

11841220
## Unpickle
11851221
#with open('C_eddy.pkl', 'rb') as load_pickle:

make_eddy_tracker_list_obj.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,7 @@ def __init__(self, DATATYPE, SIGN_TYPE, SAVE_DIR, grd, search_ellipse,
342342
self.i0, self.i1 = grd.i0, grd.i1
343343
self.j0, self.j1 = grd.j0, grd.j1
344344
self.FILLVAL = grd.FILLVAL
345+
self.PRODUCT = grd.PRODUCT
345346

346347
self.new_lon = [] #np.array([])
347348
self.new_lat = []
@@ -532,6 +533,7 @@ def create_netcdf(self, directory, savedir,
532533
nc = Dataset(self.savedir, 'w', format='NETCDF4')
533534
nc.title = ''.join((self.SIGN_TYPE, ' eddy tracks'))
534535
nc.directory = directory
536+
nc.PRODUCT = self.PRODUCT
535537
nc.DAYS_BTWN_RECORDS = np.float64(self.DAYS_BTWN_RECORDS)
536538
nc.TRACK_DURATION_MIN = np.float64(self.TRACK_DURATION_MIN)
537539

py_eddy_tracker_classes.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -696,8 +696,6 @@ def collection_loop(CS, grd, rtime, A_list_obj, C_list_obj,
696696
amp = Amplitude(contlon_e, contlat_e, Eddy, grd)
697697

698698
if 'Anticyclonic' in sign_type:
699-
amp.all_pixels_above_h0()
700-
701699
reset_centroid = amp.all_pixels_above_h0(
702700
CS.levels[collind])
703701
#plt.figure(666)

py_eddy_tracker_property_classes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ def debug_figure(self, grd):
296296
"""
297297
Uncomment in py-eddy-tracker-classes.py
298298
"""
299-
if self.local_extrema and self.amplitude:
299+
if self.local_extrema >= 1 and self.amplitude:
300300

301301
plt.figure(587)
302302
cmin, cmax = -8, 8

0 commit comments

Comments
 (0)