1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| # -*- coding: utf-8 -*-
"""
Created on Sat Nov 5 23:01:26 2016
@author: Remy
"""
import pandas
import matplotlib.pyplot as plt
import numpy as numpy
from lxml import etree
lignes = []
def parseXML(xmlFile, ns):
"Parse the xml"
tree = etree.parse(xmlFile)
root = tree.getroot()
for elem in root.iter(ns+'Sample'):
try:
UTCtime = elem.findtext(ns+'UTC')
except ValueError:
print('Erreur')
try:
time = float(elem.findtext(ns+'Time'))
except ValueError:
print('Erreur')
try:
latitude = elem.findtext(ns+'Latitude')
except ValueError:
print('Erreur')
try:
longitude = elem.findtext(ns+'Longitude')
except ValueError:
print('Erreur')
try:
distance = elem.findtext(ns+'Distance')
except ValueError:
print('Erreur')
try:
speed = elem.findtext(ns+'Speed')
except ValueError:
print('Erreur')
try:
cadence = elem.findtext(ns+'Cadence')
except ValueError:
print('Erreur')
try:
altitude = elem.findtext(ns+'Altitude')
except ValueError:
print('Erreur')
try:
gpsaltitude = elem.findtext(ns+'GPSaltitude')
except ValueError:
print('Erreur')
try:
heartrate = elem.findtext(ns+'HR')
except ValueError:
print('Erreur')
try:
energy = elem.findtext(ns+'EnergyConsumption')
except ValueError:
print('Erreur')
try:
temperature = elem.findtext(ns+'Temperature')
except ValueError:
print('Erreur')
ligne = (UTCtime, time, latitude, longitude, distance, speed, cadence, altitude, gpsaltitude, heartrate, energy, temperature)
lignes.append(ligne)
def main():
"Programme principal"
global df
namespace = '{http://www.suunto.com/schemas/sml}'
parseXML("D9F698461C000D00-2016-09-24T09_59_45-0.sml", namespace)
colonnes = ['UTCtime', 'time', 'latitude', 'longitude', 'distance', 'speed', 'cadence', 'altitude', 'gpsaltitude', 'heartrate', 'energy', 'temperature']
df = pandas.DataFrame(data = lignes, columns = colonnes)
df.fillna(value=numpy.nan, inplace=True)
print(df['longitude'], df['latitude'])
if __name__ == "__main__":
main() |