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
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
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])
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
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)
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])
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
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