2525
2626make_eddy_tracker_list_obj.py 
2727
28- Version 2.0.0  
28+ Version 2.0.1  
2929
3030
3131=========================================================================== 
@@ -193,8 +193,6 @@ def append_pos(self, lon, lat, time, uavg, teke, radius_s, radius_e,
193193        """ 
194194        Append track updates 
195195        """ 
196-         #self.lon = np.r_[self.lon, lon] 
197-         #print 'ccccccccccccccccccccccc', type(lon) 
198196        self .lon .append (lon )
199197        self .lat .append (lat )
200198        self .ocean_time .append (time )
@@ -205,8 +203,8 @@ def append_pos(self, lon, lat, time, uavg, teke, radius_s, radius_e,
205203        self .amplitude .append (amplitude )
206204        if  'ROMS'  in  self .PRODUCT :
207205            #self.temp = np.r_[self.temp, temp] 
208-             pass 
209206            #self.salt = np.r_[self.salt, salt] 
207+             pass 
210208        if  self .save_extras :
211209            self .contour_e .append (contour_e )
212210            self .contour_s .append (contour_s )
@@ -368,7 +366,7 @@ def __getstate__(self):
368366        """pops = ('uspd', 'uspd_coeffs', 'sla_coeffs', 'points', 
369367                'circlon', 'circlat', 'sla', 'slacopy', 'swirl', 
370368                'mask_eff', 'mask_eff_sum', 'mask_eff_1d')""" 
371- 	     pops  =  ('uspd' , 'uspd_coeffs' , 'sla_coeffs' , 'points' ,
369+          pops  =  ('uspd' , 'uspd_coeffs' , 'sla_coeffs' , 'points' ,
372370                'sla' , 'slacopy' , 'swirl' ,
373371                'mask_eff' , 'mask_eff_sum' , 'mask_eff_1d' )
374372        result  =  self .__dict__ .copy ()
@@ -679,7 +677,7 @@ def create_netcdf(self, directory, savedir,
679677
680678            nc .createDimension ('contour_points' , None )
681679            nc .createDimension ('uavg_contour_count' ,
682-                 np .int (self .slaparameter .size  *  0.333 ))
680+                 np .int (self .CONTOUR_PARAMETER .size  *  0.333 ))
683681            nc .createVariable ('contour_e' , 'f4' ,
684682                ('contour_points' ,'Nobs' ), fill_value = self .FILLVAL )
685683            nc .createVariable ('contour_s' , 'f4' ,
@@ -766,7 +764,7 @@ def write2netcdf(self, rtime):
766764
767765                        tsize  =  len (self .tracklist [i ].lon )
768766
769-                         if  (tsize  >=  self .TRACK_DURATION_MIN  /  DBR ) and  tsize  >  1. :
767+                         if  (tsize  >=  self .TRACK_DURATION_MIN  /  DBR ) and  tsize  >=   1. :
770768                            lon  =  np .array ([self .tracklist [i ].lon ])
771769                            lat  =  np .array ([self .tracklist [i ].lat ])
772770                            amp  =  np .array ([self .tracklist [i ].amplitude ])
@@ -1006,6 +1004,22 @@ def get_rwdistance(self, xpt, ypt, DAYS_BTWN_RECORDS):
10061004        Return the distance required by SearchEllipse 
10071005        to construct a search ellipse for eddy tracking. 
10081006        """ 
1007+         def  get_lon_lat (xpt , ypt ):
1008+             """ 
1009+              
1010+             """ 
1011+             lon , lat  =  self .M .projtran (xpt , ypt , inverse = True )
1012+             lon , lat  =  np .round (lon , 2 ), np .round (lat , 2 )
1013+             if  lon  <  0. :
1014+                 lon  =  "" .join ((str (lon ), 'W' ))
1015+             elif  lon  >=  0 :
1016+                 lon  =  "" .join ((str (lon ), 'E' ))
1017+             if  lat  <  0 :
1018+                 lat  =  "" .join ((str (lat ), 'S' ))
1019+             elif  lat  >=  0 :
1020+                 lat  =  "" .join ((str (lat ), 'N' ))
1021+             return  lon , lat 
1022+             
10091023        if  self .THE_DOMAIN  in  ('Global' , 'Regional' , 'ROMS' ):
10101024            #print 'xpt, ypt', xpt, ypt 
10111025            self .distance [:] =  self ._get_rlongwave_spd (xpt , ypt )
@@ -1023,23 +1037,21 @@ def get_rwdistance(self, xpt, ypt, DAYS_BTWN_RECORDS):
10231037            Exception   # Unknown THE_DOMAIN 
10241038
10251039        if  self .start :
1026-             lon , lat  =  self .M .projtran (xpt , ypt , inverse = True )
1027-             lon , lat  =  np .round (lon , 2 ), np .round (lat , 2 )
1028-             if  lon  <  0. :
1029-                 lon  =  "" .join ((str (lon ), 'W' ))
1030-             elif  lon  >=  0 :
1031-                 lon  =  "" .join ((str (lon ), 'E' ))
1032-             if  lat  <  0 :
1033-                 lat  =  "" .join ((str (lat ), 'S' ))
1034-             elif  lat  >=  0 :
1035-                 lat  =  "" .join ((str (lat ), 'N' ))
1036- 
1037-             print  "" .join (('--------- setting ellipse for first tracked ' ,
1038-                            'eddy at %s, %s in the %s domain' 
1039-                             %  (lon , lat , self .THE_DOMAIN )))
1040-             c  =  np .abs (self ._get_rlongwave_spd (xpt , ypt ))[0 ]
1041-             print  "" .join (('--------- with extratropical long baroclinic ' ,
1042-                            'Rossby wave phase speed of %s m/s'  %  c ))
1040+             lon , lat  =  get_lon_lat (xpt , ypt )
1041+             if  'Global'  in  self .THE_DOMAIN :
1042+                 print  "" .join (('--------- setting ellipse for first tracked ' ,
1043+                             'eddy at %s, %s in the %s domain' 
1044+                                 %  (lon , lat , self .THE_DOMAIN )))
1045+                 c  =  np .abs (self ._get_rlongwave_spd (xpt , ypt ))[0 ]
1046+                 print  "" .join (('--------- with extratropical long baroclinic ' ,
1047+                             'Rossby wave phase speed of %s m/s'  %  c ))
1048+             elif  self .THE_DOMAIN  in  ('BlackSea' , 'MedSea' ):
1049+                 print  "" .join (('--------- setting search radius of %s m for ' 
1050+                                 %  self .distance [0 ],
1051+                             'first tracked eddy at %s, %s in the %s domain' 
1052+                                 %  (lon , lat , self .THE_DOMAIN )))
1053+             else :
1054+                 Exception 
10431055            self .start  =  False 
10441056
10451057        self .distance  =  np .abs (self .distance )
@@ -1052,6 +1064,7 @@ def _make_subset(self):
10521064        """ 
10531065        pad  =  1.5   # degrees 
10541066        LONMIN , LONMAX , LATMIN , LATMAX  =  self .limits 
1067+ 
10551068        if  self .ZERO_CROSSING :
10561069            ieast , iwest  =  (((self ._lon  +  360. ) <=  LONMAX  +  pad ),
10571070                            (self ._lon  >  LONMIN  +  pad ))
@@ -1158,7 +1171,7 @@ def __init__(self, THE_DOMAIN, grd, DAYS_BTWN_RECORDS, RW_PATH=None):
11581171        self .n_s_minor  =  self .DAYS_BTWN_RECORDS  *  15e4  /  7. 
11591172        self .semi_n_s_minor  =  0.5  *  self .n_s_minor 
11601173        self .rwv  =  RossbyWaveSpeed (THE_DOMAIN , grd , RW_PATH = RW_PATH )
1161-         #self.rwv.view_grid_subset() 
1174+         #self.rwv.view_grid_subset() # debug; not relevant for MedSea / BlackSea  
11621175        self .rw_c  =  np .empty (1 )
11631176        self .rw_c_mod  =  np .empty (1 )
11641177        self .rw_c_fac  =  1.75 
@@ -1201,7 +1214,7 @@ def _set_black_sea_ellipse(self):
12011214        """ 
12021215        Set *ellipse_path* for the *black_sea_ellipse*. 
12031216        """ 
1204-         self .black_sea_ellipse  =  patch .Ellipse ((self .x , self .y ),
1217+         self .black_sea_ellipse  =  patch .Ellipse ((self .xpt , self .ypt ),
12051218                               2.  *  self .rw_c_mod , 2.  *  self .rw_c_mod )
12061219        verts  =  self .black_sea_ellipse .get_verts ()
12071220        self .ellipse_path  =  path .Path (np .array ([verts [:, 0 ],
@@ -1221,20 +1234,19 @@ def set_search_ellipse(self, xpt, ypt):
12211234        """ 
12221235        self .xpt  =  xpt 
12231236        self .ypt  =  ypt 
1237+         self .rw_c_mod [:] =  1.75 
12241238
12251239        if  self .THE_DOMAIN  in  ('Global' , 'Regional' , 'ROMS' ):
12261240            self .rw_c [:] =  self .rwv .get_rwdistance (xpt , ypt ,
12271241                                  self .DAYS_BTWN_RECORDS )
1228-             self .rw_c_mod [:] =  1.75 
12291242            self .rw_c_mod  *=  self .rw_c 
12301243            self .rw_c_mod [:] =  np .array ([self .rw_c_mod ,
12311244                                         self .semi_n_s_minor ]).max ()
12321245            self .rw_c_mod  *=  2. 
12331246            self ._set_global_ellipse ()
12341247
1235-         elif  'BlackSea'  in  self .THE_DOMAIN :
1236-             self .rw_c_mod [:] =  1.75 
1237-             self .rw_c [:] =  self .rwv .get_rwdistance (x , y ,
1248+         elif  self .THE_DOMAIN  in  ('BlackSea' , 'MedSea' ):
1249+             self .rw_c [:] =  self .rwv .get_rwdistance (xpt , ypt ,
12381250                                   self .DAYS_BTWN_RECORDS )
12391251            self .rw_c_mod  *=  self .rw_c 
12401252            self ._set_black_sea_ellipse ()
0 commit comments