@@ -1937,14 +1937,15 @@ def grid_count(self, bins, intern=False, center=False, filter=slice(None)):
1937
1937
grid .mask = grid == 0
1938
1938
return regular_grid
1939
1939
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 ) ):
1941
1941
"""
1942
1942
Compute mean of eddies in each bin
1943
1943
1944
1944
:param (numpy.array,numpy.array) bins: bins (grid) to count
1945
1945
:param str varname: variable to apply the method
1946
1946
:param str,float method: method to apply. If float, use ?
1947
1947
:param array data: Array used to compute stat if defined
1948
+ :param array,mask,slice filter: keep the data selected with the filter
1948
1949
:return: return grid of method
1949
1950
:rtype: py_eddy_tracker.dataset.grid.RegularGridDataset
1950
1951
@@ -1955,8 +1956,10 @@ def grid_box_stat(self, bins, varname, method=50, data=None):
1955
1956
x , y = (self .longitude - x0 ) % 360 + x0 , self .latitude
1956
1957
data = self [varname ] if data is None else data
1957
1958
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 ]
1960
1963
1961
1964
from ..dataset .grid import RegularGridDataset
1962
1965
0 commit comments