Les données sont lues depuis un fichier au format .txt à l'aide d'une fonction de NumPy appelée Loadtxt. Cette fonction prend comme argument le delimiter (ici des ;), les colonnes à utiliser (ici les trois premières soit les indices 0, 1 et 2), ainsi que le skiprows, qui permet de ne pas lire les premières lignes et donc de sauter l'entête du fichier (ici les deux premières lignes). Enfin on recharge une seconde fois le fichier (avec d'autres paramètres), afin de récupérer la valeur du Timesptamp stockée dans l'entête. Toutes ces données sont renvoyées sous la forme de NumPy array.
Seule la valeur du Timesptamp de début des mesures est sauvegardé dans le fichier .txt. Alors afin de connaître l'heure de prise de chaque mesure, on utilise la connaissance de l'intervalle de 15 secondes entre chaque mesure. On utilise donc une boucle for (avec un pas de 15) pour créer une liste contenant le Timesptamp pour chaque mesure. L'on calcule également l'heure correspond à ce Timesptamp à l'aide du module datetime de python. Enfin on ajoute ces deux listes à notre NumPy array à l'aide de la fonction NumPy column_stack.
Le Timestamp est une valeur (par défaut en seconde) comptant la durée qui s'est écoulée depuis une date de référence, à savoir le 1er janvier 1970. Elle permet à la fois de connaître l'heure et la date, mais aussi de mesurer une durée (car il s'agit d'une valeur entière avec laquelle on peut faire des maths). Sur internet le protocole NTP (Network Time Protocol) permet de communiquer l'heure en UTC afin de synchroniser les services entre eux. Par défaut, cette valeur est stockée en 32 bits, malheureusement cette valeur atteindra sa valeur maximale le 19 janvier 2038 à 3h14 et 08 secondes (UTC). A ce moment un overflow se produira et les appareils synchronisés par NTP penseront être revenus au 13 décembre 1901 à 20h45 et 52 secondes. Car la valeur en décimal du Timesptamp sera passée en négatif. Afin de corriger ce bug, la solution est de coder la valeur du Timesptamp sur 64 bits. (Wikipedia)
En Python, il est possible de se connecter à une base de données stockée en local, en utilisant le module sqlite3. Dès lors on peut faire des requêtes comme dans une console classique. On commence par créer la table qui accueillera les données avec les colonnes prévues pour les valeurs mesurées par le capteur (au format REAL car il s'agit de valeurs avec des décimales), la colonne contenant la valeur du Timesptamp (au format INTEGER) et la valeur de la date associée au Timestamp (au format TEXT car le format DATE n'est pas reconnu en sqlite). Cependant, la date est en trop car n'est jamais utilisée (mais permet le contrôle des valeurs dans la table car le Timesptamp est abstrait, la date non).
Une fois la table créée, il s'agit de la remplir avec les données stockées dans le NumPy array. Pour cela on lit ligne par ligne le array avec une boucle for. On a la possibilité de pouvoir utiliser des paramètres dans les requêtes SQL afin d'effectuer un "INSERT INTO ..." à chaque itération de la boucle.