3. Traiter les données - PatGendre/hmvl GitHub Wiki

Principe des traitements : qualification et calculs d'indicateurs

Le principe pour la mise au point des traitements a été :

  1. mettre au point les scripts python/pandas dans un notebook pour tester et regarder les données
  2. in fine, mettre dans un script python "en dur" les traitements à lancer chaque jour en tâche planifiée, afin :
  • d'une part de garder des traces des mesures éliminées (nb de mesures invalides par station par heure par ex.) à des fins de diagnostic du système de recueil de données
  • d'autre part de travailler uniquement sur les données valides pour les traitements ultérieurs (agrégations, visualisation, analyses fines des données individuelles...)

Il faut arriver à définir des règles pour définir quelles sont les données valides, càd que l'on peut utiliser pour faire des analyses sur des mesures individuelles, ou pour les agréger en données 1', 6' ou horaires. On pourrait imaginer de "repêcher" certaines données invalides en reconstituant des mesures manquantes (comme cela est fait en principe dans le SAGT Marius2), mais les règles de reconstitution des données manquantes ou erronées ne sont pas simples et au mieux cela pourra être fait dans un 2ème temps.

A partir de premiers tests sur les données, dans postgres ou dans ce notebook, on considère que les données sont invalides lorsque:

On produira un indicateur (journalier) par station et par heure indiquant le nb données invalides de status 1,2,3/4, ou voie vide, pour comparer aux nombres de mesures totales.
Il faudrait sans doute aussi produire des indicateurs par voie car les doubles boucles peuvent être HS sur une voie et pas une autre.
Quand la vitesse ou la longueur est NULL, on peut supposer que la double boucle est HS mais qu'une boucle sur les 2 a détecté le passage du véhicule et donc inclure l'horodate de la mesure pour mesurer le débit.

En outre, pour les mesures (non NULL) proprement dites, une première analyse incite à ne pas prendre en compte les mesures lorsque:

  • la vitesse > 240 km/h
  • la longueur > 25m ou <0,5m (ces seuils sont arbitraires, on pourrait en changer mais ils codés en dur dans le script python)
    On enlève donc ces mesures aberrantes des agrégations 6 minutes (débit, vitesse, longueur)