Ver código fonte

test paddle and some helper scripts

* convert-gps to convert between different gps formats. System uses 'concatentated'
  degree/decimal minute format
* create-test-paddle to create a test paddle with some gps coordinates for testing
  purposes
* paddle `6055.paddle` for testing (result of `create-test-paddle` script)
clementinecomputing 6 anos atrás
pai
commit
071a66057b
3 arquivos alterados com 627 adições e 0 exclusões
  1. 163 0
      aux/convert-gps
  2. 29 0
      aux/create-test-paddle
  3. 435 0
      busunit/testing/6055.paddle

+ 163 - 0
aux/convert-gps

@@ -0,0 +1,163 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2019 Clementine Computing LLC.
+# 
+# This file is part of PopuFare.
+# 
+# PopuFare is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# PopuFare is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+# 
+# You should have received a copy of the GNU Affero General Public License
+# along with PopuFare.  If not, see <https://www.gnu.org/licenses/>.
+#
+
+# Convert from/to different formats of GPS representations
+#
+# DD - decimal degree
+# DMS - degree/minut/second format
+# DMM - degree/decimal minute format
+#
+
+# 42.445512 -76.50726
+# 42.444988 -76.506852
+# 42.4444 -76.506444
+
+# DD  example: 42.445512
+# DMS example: 42 3 3
+# DMM example: 42 3.1
+
+import sys
+
+def print_usage(fp):
+  fp.write("\nusage:\n\n")
+  fp.write("  convert-gps [dd|dms|dmm|dmmc][-(dd|dms|dmm|dmmc)] <gps_coord>\n\n")
+
+
+infmt = ""
+outfmt = "dmmc"
+coord = ""
+
+
+def is_float(x):
+  f = False
+  try:
+    float(x)
+    f = True
+  except ValueError:
+    f = False
+  return f
+
+def guess_dd_dmmc(coord):
+  if not is_float(coord): return ""
+  tok = coord.split(".")
+  if len(tok) > 2 or len(tok)==0: return ""
+  tok_i = tok[0].split("-")
+
+  #print ">>", len(tok_i), tok_i[-1], len(tok_i[-1])
+
+  if len(tok_i[-1]) >= 3: return "dmmc"
+  return "dd"
+
+
+if (len(sys.argv) < 2):
+  print_usage(sys.stderr)
+  sys.exit(-1)
+
+
+start_idx = 1
+if not is_float(sys.argv[1]):
+  tok=sys.argv[1].split("-")
+  if len(tok)==1:
+    outfmt = tok[0]
+  else:
+    infmt = tok[0]
+    outfmt = tok[1]
+  start_idx = 2
+
+if ((outfmt != "dd") and (outfmt != "DD") and
+    (outfmt != "dms") and (outfmt != "DMS") and
+    (outfmt != "dmm") and (outfmt != "DMM") and
+    (outfmt != "dmmc") and (outfmt != "DMMC")):
+  sys.stderr.write("output format must be one of dd, dms, dmm, dmmc\n")
+  print_usage(sys.stderr)
+  sys.exit(-1)
+
+coord = []
+for val in sys.argv[start_idx:]:
+  coord.append(val)
+
+if len(coord) == 1:
+  if len(infmt) == 0:
+    infmt = guess_dd_dmmc(coord[0])
+elif len(coord) == 2:
+  if is_float(coord[0]) and is_float(coord[1]):
+    infmt = "dmm"
+elif len(coord) == 3:
+  if is_float(coord[0]) and is_float(coord[1]) and is_float(coord[2]):
+    infmt = "dms"
+
+if ((infmt != "dd") and (infmt != "DD") and
+    (infmt != "dms") and (infmt != "DMS") and
+    (infmt != "dmm") and (infmt != "DMM") and
+    (infmt != "dmmc") and (infmt != "DMMC")):
+  sys.stderr.write("input format must be one of dd, dms, dmm, dmmc\n")
+  print_usage(sys.stderr)
+  sys.exit(-1)
+
+out_coord_dd = 0.0
+if infmt == "dd":
+  out_coord_dd = float(coord[0])
+elif infmt == "dmm":
+  out_coord_dd = float(coord[0]) + (float(coord[1])/60.0)
+elif infmt == "dms":
+  out_coord_dd = float(coord[0]) + (float(coord[1])/60.0) + (float(coord[2])/(60.0*60.0))
+elif infmt == "dmmc":
+  x = coord[0]
+  is_neg = False
+  if x[0] == '-':
+    is_neg = True
+    x = x[1:]
+  tok = x.split(".")
+  min_int_part = 0.0
+  if len(tok[0][-2:])> 0:
+    min_int_part = float(tok[0][-2:])
+  min_rem_part = 0.0
+  if (len(tok)>1):
+    min_rem_part = float("0." + tok[1])
+  ipart = 0.0
+  if (len(tok[0][-4:-2])>0):
+    ipart = float(tok[0][-4:-2])
+  out_coord_dd = ipart + ((min_int_part + min_rem_part)/60.0)
+
+
+out_coord = []
+if outfmt == "dd":
+  out_coord = [str(out_coord_dd)]
+elif outfmt == "dms":
+  x0 = float(int(out_coord_dd))
+  x1 = float(int((out_coord_dd-x0)*60.0))
+  x2 = float(int( ((out_coord_dd-x0)*60.0) - ((x1-60.0)/60.0) ))
+  out_coord.append(str(x0))
+  out_coord.append(str(x1))
+  out_coord.append(str(x2))
+elif outfmt == "dmm":
+  x0 = float(int(out_coord_dd))
+  x1 = float(int((out_coord_dd-x0)*60.0))
+  out_coord.append(str(x0))
+  out_coord.append(str(x1))
+elif outfmt == "dmmc":
+  x0 = float(int(out_coord_dd))
+  x1 = abs(float((out_coord_dd-x0)*60.0))
+  out_coord.append(str(int(x0)) + str(x1))
+
+
+#print infmt, outfmt, coord, "-->", out_coord_dd, " ".join(out_coord)
+print " ".join(out_coord)
+

