Skip to content

Commit 10e990a

Browse files
author
adelepoulle
committed
Manage extra variable
1 parent 7423d27 commit 10e990a

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

src/py_eddy_tracker/observations.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ class EddiesObservations(object):
6767
Time
6868
"""
6969

70-
def __init__(self, size=0, track_extra_variables=False, track_array_variables=0, array_variables=None):
71-
self.track_extra_variables = track_extra_variables
70+
def __init__(self, size=0, track_extra_variables=None, track_array_variables=0, array_variables=None):
71+
self.track_extra_variables = track_extra_variables if track_extra_variables is not None else []
7272
self.track_array_variables = track_array_variables
7373
self.array_variables = array_variables if array_variables is not None else []
7474
for elt in self.elements:
@@ -117,17 +117,14 @@ def elements(self):
117117
if self.track_array_variables > 0:
118118
elements += self.array_variables
119119

120-
if self.track_extra_variables:
121-
elements += ['contour_e',
122-
'contour_s',
123-
'uavg_profile',
124-
'shape_error',
125-
]
120+
if len(self.track_extra_variables):
121+
elements += self.track_extra_variables
126122
return elements
127123

128124
def coherence(self, other):
129125
"""Check coherence between two dataset
130126
"""
127+
test = self.track_extra_variables == other.track_extra_variables
131128
test = self.track_array_variables == other.track_array_variables
132129
test *= self.array_variables == other.array_variables
133130
return test
@@ -174,7 +171,8 @@ def insert_observations(self, other, index):
174171
return self
175172
if index < 0:
176173
index = self_size + index + 1
177-
eddies = self.__class__(new_size, self.track_extra_variables,
174+
eddies = self.__class__(new_size,
175+
track_extra_variables=self.track_extra_variables,
178176
track_array_variables=self.track_array_variables,
179177
array_variables=self.array_variables
180178
)

src/py_eddy_tracker/property_functions.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,7 @@ def collection_loop(contours, grd, rtime, a_list_obj, c_list_obj,
441441
# Instantiate new EddyObservation object
442442
properties = EddiesObservations(
443443
size=1,
444+
track_extra_variables=eddy.track_extra_variables,
444445
track_array_variables=eddy.track_array_variables_sampling,
445446
array_variables=eddy.track_array_variables
446447
)
@@ -495,17 +496,18 @@ def collection_loop(contours, grd, rtime, a_list_obj, c_list_obj,
495496

496497
#~ if eddy.track_array_variables > 0:
497498

498-
if not eddy.track_extra_variables:
499+
#~ if not eddy.track_extra_variables:
500+
if True:
499501
(uavg, contlon_s, contlat_s,
500502
inner_contlon, inner_contlat,
501503
any_inner_contours
502504
) = get_uavg(*args)
503-
else:
504-
(uavg, contlon_s, contlat_s,
505-
inner_contlon, inner_contlat,
506-
any_inner_contours, uavg_profile
507-
) = get_uavg(
508-
*args, save_all_uavg=True)
505+
#~ else:
506+
#~ (uavg, contlon_s, contlat_s,
507+
#~ inner_contlon, inner_contlat,
508+
#~ any_inner_contours, uavg_profile
509+
#~ ) = get_uavg(
510+
#~ *args, save_all_uavg=True)
509511

510512
# Use azimuth equal projection for radius
511513
proj = Proj('+proj=aeqd +lat_0=%s +lon_0=%s'
@@ -525,22 +527,26 @@ def collection_loop(contours, grd, rtime, a_list_obj, c_list_obj,
525527
# sure it's that important ... Antoine?)
526528
# A. : I dont think, the difference is tiny
527529
c_x, c_y = proj(contlon_s, contlat_s)
528-
_, _, eddy_radius_s, _ = fit_circle_c(c_x, c_y)
530+
_, _, eddy_radius_s, aerr_s = fit_circle_c(c_x, c_y)
529531

530532
properties.obs['radius_s'] = eddy_radius_s
531533
properties.obs['speed_radius'] = uavg
532534
properties.obs['radius_e'] = eddy_radius_e
533535
properties.obs['time'] = rtime
534536
properties.obs['eke'] = teke
537+
if 'shape_error' in eddy.track_extra_variables:
538+
properties.obs['shape_error'] = aerr
539+
if 'shape_error_s' in eddy.track_extra_variables:
540+
properties.obs['shape_error_s'] = aerr_s
535541

536542
# Update SLA eddy properties
537543
if 'SLA' in eddy.diagnostic_type:
538544

539545
# See CSS11 section B4
540546
properties.obs['lon'] = centlon_s
541547
properties.obs['lat'] = centlat_s
542-
if 'contour_lon' in eddy.track_array_variables:
543-
properties.obs['contour_lon'], properties.obs['contour_lat'] = uniform_resample(
548+
if 'contour_lon_e' in eddy.track_array_variables:
549+
properties.obs['contour_lon_e'], properties.obs['contour_lat_e'] = uniform_resample(
544550
cont.lon, cont.lat,
545551
fixed_size=eddy.track_array_variables_sampling)
546552
if 'contour_lon_s' in eddy.track_array_variables:

src/py_eddy_tracker/tracking_objects.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def __init__(self, sign_type, grd, date, **kwargs):
7878

7979
self.diagnostic_type = kwargs.get('DIAGNOSTIC_TYPE', 'SLA')
8080
self.the_domain = kwargs.get('THE_DOMAIN', 'Regional')
81-
self.track_extra_variables = kwargs.get('TRACK_EXTRA_VARIABLES', False)
81+
self.track_extra_variables = kwargs.get('TRACK_EXTRA_VARIABLES', [])
8282
array_properties = kwargs.get('TRACK_ARRAY_VARIABLES', dict())
8383
self.track_array_variables_sampling = array_properties.get('NB_SAMPLES', 0)
8484
self.track_array_variables = array_properties.get('VARIABLES', [])
@@ -105,6 +105,7 @@ def __init__(self, sign_type, grd, date, **kwargs):
105105
self.sla = None
106106

107107
self.observations = EddiesObservations(
108+
track_extra_variables=self.track_extra_variables,
108109
track_array_variables=self.track_array_variables_sampling,
109110
array_variables=self.track_array_variables
110111
)

0 commit comments

Comments
 (0)