Skip to content

Commit c27f01a

Browse files
authored
Bugfix 461 get derived points (#477)
* Issue #461 Fix second intersection check at line 1337 to match original R script code and use extend to flatten the result ( a list of tuples) to improve performance * Issue #461 make same updates to scorecard class that uses the same code as agg_stat.py
1 parent ab3c822 commit c27f01a

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

metcalcpy/agg_stat.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1299,6 +1299,7 @@ def _get_derived_points(self, series_val, indy_vals, axis="1"):
12991299
result = []
13001300

13011301
# Loop through each derived series for the specified axis
1302+
13021303
for derived_serie in self.params['derived_series_' + axis]:
13031304
safe_log(logger, "debug", f"Processing derived series: {derived_serie}")
13041305

@@ -1333,8 +1334,8 @@ def _get_derived_points(self, series_val, indy_vals, axis="1"):
13331334

13341335
# Filter values based on intersections with ds_1
13351336
for var in series_val.keys():
1336-
if derived_val[var] is not None and intersection(derived_val[var], ds_1) == intersection(derived_val[var], ds_1):
1337-
derived_val[var] = intersection(derived_val[var], ds_1)
1337+
if derived_val[var] is not None and intersection(derived_val[var], ds_1) == intersection(derived_val[var], ds_2):
1338+
derived_val[var] = intersection(derived_val[var], ds_2)
13381339
safe_log(logger, "debug", f"Updated '{var}' in derived values: {derived_val[var]}")
13391340

13401341
# Generate the derived curve name
@@ -1362,7 +1363,10 @@ def _get_derived_points(self, series_val, indy_vals, axis="1"):
13621363
safe_log(logger, "debug", f"Derived values appended to result: {derived_val}")
13631364

13641365
# Flatten the result list and return it
1365-
flattened_result = [y for x in result for y in x]
1366+
flattened_result = []
1367+
for row in result:
1368+
flattened_result.extend(row)
1369+
13661370
safe_log(logger, "info", f"Derived points calculation completed. Total derived points: {len(flattened_result)}")
13671371

13681372
return flattened_result

metcalcpy/scorecard.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ def _get_derived_points(self, series_val, indy_vals):
520520
if derived_val[var] is not None \
521521
and intersection(derived_val[var], ds_1) \
522522
== intersection(derived_val[var], ds_1):
523-
derived_val[var] = intersection(derived_val[var], ds_1)
523+
derived_val[var] = intersection(derived_val[var], ds_2)
524524

525525
derived_curve_name = get_derived_curve_name(derived_serie)
526526
safe_log(logger, "debug", f"Derived curve name: {derived_curve_name}")

0 commit comments

Comments
 (0)