Skip to content

Commit d31e437

Browse files
committed
add docstring
change time bins for __repr__ transfer sign_type when we use index()
1 parent 251569b commit d31e437

File tree

4 files changed

+64
-7
lines changed

4 files changed

+64
-7
lines changed

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ pyyaml
99
requests
1010
scipy
1111
zarr
12-
# for binder
12+
# for binder an documentation
1313
pyeddytrackersample

src/py_eddy_tracker/dataset/grid.py

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1317,6 +1317,15 @@ def _low_filter(self, grid_name, w_cut, **kwargs):
13171317
def convolve_filter_with_dynamic_kernel(
13181318
self, grid, kernel_func, lat_max=85, extend=False, **kwargs_func
13191319
):
1320+
"""
1321+
:param str grid: grid name
1322+
:param func kernel_func: function of kernel to use
1323+
:param float lat_max: absolute latitude above no filtering apply
1324+
:param bool extend: if False, only non masked value will return a filtered value
1325+
:param dict kwargs_func: look at kernel_func
1326+
:return: filtered value
1327+
:rtype: array
1328+
"""
13201329
if (abs(self.y_c) > lat_max).any():
13211330
logger.warning("No filtering above %f degrees of latitude", lat_max)
13221331
if isinstance(grid, str):
@@ -1409,7 +1418,7 @@ def lanczos_high_filter(
14091418
lat_max=lat_max,
14101419
wave_length=wave_length,
14111420
order=order,
1412-
**kwargs
1421+
**kwargs,
14131422
)
14141423
self.vars[grid_name] -= data_out
14151424

@@ -1421,7 +1430,7 @@ def lanczos_low_filter(self, grid_name, wave_length, order=1, lat_max=85, **kwar
14211430
lat_max=lat_max,
14221431
wave_length=wave_length,
14231432
order=order,
1424-
**kwargs
1433+
**kwargs,
14251434
)
14261435
self.vars[grid_name] = data_out
14271436

