Пример #1
0
    def create_zerostop_truetangents_cl(self):
        tmp_table = [[[0] for i in range(self.n_data)] for j in range(self.n_data)]
        curve_tangents = segment_fitting.tangents_of_curve(self.curve)

        cols = []
        col_index = 0
        n_i, n_j = self.curve.shape
        n = n_j

        inds_a = []
        inds_b = []
        inds_c = []
        fill_cell = []

        if self.verbose: print "-" * (self.n_data - 1)
        for s in range(self.n_data - 1):
            if self.verbose:
                sys.stdout.write("#")
            for e in range(s + 1, self.n_data):
                if s == e:
                    continue
                if abs(e - s) == 1:
                    continue
                else:
                    seg = make_seg.true_tangents( self.curve[s:e+1]
                                                , curve_tangents[s:e+1]
                                                , self.res )

                    a_p = seg.n_curve_interps(30)
                    b_p = seg.n_sampling(30)
                    # print a_p[:10]
                    # print a_b[:10]
                    # raise "hi"

                    for i in range(len(a_p)):
                        cols += a_p[i].tolist()
                        inds_a.append(col_index); col_index += 1
                        cols += b_p[i].tolist()
                        inds_b.append(col_index); col_index += 1
                        inds_c.append(0)
                        fill_cell.append((s, e))
        if self.verbose: print ""


        results = gg.gogo("dist_many.cl", n, cols, inds_a, inds_b, inds_c)
        for i in range(len(fill_cell)):
            s, e = fill_cell[i]
            tmp_table[s][e].append(results[i])

        self.zero_table = [[-1 for i in range(self.n_data)] for j in range(self.n_data)]
        for i in range(self.n_data):
            for j in range(self.n_data):
                self.zero_table[i][j] = sum(tmp_table[i][j])
Пример #2
0
    def create_zerostop_maxperp_cl(self):
        tmp_table = [[[0] for i in range(self.n_data)] for j in range(self.n_data)]
        cols = []
        n_i, n_j = self.curve.shape
        for i in range(n_i):
            for j in range(n_j):
                cols.append(self.curve.item(i, j))

        n = n_j
        print n
        inds_a = []
        inds_b = []
        inds_c = []
        fill_cell = []

        if self.verbose: print "-" * (self.n_data - 1)
        for s in range(self.n_data - 1):
            if self.verbose:
                sys.stdout.write("#")
            for e in range(s + 1, self.n_data):
                if s == e:
                    continue
                if abs(s - e) == 1:
                    continue
                else:
                    for i in range(s+1, e):
                        inds_a.append(s)
                        inds_b.append(i)
                        inds_c.append(e)
                        fill_cell.append((s, e))
        if self.verbose: print ""


        results = gg.gogo("dist_perp.cl", n, cols, inds_a, inds_b, inds_c)
        for i in range(len(fill_cell)):
            s, e = fill_cell[i]
            tmp_table[s][e].append(results[i])

        self.zero_table = [[-1 for i in range(self.n_data)] for j in range(self.n_data)]
        for i in range(self.n_data):
            for j in range(self.n_data):
                self.zero_table[i][j] = max(tmp_table[i][j])