diff --git a/cost_function.py b/cost_function.py
index 925947d693f94dd06437b52d7f4d073c7792bf24..83aeb910163c316403ff25e2b942cc13a6d17a1d 100755
--- a/cost_function.py
+++ b/cost_function.py
@@ -148,26 +148,6 @@ for n in g.vertices():
         segment = g.vp.inst_eddies[n]
         len_seg = len(segment)
 
-        # Calculate the date index, the eddy index and the SHPC index of
-        # the first instantaneous eddy in the segment, then grab the
-        # position of the extremum and store it in a vertex property:
-        date_index, eddy_index = report_graph.node_to_date_eddy(segment[0],
-                                                                e_overestim)
-        i_SHPC = get_SHPC(array_d_init, date_index)
-        ishape = util_eddies.comp_ishape(handlers[i_SHPC], date_index,
-                                         eddy_index)
-        g.vp.pos_first[n] = handlers[i_SHPC]["readers"]["extremum"]\
-            .shape(ishape).points[0] # [in degrees]
-
-        # Same for last instantaneous eddy in the segment:
-        date_index, eddy_index = report_graph.node_to_date_eddy(segment[-1],
-                                                                e_overestim)
-        i_SHPC = get_SHPC(array_d_init, date_index)
-        ishape = util_eddies.comp_ishape(handlers[i_SHPC], date_index,
-                                         eddy_index)
-        g.vp.pos_last[n] = handlers[i_SHPC]["readers"]["extremum"]\
-            .shape(ishape).points[0] # [in degrees]
-
         if len_seg > n_days_avg:
             # The segment is longer than the number of days over which
             # to average
@@ -177,12 +157,14 @@ for n in g.vertices():
                                       array_d_init, handlers)
             g.vp.first_av_rad[n], g.vp.first_av_ros[n] \
                 = calculate_radii_rossby(properties)
+            g.vp.pos_first[n] = properties[0]["pos"] # in degrees
 
             # Last 7 days calculation:
             properties = node_to_prop(segment[- n_days_avg:], e_overestim,
                                       array_d_init, handlers)
             g.vp.last_av_rad[n], g.vp.last_av_ros[n] \
                 = calculate_radii_rossby(properties)
+            g.vp.pos_last[n] = properties[- 1]["pos"] # in degrees
         else:
             # The number of eddies in a segment is lower than the number
             # of days over which to average. The values will be the same
@@ -199,6 +181,9 @@ for n in g.vertices():
             g.vp.first_av_rad[n] = avg_rad
             g.vp.last_av_rad[n] = avg_rad
 
+            g.vp.pos_first[n] = properties[0]["pos"] # in degrees
+            g.vp.pos_last[n] = properties[- 1]["pos"] # in degrees
+
 t1 = time.perf_counter()
 timings.write(f"iterating on vertices: {t1 - t0:.0f} s\n")
 t0 = t1