+ 29 - 0
aux/create-test-paddle

@@ -0,0 +1,29 @@
+#!/usr/bin/python
+
+# 42.445512 -76.50726
+# 42.444988 -76.506852
+# 42.4444 -76.506444
+
+paddle = 6055
+
+dmmc_coord = [ [ 4226.73072, -7630.4356 ],
+						   [ 4226.69928, -7630.41112],
+							 [ 4226.664, -7630.38664] ]
+
+dmmc_name = [ "test route top", "test route mid", "test route bottom" ]
+
+
+print "# Paddle", paddle, "(testing)"
+print "# coodinates in concatinated degree/decimal minute format (dmmc)"
+print "#", "\t".join(["hour", "minute", "latitude", "longitude", "route", "trip", "stop", "name"])
+
+idx=0
+for hour in range(24):
+  for minute in range(0,60,10):
+    trip = int(minute/10) + 1
+    for stop in range(1,4):
+      v = [str(hour), str(minute+stop), str(dmmc_coord[idx][0]), str(dmmc_coord[idx][1]), str(paddle), str(trip), str(stop), dmmc_name[idx]]
+      print "\t".join(v)
+      idx = (idx + 1) % len(dmmc_coord)
+
+

+ 435 - 0
busunit/testing/6055.paddle

@@ -0,0 +1,435 @@
+# Paddle 6055 (testing)
+# coodinates in concatinated degree/decimal minute format (dmmc)
+# hour	minute	latitude	longitude	route	trip	stop	name
+0	1	4226.73072	-7630.4356	6055	1	1	test route top
+0	2	4226.69928	-7630.41112	6055	1	2	test route mid
+0	3	4226.664	-7630.38664	6055	1	3	test route bottom
+0	11	4226.73072	-7630.4356	6055	2	1	test route top
+0	12	4226.69928	-7630.41112	6055	2	2	test route mid
+0	13	4226.664	-7630.38664	6055	2	3	test route bottom
+0	21	4226.73072	-7630.4356	6055	3	1	test route top
+0	22	4226.69928	-7630.41112	6055	3	2	test route mid
+0	23	4226.664	-7630.38664	6055	3	3	test route bottom
+0	31	4226.73072	-7630.4356	6055	4	1	test route top
+0	32	4226.69928	-7630.41112	6055	4	2	test route mid
+0	33	4226.664	-7630.38664	6055	4	3	test route bottom
+0	41	4226.73072	-7630.4356	6055	5	1	test route top
+0	42	4226.69928	-7630.41112	6055	5	2	test route mid
+0	43	4226.664	-7630.38664	6055	5	3	test route bottom
+0	51	4226.73072	-7630.4356	6055	6	1	test route top
+0	52	4226.69928	-7630.41112	6055	6	2	test route mid
+0	53	4226.664	-7630.38664	6055	6	3	test route bottom
+1	1	4226.73072	-7630.4356	6055	1	1	test route top
+1	2	4226.69928	-7630.41112	6055	1	2	test route mid
+1	3	4226.664	-7630.38664	6055	1	3	test route bottom
+1	11	4226.73072	-7630.4356	6055	2	1	test route top
+1	12	4226.69928	-7630.41112	6055	2	2	test route mid
+1	13	4226.664	-7630.38664	6055	2	3	test route bottom
+1	21	4226.73072	-7630.4356	6055	3	1	test route top
+1	22	4226.69928	-7630.41112	6055	3	2	test route mid
+1	23	4226.664	-7630.38664	6055	3	3	test route bottom
+1	31	4226.73072	-7630.4356	6055	4	1	test route top
+1	32	4226.69928	-7630.41112	6055	4	2	test route mid
+1	33	4226.664	-7630.38664	6055	4	3	test route bottom
+1	41	4226.73072	-7630.4356	6055	5	1	test route top
+1	42	4226.69928	-7630.41112	6055	5	2	test route mid
+1	43	4226.664	-7630.38664	6055	5	3	test route bottom
+1	51	4226.73072	-7630.4356	6055	6	1	test route top
+1	52	4226.69928	-7630.41112	6055	6	2	test route mid
+1	53	4226.664	-7630.38664	6055	6	3	test route bottom
+2	1	4226.73072	-7630.4356	6055	1	1	test route top
+2	2	4226.69928	-7630.41112	6055	1	2	test route mid
+2	3	4226.664	-7630.38664	6055	1	3	test route bottom
+2	11	4226.73072	-7630.4356	6055	2	1	test route top
+2	12	4226.69928	-7630.41112	6055	2	2	test route mid
+2	13	4226.664	-7630.38664	6055	2	3	test route bottom
+2	21	4226.73072	-7630.4356	6055	3	1	test route top
+2	22	4226.69928	-7630.41112	6055	3	2	test route mid
+2	23	4226.664	-7630.38664	6055	3	3	test route bottom
+2	31	4226.73072	-7630.4356	6055	4	1	test route top
+2	32	4226.69928	-7630.41112	6055	4	2	test route mid
+2	33	4226.664	-7630.38664	6055	4	3	test route bottom
+2	41	4226.73072	-7630.4356	6055	5	1	test route top
+2	42	4226.69928	-7630.41112	6055	5	2	test route mid
+2	43	4226.664	-7630.38664	6055	5	3	test route bottom
+2	51	4226.73072	-7630.4356	6055	6	1	test route top
+2	52	4226.69928	-7630.41112	6055	6	2	test route mid
+2	53	4226.664	-7630.38664	6055	6	3	test route bottom
+3	1	4226.73072	-7630.4356	6055	1	1	test route top
+3	2	4226.69928	-7630.41112	6055	1	2	test route mid
+3	3	4226.664	-7630.38664	6055	1	3	test route bottom
+3	11	4226.73072	-7630.4356	6055	2	1	test route top
+3	12	4226.69928	-7630.41112	6055	2	2	test route mid
+3	13	4226.664	-7630.38664	6055	2	3	test route bottom
+3	21	4226.73072	-7630.4356	6055	3	1	test route top
+3	22	4226.69928	-7630.41112	6055	3	2	test route mid
+3	23	4226.664	-7630.38664	6055	3	3	test route bottom
+3	31	4226.73072	-7630.4356	6055	4	1	test route top
+3	32	4226.69928	-7630.41112	6055	4	2	test route mid
+3	33	4226.664	-7630.38664	6055	4	3	test route bottom
+3	41	4226.73072	-7630.4356	6055	5	1	test route top
+3	42	4226.69928	-7630.41112	6055	5	2	test route mid
+3	43	4226.664	-7630.38664	6055	5	3	test route bottom
+3	51	4226.73072	-7630.4356	6055	6	1	test route top
+3	52	4226.69928	-7630.41112	6055	6	2	test route mid
+3	53	4226.664	-7630.38664	6055	6	3	test route bottom
+4	1	4226.73072	-7630.4356	6055	1	1	test route top
+4	2	4226.69928	-7630.41112	6055	1	2	test route mid
+4	3	4226.664	-7630.38664	6055	1	3	test route bottom
+4	11	4226.73072	-7630.4356	6055	2	1	test route top
+4	12	4226.69928	-7630.41112	6055	2	2	test route mid
+4	13	4226.664	-7630.38664	6055	2	3	test route bottom
+4	21	4226.73072	-7630.4356	6055	3	1	test route top
+4	22	4226.69928	-7630.41112	6055	3	2	test route mid
+4	23	4226.664	-7630.38664	6055	3	3	test route bottom
+4	31	4226.73072	-7630.4356	6055	4	1	test route top
+4	32	4226.69928	-7630.41112	6055	4	2	test route mid
+4	33	4226.664	-7630.38664	6055	4	3	test route bottom
+4	41	4226.73072	-7630.4356	6055	5	1	test route top
+4	42	4226.69928	-7630.41112	6055	5	2	test route mid
+4	43	4226.664	-7630.38664	6055	5	3	test route bottom
+4	51	4226.73072	-7630.4356	6055	6	1	test route top
+4	52	4226.69928	-7630.41112	6055	6	2	test route mid
+4	53	4226.664	-7630.38664	6055	6	3	test route bottom
+5	1	4226.73072	-7630.4356	6055	1	1	test route top
+5	2	4226.69928	-7630.41112	6055	1	2	test route mid
+5	3	4226.664	-7630.38664	6055	1	3	test route bottom
+5	11	4226.73072	-7630.4356	6055	2	1	test route top
+5	12	4226.69928	-7630.41112	6055	2	2	test route mid
+5	13	4226.664	-7630.38664	6055	2	3	test route bottom
+5	21	4226.73072	-7630.4356	6055	3	1	test route top
+5	22	4226.69928	-7630.41112	6055	3	2	test route mid
+5	23	4226.664	-7630.38664	6055	3	3	test route bottom
+5	31	4226.73072	-7630.4356	6055	4	1	test route top
+5	32	4226.69928	-7630.41112	6055	4	2	test route mid
+5	33	4226.664	-7630.38664	6055	4	3	test route bottom
+5	41	4226.73072	-7630.4356	6055	5	1	test route top
+5	42	4226.69928	-7630.41112	6055	5	2	test route mid
+5	43	4226.664	-7630.38664	6055	5	3	test route bottom
+5	51	4226.73072	-7630.4356	6055	6	1	test route top
+5	52	4226.69928	-7630.41112	6055	6	2	test route mid
+5	53	4226.664	-7630.38664	6055	6	3	test route bottom
+6	1	4226.73072	-7630.4356	6055	1	1	test route top
+6	2	4226.69928	-7630.41112	6055	1	2	test route mid
+6	3	4226.664	-7630.38664	6055	1	3	test route bottom
+6	11	4226.73072	-7630.4356	6055	2	1	test route top
+6	12	4226.69928	-7630.41112	6055	2	2	test route mid
+6	13	4226.664	-7630.38664	6055	2	3	test route bottom
+6	21	4226.73072	-7630.4356	6055	3	1	test route top
+6	22	4226.69928	-7630.41112	6055	3	2	test route mid
+6	23	4226.664	-7630.38664	6055	3	3	test route bottom
+6	31	4226.73072	-7630.4356	6055	4	1	test route top
+6	32	4226.69928	-7630.41112	6055	4	2	test route mid
+6	33	4226.664	-7630.38664	6055	4	3	test route bottom
+6	41	4226.73072	-7630.4356	6055	5	1	test route top
+6	42	4226.69928	-7630.41112	6055	5	2	test route mid
+6	43	4226.664	-7630.38664	6055	5	3	test route bottom
+6	51	4226.73072	-7630.4356	6055	6	1	test route top
+6	52	4226.69928	-7630.41112	6055	6	2	test route mid
+6	53	4226.664	-7630.38664	6055	6	3	test route bottom
+7	1	4226.73072	-7630.4356	6055	1	1	test route top
+7	2	4226.69928	-7630.41112	6055	1	2	test route mid
+7	3	4226.664	-7630.38664	6055	1	3	test route bottom
+7	11	4226.73072	-7630.4356	6055	2	1	test route top
+7	12	4226.69928	-7630.41112	6055	2	2	test route mid
+7	13	4226.664	-7630.38664	6055	2	3	test route bottom
+7	21	4226.73072	-7630.4356	6055	3	1	test route top
+7	22	4226.69928	-7630.41112	6055	3	2	test route mid
+7	23	4226.664	-7630.38664	6055	3	3	test route bottom
+7	31	4226.73072	-7630.4356	6055	4	1	test route top
+7	32	4226.69928	-7630.41112	6055	4	2	test route mid
+7	33	4226.664	-7630.38664	6055	4	3	test route bottom
+7	41	4226.73072	-7630.4356	6055	5	1	test route top
+7	42	4226.69928	-7630.41112	6055	5	2	test route mid
+7	43	4226.664	-7630.38664	6055	5	3	test route bottom
+7	51	4226.73072	-7630.4356	6055	6	1	test route top
+7	52	4226.69928	-7630.41112	6055	6	2	test route mid
+7	53	4226.664	-7630.38664	6055	6	3	test route bottom
+8	1	4226.73072	-7630.4356	6055	1	1	test route top
+8	2	4226.69928	-7630.41112	6055	1	2	test route mid
+8	3	4226.664	-7630.38664	6055	1	3	test route bottom
+8	11	4226.73072	-7630.4356	6055	2	1	test route top
+8	12	4226.69928	-7630.41112	6055	2	2	test route mid
+8	13	4226.664	-7630.38664	6055	2	3	test route bottom
+8	21	4226.73072	-7630.4356	6055	3	1	test route top
+8	22	4226.69928	-7630.41112	6055	3	2	test route mid
+8	23	4226.664	-7630.38664	6055	3	3	test route bottom
+8	31	4226.73072	-7630.4356	6055	4	1	test route top
+8	32	4226.69928	-7630.41112	6055	4	2	test route mid
+8	33	4226.664	-7630.38664	6055	4	3	test route bottom
+8	41	4226.73072	-7630.4356	6055	5	1	test route top
+8	42	4226.69928	-7630.41112	6055	5	2	test route mid
+8	43	4226.664	-7630.38664	6055	5	3	test route bottom
+8	51	4226.73072	-7630.4356	6055	6	1	test route top
+8	52	4226.69928	-7630.41112	6055	6	2	test route mid
+8	53	4226.664	-7630.38664	6055	6	3	test route bottom
+9	1	4226.73072	-7630.4356	6055	1	1	test route top
+9	2	4226.69928	-7630.41112	6055	1	2	test route mid
+9	3	4226.664	-7630.38664	6055	1	3	test route bottom
+9	11	4226.73072	-7630.4356	6055	2	1	test route top
+9	12	4226.69928	-7630.41112	6055	2	2	test route mid
+9	13	4226.664	-7630.38664	6055	2	3	test route bottom
+9	21	4226.73072	-7630.4356	6055	3	1	test route top
+9	22	4226.69928	-7630.41112	6055	3	2	test route mid
+9	23	4226.664	-7630.38664	6055	3	3	test route bottom
+9	31	4226.73072	-7630.4356	6055	4	1	test route top
+9	32	4226.69928	-7630.41112	6055	4	2	test route mid
+9	33	4226.664	-7630.38664	6055	4	3	test route bottom
+9	41	4226.73072	-7630.4356	6055	5	1	test route top
+9	42	4226.69928	-7630.41112	6055	5	2	test route mid
+9	43	4226.664	-7630.38664	6055	5	3	test route bottom
+9	51	4226.73072	-7630.4356	6055	6	1	test route top
+9	52	4226.69928	-7630.41112	6055	6	2	test route mid
+9	53	4226.664	-7630.38664	6055	6	3	test route bottom
+10	1	4226.73072	-7630.4356	6055	1	1	test route top
+10	2	4226.69928	-7630.41112	6055	1	2	test route mid
+10	3	4226.664	-7630.38664	6055	1	3	test route bottom
+10	11	4226.73072	-7630.4356	6055	2	1	test route top
+10	12	4226.69928	-7630.41112	6055	2	2	test route mid
+10	13	4226.664	-7630.38664	6055	2	3	test route bottom
+10	21	4226.73072	-7630.4356	6055	3	1	test route top
+10	22	4226.69928	-7630.41112	6055	3	2	test route mid
+10	23	4226.664	-7630.38664	6055	3	3	test route bottom
+10	31	4226.73072	-7630.4356	6055	4	1	test route top
+10	32	4226.69928	-7630.41112	6055	4	2	test route mid
+10	33	4226.664	-7630.38664	6055	4	3	test route bottom
+10	41	4226.73072	-7630.4356	6055	5	1	test route top
+10	42	4226.69928	-7630.41112	6055	5	2	test route mid
+10	43	4226.664	-7630.38664	6055	5	3	test route bottom
+10	51	4226.73072	-7630.4356	6055	6	1	test route top
+10	52	4226.69928	-7630.41112	6055	6	2	test route mid
+10	53	4226.664	-7630.38664	6055	6	3	test route bottom
+11	1	4226.73072	-7630.4356	6055	1	1	test route top
+11	2	4226.69928	-7630.41112	6055	1	2	test route mid
+11	3	4226.664	-7630.38664	6055	1	3	test route bottom
+11	11	4226.73072	-7630.4356	6055	2	1	test route top
+11	12	4226.69928	-7630.41112	6055	2	2	test route mid
+11	13	4226.664	-7630.38664	6055	2	3	test route bottom
+11	21	4226.73072	-7630.4356	6055	3	1	test route top
+11	22	4226.69928	-7630.41112	6055	3	2	test route mid
+11	23	4226.664	-7630.38664	6055	3	3	test route bottom
+11	31	4226.73072	-7630.4356	6055	4	1	test route top
+11	32	4226.69928	-7630.41112	6055	4	2	test route mid
+11	33	4226.664	-7630.38664	6055	4	3	test route bottom
+11	41	4226.73072	-7630.4356	6055	5	1	test route top
+11	42	4226.69928	-7630.41112	6055	5	2	test route mid
+11	43	4226.664	-7630.38664	6055	5	3	test route bottom
+11	51	4226.73072	-7630.4356	6055	6	1	test route top
+11	52	4226.69928	-7630.41112	6055	6	2	test route mid
+11	53	4226.664	-7630.38664	6055	6	3	test route bottom
+12	1	4226.73072	-7630.4356	6055	1	1	test route top
+12	2	4226.69928	-7630.41112	6055	1	2	test route mid
+12	3	4226.664	-7630.38664	6055	1	3	test route bottom
+12	11	4226.73072	-7630.4356	6055	2	1	test route top
+12	12	4226.69928	-7630.41112	6055	2	2	test route mid
+12	13	4226.664	-7630.38664	6055	2	3	test route bottom
+12	21	4226.73072	-7630.4356	6055	3	1	test route top
+12	22	4226.69928	-7630.41112	6055	3	2	test route mid
+12	23	4226.664	-7630.38664	6055	3	3	test route bottom
+12	31	4226.73072	-7630.4356	6055	4	1	test route top
+12	32	4226.69928	-7630.41112	6055	4	2	test route mid
+12	33	4226.664	-7630.38664	6055	4	3	test route bottom
+12	41	4226.73072	-7630.4356	6055	5	1	test route top
+12	42	4226.69928	-7630.41112	6055	5	2	test route mid
+12	43	4226.664	-7630.38664	6055	5	3	test route bottom
+12	51	4226.73072	-7630.4356	6055	6	1	test route top
+12	52	4226.69928	-7630.41112	6055	6	2	test route mid
+12	53	4226.664	-7630.38664	6055	6	3	test route bottom
+13	1	4226.73072	-7630.4356	6055	1	1	test route top
+13	2	4226.69928	-7630.41112	6055	1	2	test route mid
+13	3	4226.664	-7630.38664	6055	1	3	test route bottom
+13	11	4226.73072	-7630.4356	6055	2	1	test route top
+13	12	4226.69928	-7630.41112	6055	2	2	test route mid
+13	13	4226.664	-7630.38664	6055	2	3	test route bottom
+13	21	4226.73072	-7630.4356	6055	3	1	test route top
+13	22	4226.69928	-7630.41112	6055	3	2	test route mid
+13	23	4226.664	-7630.38664	6055	3	3	test route bottom
+13	31	4226.73072	-7630.4356	6055	4	1	test route top
+13	32	4226.69928	-7630.41112	6055	4	2	test route mid
+13	33	4226.664	-7630.38664	6055	4	3	test route bottom
+13	41	4226.73072	-7630.4356	6055	5	1	test route top
+13	42	4226.69928	-7630.41112	6055	5	2	test route mid
+13	43	4226.664	-7630.38664	6055	5	3	test route bottom
+13	51	4226.73072	-7630.4356	6055	6	1	test route top
+13	52	4226.69928	-7630.41112	6055	6	2	test route mid
+13	53	4226.664	-7630.38664	6055	6	3	test route bottom
+14	1	4226.73072	-7630.4356	6055	1	1	test route top
+14	2	4226.69928	-7630.41112	6055	1	2	test route mid
+14	3	4226.664	-7630.38664	6055	1	3	test route bottom
+14	11	4226.73072	-7630.4356	6055	2	1	test route top
+14	12	4226.69928	-7630.41112	6055	2	2	test route mid
+14	13	4226.664	-7630.38664	6055	2	3	test route bottom
+14	21	4226.73072	-7630.4356	6055	3	1	test route top
+14	22	4226.69928	-7630.41112	6055	3	2	test route mid
+14	23	4226.664	-7630.38664	6055	3	3	test route bottom
+14	31	4226.73072	-7630.4356	6055	4	1	test route top
+14	32	4226.69928	-7630.41112	6055	4	2	test route mid
+14	33	4226.664	-7630.38664	6055	4	3	test route bottom
+14	41	4226.73072	-7630.4356	6055	5	1	test route top
+14	42	4226.69928	-7630.41112	6055	5	2	test route mid
+14	43	4226.664	-7630.38664	6055	5	3	test route bottom
+14	51	4226.73072	-7630.4356	6055	6	1	test route top
+14	52	4226.69928	-7630.41112	6055	6	2	test route mid
+14	53	4226.664	-7630.38664	6055	6	3	test route bottom
+15	1	4226.73072	-7630.4356	6055	1	1	test route top
+15	2	4226.69928	-7630.41112	6055	1	2	test route mid
+15	3	4226.664	-7630.38664	6055	1	3	test route bottom
+15	11	4226.73072	-7630.4356	6055	2	1	test route top
+15	12	4226.69928	-7630.41112	6055	2	2	test route mid
+15	13	4226.664	-7630.38664	6055	2	3	test route bottom
+15	21	4226.73072	-7630.4356	6055	3	1	test route top
+15	22	4226.69928	-7630.41112	6055	3	2	test route mid
+15	23	4226.664	-7630.38664	6055	3	3	test route bottom
+15	31	4226.73072	-7630.4356	6055	4	1	test route top
+15	32	4226.69928	-7630.41112	6055	4	2	test route mid
+15	33	4226.664	-7630.38664	6055	4	3	test route bottom
+15	41	4226.73072	-7630.4356	6055	5	1	test route top
+15	42	4226.69928	-7630.41112	6055	5	2	test route mid
+15	43	4226.664	-7630.38664	6055	5	3	test route bottom
+15	51	4226.73072	-7630.4356	6055	6	1	test route top
+15	52	4226.69928	-7630.41112	6055	6	2	test route mid
+15	53	4226.664	-7630.38664	6055	6	3	test route bottom
+16	1	4226.73072	-7630.4356	6055	1	1	test route top
+16	2	4226.69928	-7630.41112	6055	1	2	test route mid
+16	3	4226.664	-7630.38664	6055	1	3	test route bottom
+16	11	4226.73072	-7630.4356	6055	2	1	test route top
+16	12	4226.69928	-7630.41112	6055	2	2	test route mid
+16	13	4226.664	-7630.38664	6055	2	3	test route bottom
+16	21	4226.73072	-7630.4356	6055	3	1	test route top
+16	22	4226.69928	-7630.41112	6055	3	2	test route mid
+16	23	4226.664	-7630.38664	6055	3	3	test route bottom
+16	31	4226.73072	-7630.4356	6055	4	1	test route top
+16	32	4226.69928	-7630.41112	6055	4	2	test route mid
+16	33	4226.664	-7630.38664	6055	4	3	test route bottom
+16	41	4226.73072	-7630.4356	6055	5	1	test route top
+16	42	4226.69928	-7630.41112	6055	5	2	test route mid
+16	43	4226.664	-7630.38664	6055	5	3	test route bottom
+16	51	4226.73072	-7630.4356	6055	6	1	test route top
+16	52	4226.69928	-7630.41112	6055	6	2	test route mid
+16	53	4226.664	-7630.38664	6055	6	3	test route bottom
+17	1	4226.73072	-7630.4356	6055	1	1	test route top
+17	2	4226.69928	-7630.41112	6055	1	2	test route mid
+17	3	4226.664	-7630.38664	6055	1	3	test route bottom
+17	11	4226.73072	-7630.4356	6055	2	1	test route top
+17	12	4226.69928	-7630.41112	6055	2	2	test route mid
+17	13	4226.664	-7630.38664	6055	2	3	test route bottom
+17	21	4226.73072	-7630.4356	6055	3	1	test route top
+17	22	4226.69928	-7630.41112	6055	3	2	test route mid
+17	23	4226.664	-7630.38664	6055	3	3	test route bottom
+17	31	4226.73072	-7630.4356	6055	4	1	test route top
+17	32	4226.69928	-7630.41112	6055	4	2	test route mid
+17	33	4226.664	-7630.38664	6055	4	3	test route bottom
+17	41	4226.73072	-7630.4356	6055	5	1	test route top
+17	42	4226.69928	-7630.41112	6055	5	2	test route mid
+17	43	4226.664	-7630.38664	6055	5	3	test route bottom
+17	51	4226.73072	-7630.4356	6055	6	1	test route top
+17	52	4226.69928	-7630.41112	6055	6	2	test route mid
+17	53	4226.664	-7630.38664	6055	6	3	test route bottom
+18	1	4226.73072	-7630.4356	6055	1	1	test route top
+18	2	4226.69928	-7630.41112	6055	1	2	test route mid
+18	3	4226.664	-7630.38664	6055	1	3	test route bottom
+18	11	4226.73072	-7630.4356	6055	2	1	test route top
+18	12	4226.69928	-7630.41112	6055	2	2	test route mid
+18	13	4226.664	-7630.38664	6055	2	3	test route bottom
+18	21	4226.73072	-7630.4356	6055	3	1	test route top
+18	22	4226.69928	-7630.41112	6055	3	2	test route mid
+18	23	4226.664	-7630.38664	6055	3	3	test route bottom
+18	31	4226.73072	-7630.4356	6055	4	1	test route top
+18	32	4226.69928	-7630.41112	6055	4	2	test route mid
+18	33	4226.664	-7630.38664	6055	4	3	test route bottom
+18	41	4226.73072	-7630.4356	6055	5	1	test route top
+18	42	4226.69928	-7630.41112	6055	5	2	test route mid
+18	43	4226.664	-7630.38664	6055	5	3	test route bottom
+18	51	4226.73072	-7630.4356	6055	6	1	test route top
+18	52	4226.69928	-7630.41112	6055	6	2	test route mid
+18	53	4226.664	-7630.38664	6055	6	3	test route bottom
+19	1	4226.73072	-7630.4356	6055	1	1	test route top
+19	2	4226.69928	-7630.41112	6055	1	2	test route mid
+19	3	4226.664	-7630.38664	6055	1	3	test route bottom
+19	11	4226.73072	-7630.4356	6055	2	1	test route top
+19	12	4226.69928	-7630.41112	6055	2	2	test route mid
+19	13	4226.664	-7630.38664	6055	2	3	test route bottom
+19	21	4226.73072	-7630.4356	6055	3	1	test route top
+19	22	4226.69928	-7630.41112	6055	3	2	test route mid
+19	23	4226.664	-7630.38664	6055	3	3	test route bottom
+19	31	4226.73072	-7630.4356	6055	4	1	test route top
+19	32	4226.69928	-7630.41112	6055	4	2	test route mid
+19	33	4226.664	-7630.38664	6055	4	3	test route bottom
+19	41	4226.73072	-7630.4356	6055	5	1	test route top
+19	42	4226.69928	-7630.41112	6055	5	2	test route mid
+19	43	4226.664	-7630.38664	6055	5	3	test route bottom
+19	51	4226.73072	-7630.4356	6055	6	1	test route top
+19	52	4226.69928	-7630.41112	6055	6	2	test route mid
+19	53	4226.664	-7630.38664	6055	6	3	test route bottom
+20	1	4226.73072	-7630.4356	6055	1	1	test route top
+20	2	4226.69928	-7630.41112	6055	1	2	test route mid
+20	3	4226.664	-7630.38664	6055	1	3	test route bottom
+20	11	4226.73072	-7630.4356	6055	2	1	test route top
+20	12	4226.69928	-7630.41112	6055	2	2	test route mid
+20	13	4226.664	-7630.38664	6055	2	3	test route bottom
+20	21	4226.73072	-7630.4356	6055	3	1	test route top
+20	22	4226.69928	-7630.41112	6055	3	2	test route mid
+20	23	4226.664	-7630.38664	6055	3	3	test route bottom
+20	31	4226.73072	-7630.4356	6055	4	1	test route top
+20	32	4226.69928	-7630.41112	6055	4	2	test route mid
+20	33	4226.664	-7630.38664	6055	4	3	test route bottom
+20	41	4226.73072	-7630.4356	6055	5	1	test route top
+20	42	4226.69928	-7630.41112	6055	5	2	test route mid
+20	43	4226.664	-7630.38664	6055	5	3	test route bottom
+20	51	4226.73072	-7630.4356	6055	6	1	test route top
+20	52	4226.69928	-7630.41112	6055	6	2	test route mid
+20	53	4226.664	-7630.38664	6055	6	3	test route bottom
+21	1	4226.73072	-7630.4356	6055	1	1	test route top
+21	2	4226.69928	-7630.41112	6055	1	2	test route mid
+21	3	4226.664	-7630.38664	6055	1	3	test route bottom
+21	11	4226.73072	-7630.4356	6055	2	1	test route top
+21	12	4226.69928	-7630.41112	6055	2	2	test route mid
+21	13	4226.664	-7630.38664	6055	2	3	test route bottom
+21	21	4226.73072	-7630.4356	6055	3	1	test route top
+21	22	4226.69928	-7630.41112	6055	3	2	test route mid
+21	23	4226.664	-7630.38664	6055	3	3	test route bottom
+21	31	4226.73072	-7630.4356	6055	4	1	test route top
+21	32	4226.69928	-7630.41112	6055	4	2	test route mid
+21	33	4226.664	-7630.38664	6055	4	3	test route bottom
+21	41	4226.73072	-7630.4356	6055	5	1	test route top
+21	42	4226.69928	-7630.41112	6055	5	2	test route mid
+21	43	4226.664	-7630.38664	6055	5	3	test route bottom
+21	51	4226.73072	-7630.4356	6055	6	1	test route top
+21	52	4226.69928	-7630.41112	6055	6	2	test route mid
+21	53	4226.664	-7630.38664	6055	6	3	test route bottom
+22	1	4226.73072	-7630.4356	6055	1	1	test route top
+22	2	4226.69928	-7630.41112	6055	1	2	test route mid
+22	3	4226.664	-7630.38664	6055	1	3	test route bottom
+22	11	4226.73072	-7630.4356	6055	2	1	test route top
+22	12	4226.69928	-7630.41112	6055	2	2	test route mid
+22	13	4226.664	-7630.38664	6055	2	3	test route bottom
+22	21	4226.73072	-7630.4356	6055	3	1	test route top
+22	22	4226.69928	-7630.41112	6055	3	2	test route mid
+22	23	4226.664	-7630.38664	6055	3	3	test route bottom
+22	31	4226.73072	-7630.4356	6055	4	1	test route top
+22	32	4226.69928	-7630.41112	6055	4	2	test route mid
+22	33	4226.664	-7630.38664	6055	4	3	test route bottom
+22	41	4226.73072	-7630.4356	6055	5	1	test route top
+22	42	4226.69928	-7630.41112	6055	5	2	test route mid
+22	43	4226.664	-7630.38664	6055	5	3	test route bottom
+22	51	4226.73072	-7630.4356	6055	6	1	test route top
+22	52	4226.69928	-7630.41112	6055	6	2	test route mid
+22	53	4226.664	-7630.38664	6055	6	3	test route bottom
+23	1	4226.73072	-7630.4356	6055	1	1	test route top
+23	2	4226.69928	-7630.41112	6055	1	2	test route mid
+23	3	4226.664	-7630.38664	6055	1	3	test route bottom
+23	11	4226.73072	-7630.4356	6055	2	1	test route top
+23	12	4226.69928	-7630.41112	6055	2	2	test route mid
+23	13	4226.664	-7630.38664	6055	2	3	test route bottom
+23	21	4226.73072	-7630.4356	6055	3	1	test route top
+23	22	4226.69928	-7630.41112	6055	3	2	test route mid
+23	23	4226.664	-7630.38664	6055	3	3	test route bottom
+23	31	4226.73072	-7630.4356	6055	4	1	test route top
+23	32	4226.69928	-7630.41112	6055	4	2	test route mid
+23	33	4226.664	-7630.38664	6055	4	3	test route bottom
+23	41	4226.73072	-7630.4356	6055	5	1	test route top
+23	42	4226.69928	-7630.41112	6055	5	2	test route mid
+23	43	4226.664	-7630.38664	6055	5	3	test route bottom
+23	51	4226.73072	-7630.4356	6055	6	1	test route top
+23	52	4226.69928	-7630.41112	6055	6	2	test route mid
+23	53	4226.664	-7630.38664	6055	6	3	test route bottom