public static List <double[]> GetDtwPairingFeature(this List <Vertex> list, int inputScale = 1) { var xs = new List <double>(); var ys = new List <double>(); for (int i = 0, cnt = 0; i < list.Count; i++) { if (ScalePredicate(list, i, cnt, inputScale)) { xs.Add(list[i].PosF.X); ys.Add(list[i].PosF.Y); cnt = 0; } else { cnt++; } } int n = xs.Count; if (n != xs.Count || n != ys.Count) { throw new Exception(); } var directions = Translations.GetDirections(xs, ys); return(Translations.MergeLists(new List <double>[] { xs, ys, directions } )); }
public void Transform(Signature signature) { this.LogInformation("DirectionExtraction - transform started"); var xs = signature.GetFeature <List <double> >(InputX); var ys = signature.GetFeature <List <double> >(InputY); var directions = Translations.GetDirections(xs, ys); signature.SetFeature <List <double> >(OutputDirections, directions); this.LogInformation("DirectionExtraction - transform finished"); }