Giter Club home page Giter Club logo

kallaxcomptages's Introduction

Note to non-french speaking people: this project has been developed in French, but could easily be translated if necessary. Feel free to open an issue or contribute yourself if you are interested.

KallaxComptages

KallaxComptages est un programme développé dans le cadre de mon travail de Bachelor à l'Université de Fribourg, 2022-2023. Son but : faciliter la standardisation, le stockage et l'analyse de données de mobilité issues de comptages routiers. Son concept est le suivant :

  • L'utilisateur.trice entre un fichier présentant des données issues d'un comptage routier.
  • L'utilisateur.trice entre les spécifications propre au fichier : type de données, colonnes à utiliser, localisation du comptage...
  • Le programme s'occupe de la standardisation des données et les insère dans sa base de données.
  • L'utilisateur.trice a ensuite à sa disposition des possibilités pour trouver facilement les informations voulues (sous forme de graphiques, de cartes, de chiffres bruts...).
  • L'application peut aussi offrir des fonctionnalités plus avancées, telles que du data cleaning ou de la détection d'erreurs.

Exigences

KallaxComptages tourne uniquement sur Windows 8 et plus récent.
MacOS et Linux ne sont malheureusement pas pris en charge pour le moment, mais il vous est possible de compiler le programme (via PyInstaller, voir section "Contribuer") sur ces systèmes d'exploitation.

Spécifications techniques

  • Python - Langage dans lequel est entièrement écrite l'application. Librairies utilisées :
    • tkinter, tkintermapview, tkcalendar - Interface de l'application
    • numpy, pandas - Traitement numérique de l'information
    • openpyxl - Support de l'input de fichiers Excel
    • datefinder - Analyse de dates en format texte
    • pyinstaller - Compilation du programme en exécutable
  • SQLite - Moteur de base de données utilisé. La BDD est donc enregistrée sous forme de fichier indépendant

To-do

  • Toute la partie "sélection des données" pour l'analyse
  • Toute la partie analyse
  • Fonctionnalités plus avancées (data cleaning, détection d'erreurs...)
  • Prise en compte du sens de circulation
  • Prise en compte du type de véhicule pour les données agrégées
  • Standardisation des types de véhicules (ne donner le choix que parmi une liste établie)
  • Esthétique générale

Installation et utilisation

KallaxComptages ne nécessite pas vraiment d'installation. Il suffit de copier le dossier "out" sur votre machine, puis de lancer l'exécutable (main.exe).

Une fois l'exécutable lancé, la fenêtre suivante apparait :
main menu

Ajout de données

Étape 1 : Choix du fichier

step 1
La première étape consiste à choisir le fichier contenant les informations à introduire dans la base de données.
Le fichier peut être au format .xlsx ou .csv.

Étape 2 : Choix de la feuille à utiliser

step 2
Si le fichier choisi est au format .xlsx, cette étape consiste à choisir la feuille à utiliser parmi celles contenues dans le fichier.
Si le fichier est au format .csv, le programme détermine automatiquement le séparateur des colonnes et passe à l'étape suivante sans intervention de l'utilisateur.trice.

Étape 3 : Choix du type de données présentes

step 3
Cette étape consiste à spécifier le type de données présent dans le fichier. Il y a 3 types de données possibles :

  • Données brutes : chaque passage de véhicule est enregistré sur sa propre ligne.
  • Données agrégées par temps : chaque ligne représente les passages de véhicule sur une certaine période de temps, par exemple par tranches d'1h.
  • Données agrégées par vitesse : chaque ligne représente les passages de véhicule ayant eu une certaine vitesse, par exemple par tranches de 5 km/h.

Si des données brutes sont disponibles, le programme n'a pas besoin de données agrégées, d'où la sélection unique dans le menu. Autrement, il faut spécifier si les données à disposition sont agrégées par temps, par heure, ou si les deux types sont présents.

Étape 4 : Choix des lignes à utiliser

step 4
Cette étape consiste à spécifier les numéros de ligne du fichier à utiliser. Elle permet d'éviter de prendre en compte les éventuels en-têtes et lignes superflues contenues dans le fichier.
Par défaut, les lignes non-vides du fichier sont prises en compte.
Le contenu de la fenêtre varie en fonction des types de données spécifiées à l'étape 3.

Étape 5 : Choix des colonnes de temps et/ou de vitesse

step 5
Cette étape consiste à spécifier les numéros/lettres des colonnes contenant l'information des tranches de temps et/ou de vitesse (en fonction du type de données agrégées sélectionnées).
Elle est automatiquement passée si le type de données a été défini sur "brutes" à l'étape 3.
La première valeur de chaque colonne (déterminée à partir de la première ligne indiquée à l'étape 4) est aussi affichée, dans le but de faciliter la sélection de la bonne colonne.
Si la cellule à cet endroit est vide, "vide" sera affiché.
Si la date et l'heure sont affichées dans la même colonne, il est possible de sélectionner "Déjà présent dans "Date"" pour la colonne d'heure.
Il en va de même pour le début et la fin de la tranche de vitesse pour les données agrégées par vitesse.

Étape 6 : Choix des colonnes à utiliser

step 6
Cette étape consiste à spécifier les numéros/lettres des colonnes contenant les informations présentes dans le fichier.
Le contenu de la fenêtre varie en fonction des types de données spécifiées à l'étape 3.
Si des données agrégées par tranches de vitesse sont présentes, il est également demandé d'entrer le jour où le comptage a été effectué.
La première valeur de chaque colonne est affichée de la même manière qu'à l'étape 5.
Il est possible de spécifier lorsque des données sont déjà présentes dans d'autres colonnes (par exemple l'heure et la date), ainsi que lorsque des données ne sont pas présentes.
Il n'est pas possible de définir certaines données comme absentes, comme le nombre de passages de véhicules par exemple.

Étape 7 : Choix de la localisation du comptage routier

step 7
Cette étape consiste à préciser la localisation exacte du comptage routier, sous forme de pointeur sur une carte.
Le pointeur est ensuite automatiquement converti en coordonnées géographiques au moment de l'enregistrement dans la base de données.

Étape 8 : Récapitulatif des données à entrer

step 8
Cette étape consiste simplement à vérifier si les informations entrées précédemment sont correctes. Pour ce faire, le programme génère un récapitulatif contenant tout ce qui a été spécifié aux étapes précédentes.

Une fois l'étape 8 validée, les données sont envoyées dans la base de données. Ceci peut prendre un peu de temps, en particulier si le comptage contient une grande quantité de données.
Il est recommandé de ne pas fermer le programme tant que la fenêtre "Données envoyées à la base de données !" n'est pas apparu.

Analyse de données

À écrire quand le programme le permettra...

Contribuer au développement

Les contributions au projet sont volontiers acceptées, n'ayant pas forcément le temps de mener à bout l'entièreté du développement du programme.
Si vous souhaitez contribuer, veuillez vous référer au fichier "CONTRIBUTING" disponible à la source du répertoire.
Je vous recommande également de passer rapidement en revue la partie écrite du travail, en particulier le chapitre 6 qui concerne le développement de KallaxComptages. Vous pouvez trouver le document sous forme de PDF dans le dossier "thesis" du projet.

kallaxcomptages's People

Contributors

elric02 avatar

Watchers

 avatar Kostas Georgiou avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.