Des fonctions pour importer des données issues d’un pointage vidéo.

1 – De nouvelles solutions de pointage avec un export direct des données.

Nous disposons aujourd’hui de nouvelles solution de pointage de vidéos en mécanique. Elle permettent notamment une exportation directe des données (t, x, y …) issues du pointage sous forme de structures de données directement lisibles par Python. Plus besoin d’exporter au format csv ou txt depuis votre logiciel de pointage (même si cela reste possible bien-sûr !).

Commençons cette présentation par une application en ligne nommée MécaChrono. Elle est disponible en ligne et ne nécessite donc aucune installation. Le travail s’effectue depuis votre navigateur internet.

Si la vidéo que vous souhaitez exploiter est dans un format ancien, elle sera automatiquement convertie dans un nouveau format compatible avec le navigateur. Il vous sera d’ailleurs proposé de télécharger la vidéo convertie pour gagner du temps à la prochaine utilisation. Pratique ! Un tutoriel au format pdf est disponible sur le site de l’académie de Rennes en cliquant ici. Un tutoriel vidéo de prise en main de l’interface est disponible ici.

Une seconde solution est d’utiliser le logiciel PymécaVidéo.

Ce logiciel disponible en téléchargement sur ce site est dispobible gratuitement sur plusieurs plateformes. Il nécessite une installation sur poste. Il permet, après les opérations classiques de pointage, d’exporter les données utiles et de générer un fichier Python au format py qui contiendra les données choisies (position, vitesse, accélération).

2 – Importation des données d’un fichier CSV ou TXT issu du logiciel LatisPro.

La fonction Latispro présentée ci dessous permet de récupérer les données (x,y,t) sous forme de listes à partir de données exportées au format CSV ou TXT depuis Latispro. L’appel à cette fonction se fait depuis le programme principal. Elle demande un paramètre à transmettre : le nom du fichier avec son extension (.txt ou .csv).

def Latispro(nom_de_fichier):
    #----------------------------------------------------
    #Extraction des données brutes du fichier de pointage
    #----------------------------------------------------
    f=open(nom_de_fichier,'r')
    donnees_brutes=f.readlines()
    f.close()
    #----------------------------------------------------
    #Retrait du "\n" de retour à la ligne
    #----------------------------------------------------
    for i in range(len(donnees_brutes)):
        donnees_brutes[i]=donnees_brutes[i][:-1]
    #----------------------------------------------------
    #Séparation des données
    #----------------------------------------------------
    donnees=[]
    if ";" in donnees_brutes[0]:
        for i in range(len(donnees_brutes)):
            donnees.append(donnees_brutes[i].split(";"))
    else:
        for i in range(len(donnees_brutes)):
            donnees.append(donnees_brutes[i].split("\t"))
    #----------------------------------------------------
    #Recherche de la colonne Temps
    #----------------------------------------------------
    for i in range(len(donnees[0])):
        if "Temps" in donnees[0][i]:
            index_T=i
    #----------------------------------------------------
    #Constitution de la liste des dates
    #----------------------------------------------------
    temps=[]
    for i in range(1,len(donnees_brutes)):
        temps.append(float(donnees[i][index_T].replace(',','.')))
    #----------------------------------------------------
    #recherche de la colonne Mouvement X
    #----------------------------------------------------
    for i in range(len(donnees[0])):
        if "X" in donnees[0][i]:
            index_X=i
    #----------------------------------------------------
    #Constitution de la liste des abscisses
    #----------------------------------------------------
    abscisses=[]
    for i in range(1,len(donnees_brutes)):
        abscisses.append(float(donnees[i][index_X].replace(',','.')))
    #recherche de la colonne Mouvement Y
    for i in range(len(donnees[0])):
        if "Y" in donnees[0][i]:
            index_Y=i
    #----------------------------------------------------
    #Constitution de la liste des ordonnees
    #----------------------------------------------------
    ordonnees=[]
    for i in range(1,len(donnees_brutes)):
        ordonnees.append(float((donnees[i][index_Y]).replace(',','.')))
    #----------------------------------------------------
    return abscisses, ordonnees, temps

#Le programme principal--------------------------------------------

x, y, t=Latispro('nom du fichier.csv')

3 – Importation des données d’un fichier TXT issu du logiciel Avistep3.

La fonction Avistep présentée ci dessous permet de récupérer les données (x,y,t) sous forme de listes à partir de données exportées au format TXT depuis Avistep3. L’appel à cette fonction se fait depuis le programme principal. Elle demande un paramètre à transmettre : le nom du fichier avec son extension (.txt).

def Avistep(nom_de_fichier):
    #Ouverture du fichier et extraction des données
    fichier=open(nom_de_fichier,"r")
    donnees=fichier.readlines()
    fichier.close()
    #Création des listes vides
    t=[]
    x=[]
    y=[]
    #Boucle de remplissage des listes x, y et t.
    for i in range(6,len(donnees)):
        ligne=donnees[i].replace(",",".")
        ligne=ligne.split("\t")

        t.append(float(ligne[0]))
        x.append(float(ligne[1]))
        y.append(float(ligne[2][0:-1]))
    return x,y,t

#Programme principal---------------------------------------

x,y,t=Avistep("nom_de_fichier.txt")