def classify(self, track_segment):
        past_name = None
        N = len(track_segment)
        length = 0
        for i in range(N - 1):
            start = track_segment[i]
            stop = track_segment[i + 1]
            if start.ele == None or stop.ele == None:
                return False
            tangens = Track.angle_from_points(None, start, stop,
                                              True) * 100  #проценты
            name_steepness = self.check_steepness_slopes(tangens)

            if name_steepness != past_name:
                if past_name is None:
                    past_name = name_steepness
                    continue

                if self.check_length_slopes(name_steepness, length):
                    self.add_steepness_one(name_steepness)

                length = 0
                past_name = name_steepness
            else:
                length += Track.distance_from_points(None, start, stop) * 1000
        return True
예제 #2
0
파일: tests.py 프로젝트: JohnTer/gpx-viewer
    def test_multi_list(self):
        benchmark_gpx = GPX()
        benchmark_gpx.track = Track()
        benchmark_gpx.set_describe("111")
        benchmark_gpx.set_name("test1")
        benchmark_gpx.set_time("1.01.2000")
        benchmark_gpxs = [benchmark_gpx]

        benchmark_gpx = GPX()
        benchmark_gpx.track = Track()
        benchmark_gpx.set_describe("222")
        benchmark_gpx.set_name("test2")
        benchmark_gpx.set_time("2.02.2000")

        benchmark_gpxs.append(benchmark_gpx)
        gpxs = None
        with open("restoretest2.pickle", 'rb') as f:
            gpxs = pickle.load(f)
        self.assertTrue(len(gpxs) == len(benchmark_gpxs))
        for i in range(len(gpxs)):
            self.assertTrue(gpxs[i] == benchmark_gpxs[i])
 def classify(self, track_segment):
     past_name = None
     N = len(track_segment)
     length = 0
     for i in range(N - 1):
         start = track_segment[i]
         stop = track_segment[i + 1]
         if start.ele == None or stop.ele == None:
             return False
         angle = Track.angle_from_points(None, start, stop)
         name_steepness = self.check_steepness_slopes(angle)
         if name_steepness != past_name:
             if past_name is None:
                 past_name = name_steepness
                 continue
             name_length = self.get_length_name(length)
             self.add_steepness_one(name_steepness, name_length)
             length = 0
             past_name = name_steepness
         else:
             length += Track.distance_from_points(None, start, stop) * 1000
     return True
예제 #4
0
파일: tests.py 프로젝트: JohnTer/gpx-viewer
    def test_single_list(self):
        benchmark_gpx = GPX()
        benchmark_gpx.track = Track()
        benchmark_gpx.set_describe("111")
        benchmark_gpx.set_name("test1")
        benchmark_gpx.set_time("1.01.2000")
        gpxs = None
        benchmark_gpxs = [benchmark_gpx]

        with open("restoretest1.pickle", 'rb') as f:
            gpxs = pickle.load(f)
        self.assertTrue(len(gpxs) == len(benchmark_gpxs))
        self.assertTrue(gpxs[0] == benchmark_gpxs[0])
예제 #5
0
파일: tests.py 프로젝트: JohnTer/gpx-viewer
 def __gen_gpx(self, data=None):
     if data is None:
         data = [
             self.__get_random_string(),
             randint(1, 1000),
             "%d.%d.%d" %
             (randint(1, 30), randint(1, 12), randint(1970, 2018))
         ]
     gp = GPX()
     gp.track = Track()
     gp.set_describe(data[0])
     gp.set_name(data[1])
     gp.set_time(data[2])
     return gp
예제 #6
0
    def add_gpx_clicked(self):

        data = self.add_gpx_core()
        if self.gpx_field_validator(data):
            self.stack_redo.clear()
            gp = GPX()
            gp.track = Track()
            gp.set_describe(data[1])
            gp.set_name(data[0])
            gp.set_time(data[2])
            N = self.presenter.get_gpx_row_number()
            command = AddCommandGPX(gp, self.gpxs, N)
            command.execute()
            self.presenter.update_gpx_table()
            self.stack_undo.append(command)
예제 #7
0
파일: tests.py 프로젝트: JohnTer/gpx-viewer
    def test_add_single_gpx(self, start_val=5):
        self.__setup(start_val)
        benchmark_data = deepcopy(self.gpxs)

        gp = GPX()
        gp.track = Track()
        gp.set_describe("Test1")
        gp.set_name("123")
        gp.set_time("1.01.1970")
        comm = AddCommandGPX(gp, self.gpxs, self.N)
        comm.execute()
        benchmark_data.append(deepcopy(gp))

        self.assertTrue(len(self.gpxs) == len(benchmark_data))
        for i in range(len(benchmark_data)):
            self.assertEqual(self.gpxs[i], benchmark_data[i])
예제 #8
0
    def classify_old(self, track_segment):
        past_category = 0
        N = len(track_segment)

        for i in range(N - 2):
            start = track_segment[i]
            medium = track_segment[i + 1]
            stop = track_segment[i + 2]
            angle = 180 - Track.turn_angle(None, start, medium, stop)
            curr_category = self.check_category(angle)

            if curr_category != past_category:
                if past_category is None:
                    past_category = curr_category
                    continue
                self.add_category_one(curr_category)
                past_category = curr_category
예제 #9
0
    def classify(self, track_segment):
        max_cat = -1
        past_category = -1
        N = len(track_segment)

        for i in range(N - 2):
            start = track_segment[i]
            medium = track_segment[i + 1]
            stop = track_segment[i + 2]
            angle = 180 - Track.turn_angle(None, start, medium, stop)
            curr_category = self.check_category(angle)

            max_cat = max(max_cat, curr_category)
            if curr_category == -1 and past_category != -1:
                self.add_category_one(max_cat)
                max_cat = -1
            past_category = curr_category
        return True