Skip to content

Commit 3e73e63

Browse files
committed
Add hybrid method in appli
1 parent 66f9905 commit 3e73e63

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

src/py_eddy_tracker/appli/network.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ def build_network():
3636
action="store_true",
3737
help="If True, use intersection/little polygon, else intersection/union",
3838
)
39+
parser.add_argument(
40+
"--hybrid-area",
41+
action="store_true",
42+
help="If True, use minimal-area method if overlap is under min overlap, else intersection/union",
43+
)
3944

4045
parser.contour_intern_arg()
4146

@@ -49,7 +54,7 @@ def build_network():
4954
memory=args.memory,
5055
)
5156
group = n.group_observations(
52-
min_overlap=args.min_overlap, minimal_area=args.minimal_area
57+
min_overlap=args.min_overlap, minimal_area=args.minimal_area, hybrid_area=args.hybrid_area
5358
)
5459
n.build_dataset(group).write_file(filename=args.out)
5560

@@ -74,6 +79,11 @@ def divide_network():
7479
action="store_true",
7580
help="If True, use intersection/little polygon, else intersection/union",
7681
)
82+
parser.add_argument(
83+
"--hybrid-area",
84+
action="store_true",
85+
help="If True, use minimal-area method if overlap is under min overlap, else intersection/union",
86+
)
7787
args = parser.parse_args()
7888
contour_name = TrackEddiesObservations.intern(args.intern, public_label=True)
7989
e = TrackEddiesObservations.load_file(
@@ -87,6 +97,7 @@ def divide_network():
8797
window=args.window,
8898
min_overlap=args.min_overlap,
8999
minimal_area=args.minimal_area,
100+
hybrid_area=args.hybrid_area
90101
),
91102
)
92103
n.write_file(filename=args.out)

src/py_eddy_tracker/observations/network.py

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1913,21 +1913,14 @@ def group_translator(nb, duos):
19131913
apply_replace(translate, gr_i, gr_j)
19141914
return translate
19151915

1916-
def group_observations(self, min_overlap=0.2, minimal_area=False):
1916+
def group_observations(self, min_overlap=0.2, minimal_area=False, **kwargs):
19171917
"""Store every interaction between identifications
19181918
1919-
Parameters
1920-
----------
1921-
minimal_area : bool, optional
1922-
If True, function will compute intersection/little polygon, else intersection/union, by default False
1919+
:param bool minimal_area: If True, function will compute intersection/little polygon, else intersection/union, by default False
1920+
:param float min_overlap: minimum overlap area to associate observations, by default 0.2
19231921
1924-
min_overlap : float, optional
1925-
minimum overlap area to associate observations, by default 0.2
1926-
1927-
Returns
1928-
-------
1929-
TrackEddiesObservations
1930-
netcdf with interactions
1922+
:return:
1923+
:rtype: TrackEddiesObservations
19311924
"""
19321925

19331926
results, nb_obs = list(), list()
@@ -1945,9 +1938,9 @@ def group_observations(self, min_overlap=0.2, minimal_area=False):
19451938
ii, ij = bbox_intersection(xi, yi, xj, yj)
19461939
m = (
19471940
vertice_overlap(
1948-
xi[ii], yi[ii], xj[ij], yj[ij], minimal_area=minimal_area
1941+
xi[ii], yi[ii], xj[ij], yj[ij], minimal_area=minimal_area, min_overlap=min_overlap, **kwargs
19491942
)
1950-
> min_overlap
1943+
!= 0
19511944
)
19521945
results.append((i, j, ii[m], ij[m]))
19531946
if display_iteration:

src/py_eddy_tracker/observations/tracking.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,7 @@ def get_previous_obs(
720720
time_ref,
721721
window,
722722
min_overlap=0.2,
723-
minimal_area=False,
723+
**kwargs,
724724
):
725725
"""Backward association of observations to the segments"""
726726
time_cur = int_(ids["time"][i_current])
@@ -737,10 +737,8 @@ def get_previous_obs(
737737
continue
738738
c = zeros(len(xj))
739739
c[ij] = vertice_overlap(
740-
xi[ii], yi[ii], xj[ij], yj[ij], minimal_area=minimal_area
740+
xi[ii], yi[ii], xj[ij], yj[ij], min_overlap=min_overlap, **kwargs
741741
)
742-
# We remove low overlap
743-
c[c < min_overlap] = 0
744742
# We get index of maximal overlap
745743
i = c.argmax()
746744
c_i = c[i]
@@ -762,7 +760,7 @@ def get_next_obs(
762760
time_ref,
763761
window,
764762
min_overlap=0.2,
765-
minimal_area=False,
763+
**kwargs
766764
):
767765
"""Forward association of observations to the segments"""
768766
time_max = time_e.shape[0] - 1
@@ -782,10 +780,8 @@ def get_next_obs(
782780
continue
783781
c = zeros(len(xj))
784782
c[ij] = vertice_overlap(
785-
xi[ii], yi[ii], xj[ij], yj[ij], minimal_area=minimal_area
783+
xi[ii], yi[ii], xj[ij], yj[ij], min_overlap=min_overlap, **kwargs
786784
)
787-
# We remove low overlap
788-
c[c < min_overlap] = 0
789785
# We get index of maximal overlap
790786
i = c.argmax()
791787
c_i = c[i]

0 commit comments

Comments
 (0)