@@ -1937,14 +1937,15 @@ def grid_count(self, bins, intern=False, center=False, filter=slice(None)):
19371937 grid .mask = grid == 0
19381938 return regular_grid
19391939
1940- def grid_box_stat (self , bins , varname , method = 50 , data = None ):
1940+ def grid_box_stat (self , bins , varname , method = 50 , data = None , filter = slice ( None ) ):
19411941 """
19421942 Compute mean of eddies in each bin
19431943
19441944 :param (numpy.array,numpy.array) bins: bins (grid) to count
19451945 :param str varname: variable to apply the method
19461946 :param str,float method: method to apply. If float, use ?
19471947 :param array data: Array used to compute stat if defined
1948+ :param array,mask,slice filter: keep the data selected with the filter
19481949 :return: return grid of method
19491950 :rtype: py_eddy_tracker.dataset.grid.RegularGridDataset
19501951
@@ -1955,8 +1956,10 @@ def grid_box_stat(self, bins, varname, method=50, data=None):
19551956 x , y = (self .longitude - x0 ) % 360 + x0 , self .latitude
19561957 data = self [varname ] if data is None else data
19571958 if hasattr (data , "mask" ):
1958- m = ~ data .mask
1959- x , y , data = x [m ], y [m ], data [m ]
1959+ filter = self .merge_filters (~ data .mask , self .merge_filters (filter ))
1960+ else :
1961+ filter = self .merge_filters (filter )
1962+ x , y , data = x [filter ], y [filter ], data [filter ]
19601963
19611964 from ..dataset .grid import RegularGridDataset
19621965
0 commit comments