@@ -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 '\n Initialising 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:
0 commit comments