@@ -504,12 +504,8 @@ def get_uavg(Eddy, CS, collind, centlon_e, centlat_e, poly_eff,
504504    any_inner_contours  =  False 
505505
506506    citer  =  np .nditer (CS .cvalues , flags = ['c_index' ])
507-     #print '************************************************' 
507+     
508508    while  not  citer .finished :
509-         
510-         #print '--------------' * 10 
511-         #print '--------------' * 10 
512-         #print '\nciter.index ::', citer.index 
513509        ## Get contour around centlon_e, centlat_e at level [collind:][iuavg] 
514510        #segii, poly_i = eddy_tracker.find_nearest_contour( 
515511                         #CS.collections[citer.index], centlon_e, centlat_e) 
@@ -518,7 +514,6 @@ def get_uavg(Eddy, CS, collind, centlon_e, centlat_e, poly_eff,
518514
519515        # Leave loop if no contours at level citer.index 
520516        if  Eddy .swirl .level_slice  is  None :
521-             #print '------------------------------------------' 
522517            citer .iternext ()
523518            continue 
524519
@@ -561,13 +556,12 @@ def get_uavg(Eddy, CS, collind, centlon_e, centlat_e, poly_eff,
561556        citer .iternext ()
562557
563558
564-     if  any_inner_contours :
559+     if  any_inner_contours :  # set speed based contour parameters 
565560        cx , cy  =  Eddy .M (theseglon , theseglat )
566-         # Get speed based eddy radius (eddy_radius_s) 
567561        centx_s , centy_s , eddy_radius_s , junk  =  fit_circle (cx , cy )
568562        centlon_s , centlat_s  =  Eddy .M .projtran (centx_s , centy_s , inverse = True )
569563
570-     else :
564+     else :  # use the effective contour 
571565        centlon_s , centlat_s  =  centlon_e , centlat_e 
572566        eddy_radius_s  =  eddy_radius_e 
573567        inner_seglon , inner_seglat  =  theseglon , theseglat 
@@ -576,6 +570,7 @@ def get_uavg(Eddy, CS, collind, centlon_e, centlat_e, poly_eff,
576570    if  not  save_all_uavg :
577571        return  (uavg , centlon_s , centlat_s , eddy_radius_s ,
578572                theseglon , theseglat , inner_seglon , inner_seglat )
573+     
579574    else :  
580575        return  (uavg , centlon_s , centlat_s , eddy_radius_s ,
581576                theseglon , theseglat , inner_seglon , inner_seglat , all_uavg )
@@ -775,14 +770,19 @@ def collection_loop(CS, grd, rtime, A_list_obj, C_list_obj,
775770
776771                                elif  'SLA'  in  Eddy .DIAGNOSTIC_TYPE :
777772
773+                                     args  =  (Eddy , CS , collind ,
774+                                             centlon_e , centlat_e ,
775+                                             cont , grd , eddy_radius_e )
776+                                     
778777                                    if  not  Eddy .TRACK_EXTRA_VARIABLES :
779-                                         uavg , centlon_s , centlat_s ,  eddy_radius_s ,\ 
780-                                               contlon_s , contlat_s ,  inner_contlon ,  inner_contlat   =   get_uavg ( Eddy ,  CS ,  collind ,
781-                                                                         centlon_e ,  centlat_e ,  cont ,  grd ,  eddy_radius_e )
778+                                         ( uavg , centlon_s , centlat_s ,
779+                                          eddy_radius_s ,  contlon_s , contlat_s ,
780+                                          inner_contlon ,  inner_contlat )  =   get_uavg ( * args )
782781                                    else :
783-                                         uavg , centlon_s , centlat_s , eddy_radius_s ,\
784-                                              contlon_s , contlat_s , inner_contlon , inner_contlat , uavg_profile  =  get_uavg (Eddy , CS , collind ,
785-                                                                        centlon_e , centlat_e , cont , grd , eddy_radius_e , save_all_uavg = True )
782+                                         (uavg , centlon_s , centlat_s ,
783+                                          eddy_radius_s , contlon_s , contlat_s ,
784+                                          inner_contlon , inner_contlat ,
785+                                          uavg_profile ) =  get_uavg (* args , save_all_uavg = True )
786786
787787
788788                                    centlon_lmi , centlat_lmi , junk , junk  =  fit_circle (inner_contlon ,
@@ -800,8 +800,6 @@ def collection_loop(CS, grd, rtime, A_list_obj, C_list_obj,
800800                                properties .rtime  =  rtime 
801801                                properties .teke  =  teke 
802802
803-                                 
804-                                 
805803                                # Update Q eddy properties 
806804                                if  'Q'  in  Eddy .DIAGNOSTIC_TYPE :
807805                                    # We pass eddy_radius_e as a dummy for eddy_radius_s 
@@ -913,9 +911,9 @@ def track_eddies(Eddy, first_record):
913911    debug_dist  =  False 
914912
915913    # We will need these in m for ellipse below 
916-     old_x , old_y  =  Eddy .M (np .asarray (Eddy .old_lon ), np .asarray (Eddy .old_lat ))
917-     new_x , new_y  =  Eddy .M (np .asarray (Eddy .new_lon_tmp ),
918-                           np .asarray (Eddy .new_lat_tmp ))
914+     old_x , old_y  =  Eddy .M (np .array (Eddy .old_lon ), np .array (Eddy .old_lat ))
915+     new_x , new_y  =  Eddy .M (np .array (Eddy .new_lon_tmp ),
916+                           np .array (Eddy .new_lat_tmp ))
919917
920918    X_old  =  np .array ([Eddy .old_lon , Eddy .old_lat ]).T 
921919    X_new  =  np .array ([Eddy .new_lon_tmp , Eddy .new_lat_tmp ]).T 
@@ -1055,7 +1053,7 @@ def track_eddies(Eddy, first_record):
10551053                    # corresponding new_eddy_inds set to False 
10561054                    new_eddy_inds [np .nonzero (Eddy .new_lon_tmp  ==  
10571055                                            Eddy .new_lon_tmp [new_ind ])] =  False 
1058-                     dist_mat [:,new_ind ] =  1e9  # km 
1056+                     dist_mat [:,  new_ind ] =  1e9  # km 
10591057
10601058
10611059        if  Eddy .TRACK_EXTRA_VARIABLES :
@@ -1093,8 +1091,8 @@ def track_eddies(Eddy, first_record):
10931091
10941092                # Choice of using effective or speed-based... 
10951093                delta_area  =  np .r_ [delta_area ,
1096-                     np .abs (np .diff ([np .pi * (Eddy .old_radii_e [old_ind ]** 2 ),
1097-                     np .pi * (new_rd_e [i ]** 2 )]))]
1094+                     np .abs (np .diff ([np .pi   *   (Eddy .old_radii_e [old_ind ]** 2 ),
1095+                     np .pi   *   (new_rd_e [i ]** 2 )]))]
10981096                delta_amp  =  np .r_ [delta_amp ,
10991097                    np .abs (np .diff ([Eddy .old_amp [old_ind ], new_am [i ]]))]
11001098
@@ -1147,7 +1145,7 @@ def track_eddies(Eddy, first_record):
11471145
11481146            # Use backup_ind to reinsert distances into dist_mat for the unused eddy/eddies 
11491147            for  i , bind  in  enumerate (backup_ind [dx_unused ]):
1150-                 dist_mat [:,bind ] =  dist_mat_copy [:,bind ]
1148+                 dist_mat [:,  bind ] =  dist_mat_copy [:,  bind ]
11511149
11521150            if  debug_dist :
11531151                print  'backup_ind[dx_unused].shape' ,backup_ind [dx_unused ].shape 
@@ -1229,10 +1227,14 @@ def accounting(Eddy, old_ind, centlon, centlat,
12291227      new_eddy   : flag indicating a new eddy 
12301228      first_record : flag indicating that we're on the first record 
12311229    """ 
1232-     if  first_record : # is True then all eddies are new... 
1230+     if  first_record : # is True then all eddies are new 
1231+         new_eddy  =  True 
12331232        if  Eddy .VERBOSE :
12341233            print  '------ writing first record' 
1235-         new_eddy  =  True 
1234+     
1235+     kwargs  =  {'temp' :cent_temp , 'salt' :cent_salt ,
1236+               'contour_e' :contour_e , 'contour_s' :contour_s ,
1237+               'uavg_profile' :uavg_profile , 'shape_error' :shape_error }
12361238
12371239    if  not  new_eddy : # it's an old (i.e., active) eddy 
12381240
@@ -1257,19 +1259,7 @@ def accounting(Eddy, old_ind, centlon, centlat,
12571259        args  =  (old_ind , centlon , centlat , rtime , uavg , teke ,
12581260                eddy_radius_s , eddy_radius_e , amplitude )
12591261
1260-         if  'ROMS'  in  Eddy .DATATYPE :
1261-             
1262-             Eddy .update_track (* args ,
1263-                               temp = cent_temp , salt = cent_salt ,
1264-                               contour_e = contour_e , contour_s = contour_s ,
1265-                               uavg_profile = uavg_profile , shape_error = shape_error )
1266-         
1267-         elif  'AVISO'  in  Eddy .DATATYPE :
1268-             
1269-             Eddy .update_track (* args ,
1270-                               temp = None , salt = None ,
1271-                               contour_e = contour_e , contour_s = contour_s ,
1272-                               uavg_profile = uavg_profile , shape_error = shape_error )
1262+         Eddy .update_track (* args , ** kwargs )
12731263
12741264    else : # it's a new eddy 
12751265
@@ -1298,19 +1288,8 @@ def accounting(Eddy, old_ind, centlon, centlat,
12981288
12991289        args  =  (centlon , centlat , rtime , uavg , teke ,
13001290                eddy_radius_s , eddy_radius_e , amplitude )
1301-         kwargs  =  {'contour_e' :contour_e , 'contour_s' :contour_s ,
1302-                   'uavg_profile' :uavg_profile , 'shape_error' :shape_error }
13031291
1304-         if  'ROMS'  in  Eddy .DATATYPE :
1305-             
1306-             kwargs ['temp' ] =  cent_temp 
1307-             kwargs ['salt' ] =  cent_salt 
1308-             
1309-             Eddy .add_new_track (* args , ** kwargs )
1310-         
1311-         elif  'AVISO'  in  Eddy .DATATYPE :
1312-     
1313-             Eddy .add_new_track (* args , ** kwargs )
1292+         Eddy .add_new_track (* args , ** kwargs )
13141293
13151294        Eddy .index  +=  1 
13161295
@@ -1363,14 +1342,14 @@ def hann2d_fast(var, ni, nj):
13631342        #print 'jsz, isz',jsz, isz 
13641343        var_ext  =  np .ma .zeros ((nj , ni )) # add 1-more line parallell to 
13651344        var_ext [1 :- 1 , 1 :- 1 ] =  var         # each of 4-sides 
1366-         var_ext [1 :- 1 , 0 ] =  var [:,0 ]   # duplicate W-side 
1367-         var_ext [1 :- 1 ,- 1 ] =  var [:,- 1 ]  # duplicate E-side 
1368-         var_ext [0 ,1 :- 1 ] =  var [0 ,: ]   # duplicate N-side 
1369-         var_ext [- 1 ,1 :- 1 ] =  var [- 1 ,: ]  # duplicate S-side 
1370-         var_ext [0 ,0 ] =  np .nan      # NW-corner 
1371-         var_ext [0 ,- 1 ] =  np .nan      # NE-corner 
1372-         var_ext [- 1 ,0 ] =  np .nan      # SW-corner 
1373-         var_ext [- 1 ,- 1 ] =  np .nan      # SE-corner 
1345+         var_ext [1 :- 1 , 0 ] =  var [:,  0 ]   # duplicate W-side 
1346+         var_ext [1 :- 1 ,  - 1 ] =  var [:,  - 1 ]  # duplicate E-side 
1347+         var_ext [0 ,  1 :- 1 ] =  var [0 ]   # duplicate N-side 
1348+         var_ext [- 1 ,  1 :- 1 ] =  var [- 1 ]  # duplicate S-side 
1349+         var_ext [0 ,  0 ] =  np .nan      # NW-corner 
1350+         var_ext [0 ,  - 1 ] =  np .nan      # NE-corner 
1351+         var_ext [- 1 ,  0 ] =  np .nan      # SW-corner 
1352+         var_ext [- 1 ,  - 1 ] =  np .nan      # SE-corner 
13741353
13751354        # npts is used to count number of valid neighbors     
13761355        npts  =  ne .evaluate ('var_ext * 0. + 1.' )
@@ -1383,7 +1362,7 @@ def hann2d_fast(var, ni, nj):
13831362        cc  =  np .ma .zeros ((var .shape ))
13841363        varS  =  np .ma .zeros ((var .shape ))
13851364
1386-         cc  =  npts [1 :nj - 1 , 1 :ni - 1 ] *  (npts [0 :nj - 2 , 1 :ni - 1 ] +  npts [2 :nj ,    1 :ni - 1 ] + 
1365+         cc  =  npts [1 :nj - 1 , 1 :ni - 1 ] *  (npts [0 :nj - 2 , 1 :ni - 1 ] +  npts [2 :nj , 1 :ni - 1 ] + 
13871366                                     npts [1 :nj - 1 , 0 :ni - 2 ] +  npts [1 :nj - 1 , 2 :ni ])
13881367
13891368        varS  =  (var_ext [0 :nj - 2 , 1 :ni - 1 ] +  var_ext [2 :nj ,   1 :ni - 1 ] +  
@@ -1405,7 +1384,7 @@ def hann2d_fast(var, ni, nj):
14051384
14061385def  get_circle (x0 , y0 , r , npts ):
14071386    """ 
1408-     Return points on a circle, with specified (x0,y0) center and radius 
1387+     Return points on a circle, with specified (x0,  y0) center and radius 
14091388                    (and optional number of points too!). 
14101389   
14111390    Input     : 1  - x0, scalar, center X of circle 
0 commit comments