Skip to content

Commit 5f88d06

Browse files
committed
Allow to subset before bins stat
1 parent f8bbcfc commit 5f88d06

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/py_eddy_tracker/observations/observation.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1688,24 +1688,29 @@ def filled(
16881688
c.norm = Normalize(vmin=vmin, vmax=vmax)
16891689
return c
16901690

1691-
def bins_stat(self, xname, bins=None, yname=None, method=None):
1691+
def bins_stat(self, xname, bins=None, yname=None, method=None, mask=None):
16921692
"""
16931693
:param str,array xname: variable to compute stats on
16941694
:param array, None bins: bins to perform statistics, if None bins = arange(variable.min(), variable.max() + 2)
1695-
:param None,str yname: variable used to apply method
1695+
:param None,str,array yname: variable used to apply method
16961696
:param None,str method: If None method counts the number of observations in each bin, can be "mean", "std"
1697+
:param None,array(bool) mask: If defined use only True position
16971698
:return: x array and y array
16981699
:rtype: array,array
16991700
17001701
.. minigallery:: py_eddy_tracker.EddiesObservations.bins_stat
17011702
"""
17021703
v = self[xname] if isinstance(xname, str) else xname
1704+
if mask is not None:
1705+
v = v[mask]
17031706
if bins is None:
17041707
bins = arange(v.min(), v.max() + 2)
17051708
y, x = hist_numba(v, bins=bins)
17061709
x = (x[1:] + x[:-1]) / 2
17071710
if method == "mean":
1708-
y_v = self[yname]
1711+
y_v = self[yname] if isinstance(yname, str) else yname
1712+
if mask is not None:
1713+
y_v = y_v[mask]
17091714
y_, _ = histogram(v, bins=bins, weights=y_v)
17101715
y = y_ / y
17111716
return x, y

tests/test_track.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,3 @@ def test_area_tracking_parameter():
4444
c.to_netcdf(h)
4545
c_reloaded = Correspondances.from_netcdf(h)
4646
assert class_kw == c_reloaded.class_kw
47-
48-

0 commit comments

Comments
 (0)