diff --git a/python/parseTCX.py b/python/parseTCX.py index e69de29..daa9e40 100644 --- a/python/parseTCX.py +++ b/python/parseTCX.py @@ -0,0 +1,83 @@ + +from bs4 import BeautifulSoup + +import glob +import os.path + +def parseTCX(filename): + file = open(filename) + + xml_file = file.read() + + soup = BeautifulSoup(xml_file, 'lxml') + + id = soup.find("id").text + + lats = [] + longs = [] + + for tag in soup.find_all("trackpoint"): + lats.append(tag.find("latitudedegrees").text) + longs.append(tag.find("longitudedegrees").text) + + return id[:-10], lats, longs + + +def single_run(id, lats, longs): + locString = "" + for i in range(0, len(lats)): + locString += longs[i] + "," + lats[i] + " " + value = """ + + {0} + xx Miles + + + 1 + clampToGround + {1} + + + """ + + return value.format(id, locString) + +def convertToKML(): + base_path = os.path.dirname(os.path.realpath(__file__)) + files = glob.glob(base_path + "/tcx/*.tcx") + + header = """ + + + + 1 + 1 + + Tracks + 1 + 0 + """ + footer = """ + + + + """ + + o_file = open("outputKML.kml", "w") + + o_file.write(header) + + for file in files: + id, lats, longs = parseTCX(file) + o_file.write(single_run(id, lats, longs)) + print(files) + + o_file.write(footer) + o_file.close() + +convertToKML() \ No newline at end of file