@@ -1436,6 +1445,15 @@ def bessel_band_filter(self, grid_name, wave_length_inf, wave_length_sup, **kwar
14361445
self.vars[grid_name] -= data_out
14371446

14381447
def bessel_high_filter(self, grid_name, wave_length, order=1, lat_max=85, **kwargs):
1448+
"""
1449+
:param str grid_name: grid to filter, data will replace original one
1450+
:param float wave_length: in km
1451+
:param int order: order to use, if > 1 negativ value will be present in kernel
1452+
:param float lat_max: absolute latitude above no filtering apply
1453+
:param dict kwargs: look at :py:meth:`RegularGridDataset.convolve_filter_with_dynamic_kernel`
1454+
1455+
.. minigallery:: py_eddy_tracker.RegularGridDataset.bessel_high_filter
1456+
"""
14391457
logger.debug(
14401458
"Run filtering with wave of %(wave_length)s km and order of %(order)s ...",
14411459
dict(wave_length=wave_length, order=order),
@@ -1446,7 +1464,7 @@ def bessel_high_filter(self, grid_name, wave_length, order=1, lat_max=85, **kwar
14461464
lat_max=lat_max,
14471465
wave_length=wave_length,
14481466
order=order,
1449-
**kwargs
1467+
**kwargs,
14501468
)
14511469
logger.debug("Filtering done")
14521470
self.vars[grid_name] -= data_out
@@ -1458,7 +1476,7 @@ def bessel_low_filter(self, grid_name, wave_length, order=1, lat_max=85, **kwarg
14581476
lat_max=lat_max,
14591477
wave_length=wave_length,
14601478
order=order,
1461-
**kwargs
1479+
**kwargs,
14621480
)
14631481
self.vars[grid_name] = data_out
14641482

@@ -1688,7 +1706,14 @@ def add_uv_lagerloef(self, grid_height, uname="u", vname="v", schema=15):
16881706

16891707
def add_uv(self, grid_height, uname="u", vname="v", stencil_halfwidth=4):
16901708
"""Compute a u and v grid
1691-
"""
1709+
1710+
:param str grid_height: grid name where funtion will apply stencil method
1711+
:param str uname: future name of u
1712+
:param str vname: future name of v
1713+
:param int stencil_halfwidth: largest stencil could be apply
1714+
1715+
.. minigallery:: py_eddy_tracker.RegularGridDataset.add_uv
1716+
"""
16921717
logger.info("Add u/v variable with stencil method")
16931718
data = self.grid(grid_height)
16941719
h_dict = self.variables_description[grid_height]

src/py_eddy_tracker/observations/observation.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,7 @@ def index(self, index, reverse=False):
492492
size = len(index)
493493
eddies = self.new_like(self, size)
494494
eddies.obs[:] = self.obs[index]
495+
eddies.sign_type = self.sign_type
495496
return eddies
496497

497498
@staticmethod
@@ -817,6 +818,14 @@ def intern(flag, public_label=False):
817818

818819
def match(self, other, intern=False, cmin=0):
819820
"""return index and score compute with area
821+
822+
:param EddiesObservations other: Observations to compare
823+
:param bool intern: if True, speed contour will be used
824+
:param float cmin: 0 < cmin < 1, return only couple above cmin
825+
:return: return index of couple in self and other and cost value
826+
:rtype: (array(int), array(int), array(float))
827+
828+
.. minigallery:: py_eddy_tracker.EddiesObservations.match
820829
"""
821830
x_name, y_name = self.intern(intern)
822831
i, j = bbox_intersection(
@@ -1345,6 +1354,15 @@ def set_global_attr_netcdf(self, h_nc):
13451354
h_nc.setncattr(key, item)
13461355

13471356
def scatter(self, ax, name, ref=None, factor=1, **kwargs):
1357+
"""
1358+
:param matplotlib.axes.Axes ax: matplotlib axes use to draw
1359+
:param str name: var which will be use to fill contour
1360+
:param float,None ref: if define use like west bound
1361+
:param dict kwargs: look at :py:meth:`matplotlib.axes.Axes.scatter`
1362+
:return: scatter mappable
1363+
1364+
.. minigallery:: py_eddy_tracker.EddiesObservations.scatter
1365+
"""
13481366
x = self.longitude
13491367
if ref is not None:
13501368
x = (x - ref) % 360 + ref
@@ -1478,6 +1496,16 @@ def grid_count(self, bins, intern=False, center=False):
14781496
return regular_grid
14791497

14801498
def grid_stat(self, bins, varname):
1499+
"""
1500+
Compute mean of eddies in each bin
1501+
1502+
:param (numpy.array,numpy.array) bins: bins to compute count
1503+
:param str varname: name of variable to compute mean
1504+
:return: return grid of mean
1505+
:rtype: py_eddy_tracker.dataset.grid.RegularGridDataset
1506+
1507+
.. minigallery:: py_eddy_tracker.EddiesObservations.grid_stat
1508+
"""
14811509
x_bins, y_bins = arange(*bins[0]), arange(*bins[1])
14821510
x0 = bins[0][0]
14831511
x, y = (self.longitude - x0) % 360 + x0, self.latitude

src/py_eddy_tracker/observations/tracking.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def __repr__(self):
104104
nb_obs = self.observations.shape[0]
105105
m = self["virtual"].astype("bool")
106106
nb_m = m.sum()
107-
bins_t = (1, 20, 50, 100, 200, 1000, 10000)
107+
bins_t = (1, 30, 90, 180, 270, 365, 1000, 10000)
108108
nb_tracks_by_t = histogram(nb, bins=bins_t)[0]
109109
nb_obs_by_t = histogram(nb, bins=bins_t, weights=nb)[0]
110110
pct_tracks_by_t = nb_tracks_by_t / nb_tracks_by_t.sum() * 100.0
@@ -156,6 +156,10 @@ def distance_to_next(self):
156156

157157
def filled_by_interpolation(self, mask):
158158
"""Filled selected values by interpolation
159+
160+
:param array(bool) mask: True if must be filled by interpolation
161+
162+
.. minigallery:: py_eddy_tracker.TrackEddiesObservations.filled_by_interpolation
159163
"""
160164
nb_filled = mask.sum()
161165
logger.info("%d obs will be filled (unobserved)", nb_filled)

0 commit comments

Comments
 (0)