import json
"""
points and node...
doc z 的資料相較於 xy 不準確性太大了,所以算距離的時候,只考慮投影在 xy 上距離
補design doc
tick用 t 做,有時候會停下,沒辦法反映距離變化,
用 xyz 會是最理想的
我們使用 xy 因為 z 太不精準
"""
class Route():
def __init__(self, route_type, src_marker, geojson):
def read_src_marker(self):
# read src_marker
pass
def read_geojson(self):
pass
def export_geojson(self):
pass
def create_route(self):
# set up self.members
self.elev_geodata = elev_geodata
self.lon_geodata = lon_geodata
self.lat_geodata = lat_geodata
self.utc_geodata = utc_geodata
self.geodata_T = data_geojson_T
self.geodata = data_geojson
def set_node_info(self):
# set up self memebers related to self.node_list
pass
def gen_node_list_from_src_marker(self):
# set up self.node_list
pass
def update_node_list(self):
pass
def fetch_controlled_nodes(self, node2align_set):
control_nodes = []
pass
return control_nodes
def clear_controlled_points(self):
pass
def gen_GPS_dist_ticks():
# to be used in adjust_GPS
pass
def adjust_GPS(self, control_nodes):
pass
def adjust_elevation(self, control_nodes):
pass
@staticmethod
def dist_GPS_utm(gps1, gps2):
return dist
"""
k = 1
拿 k = 1, k+1
routes_k0 = []
routes_k1 = []
for route, rank in zip(routes, ranks):
if rank == k:
routes_k0.append(route)
....
"""
import numpy as np
from Route import Route
class AlignRoutes():
def __init__(self, routes,
main_route_idx,
geojson,
nodes=None):
# If source_marker is None, then generate nodes,
#routes_src_info
self.routes_src_info = routes_src_info
# combine create_routes_w_src_marker, wo_src_marker
def create_routes_w_src_marker(self):
# go throgh routes_src_info
# route.create_route() to create self.routes_list
# route.gen_node_list_from_src_marker()
# route.set_node_info()
pass
def create_routes_wo_src_marker(self):
# go through routes_list
# route.create_route()
# call self.node_detection() to set up node_list for each route
# route.set_node_info
def assign_rank(self):
# loop over route_list and assign rank for each route
# assign self.route_set
# report disconnected routes
def node2align_set(self, route_set):
# from nodes in route_set fetch unique node set
return node_set
def adjust_routes(self):
# go through self.route_set
# gen node_set with self.node2align_set()
# fetch_controlled_points
# adjust_GPS()
pass
def node_detection(self):
# go through self.routes_list and find nodes
# route.node_list will be set here
def align_routes_w_src_marker(self):
# main flow for align routes w src marker
def align_routes_wo_src_marker(self):
# main flow for align routes wo src marker