File tree Expand file tree Collapse file tree 1 file changed +5
-8
lines changed
Expand file tree Collapse file tree 1 file changed +5
-8
lines changed Original file line number Diff line number Diff line change 11import copy
2- import itertools
32import math
43import os
54import re
@@ -807,20 +806,18 @@ def get_variable_instance_closest_to_coordinates(self, coordinates):
807806
808807 def get_euclidean_distance (a , b ):
809808 # https://en.wikipedia.org/wiki/Euclidean_distance#Higher_dimensions
809+ keys = set (list (a .keys ()) + list (b .keys ()))
810810 return math .sqrt (
811- sum (
812- math .pow (abs (ab [0 ] - ab [1 ]), 2 )
813- for ab in list (itertools .zip_longest (a , b , fillvalue = 0 ))
814- )
811+ sum ([math .pow (a .get (key , 0 ) - b .get (key , 0 ), 2 ) for key in keys ])
815812 )
816813
817- lookup_values = coordinates . values ()
814+ lookup_values = coordinates
818815 instances = self .get_variable_instances ()
819816 closest_instance_distance = sys .maxsize
820817 closest_instance = None
821818 for instance in instances :
822- instance_values = instance ["coordinates" ]. values ()
823- instance_distance = get_euclidean_distance (lookup_values , instance_values )
819+ instance_values = instance ["coordinates" ]
820+ instance_distance = get_euclidean_distance (instance_values , lookup_values )
824821 if instance_distance < closest_instance_distance :
825822 closest_instance_distance = instance_distance
826823 closest_instance = instance
You can’t perform that action at this time.
0 commit comments