Documentation des Scripts - GamesRythmAnalysis/RnGameDataExploitation GitHub Wiki

ATTENTION

Cette documention est en cour de rédation aussi ni le sens ni l'orthographe ou la grammaire des phrase n'as été vérifier. De même l'entièreter des script ne sont pas encore traiter.

Cette page a pour objectif d'apporter une documentation afin de facilité la maintenance, l'amélioration et la compréhension des scripts, si vous souhaité juste vous documenté sur les indicateur produit il s'agit de cette page.

Architecture globale.

L'analyse est séparer en sous script indépendant visant a analysé un type de donné. Ces script s'articule autour des script main ( PadMain, SourisMain, ClavierMain, ) qui sont eux même appeler par la fonction principale RythmaFUNZIP. L'idée étant de créer des portion de code courte avec un nombre d'objectif limité afin d'en facilité la compréhension et la clarté du code.

Documentation Script par Script

L'ordre d'analyse des Scripts seras en premier les scripts graphique puis dans l'ordre d'appel des fonctions dans RythmaFUNZIP.

Script graphique.

Les Script graphque sont essentiellement une surcouche autour ggplot2 visant simplement a réduire la réutilisation du code et permettant de corrigé plus facilement des potentielle bug ou changement dans la grammaire du package.

GraphiquesClavierSouris

Ce script est un morceaux de code assez ancien visant a représenter sur le même graphique la densité des appuis clavier et des click souris. Les première ligne définisse des variables qui serons utilisé pour crée le graphique. Le graphique est créer via la fonction plot, la fonction png permet de sauvegarder le future graphique sous la forme d'un png. Les fonction points et legend ajoute des élément au graphique, la fonction dev.off clos le plot et permet a la fonction png de finir d'enregistré le fichier.

GraphiquesDensity

Ce script crée un graphique affichant une estimation par noyau des donnée envoyer et le sauvegarde si demander. La première instruction de ce script atach(data) permet d'emuler le fonctionement de ggplot mais cause l'apparition d'un warning si l'instruction detach(data) n'est pas utilisé (après une erreur par exemple). Le reste du script est une utilisation normal de ggplot qui est résumé ici

GraphiquesHeatmap

Ce script crée une heatmap a partir des donnée envoyer et le sauvegarde si demander. L'instruction deparse(substitute()) permet d'optenir sous forme d'une chaine de charactère l'instruction donnée en paramètre afin de donnée uns valeur par défaud a xlab et ylab. Le reste du script est une utilisation normal de ggplot qui est résumé ici

GraphiquesStack

Ce script crée un empilement d'estimation par noyau a partir des donnée envoyer et le sauvegarde si demander. Le reste du script est une utilisation normal de ggplot qui est résumé ici

GraphiquesTreemap

Ce script crée un treemap a partir des donnée envoyer et le sauvegarde si demander. Le reste du script est une utilisation normal de ggplot qui est résumé ici

Script de traitement des données clavier

Les script de traitement des données clavier sont articulés en arbre. Un script principal appelle l'analyse puis la création des graphiques. Chacun de ses script fait appelle a des sous fonction pour les tâche répétitive.

keyRythm

La fonction key.rythm permet de récupérer a partir des données brutes pour chaque touche le moment de chaque pression et la durée de chaque appuis pour une touche donnée.

Dans un premier temps on réduit la taille des données en ne prenant que les donne lier a une touche. On crée ensuite les vecteurs où l'on enregistrera les données afin d'éviter le problème des " growing objects" très mauvais pour le temps de calculs. Pour la suite de cette fonction on effectue une boucle où l'on itère sur chacune des lignes affin de trouver les moment de pression et de relâchement des touche. Due a des imperfections dans la méthode de capture il arrive que des ligne soit dupliqué ou inexistante, ce problème nous as jusqu'ici empêcher de vectorisé cette opération.

ClavierKeyAnalyse

Ce Script se charge de l'analyse des donnée clavier dans leur globalité. Dans un premier temps nous utilisons la fonction key.rythm pour transformer les donnée touche par touche sous une forme facilitant la suite du traitement. On élimine les lignes pour lesquel la valeur dow.time (le moment ou la touche a été presser) n'est pas définis. Le nombre d'appuis est définis a partir du nombre de pression sur les touches, nous n'utilisons pas les données sortie par la fonction key.rythm car une ligne en sortie de la foinction signifie une pression et un relachement d'une touche.Il semblerais que des erreur de capture sur le relachement soit plus fréquente que sur la pression d'ou le choix de se basé sur les pressions. La suite du script est le calcul des différent indicateur ainsi que l'extraction des touches fréquentes.

Script de traitement des données souris

Les script de traitement des données souris sont articulés en arbre. Un script principal appelle l'analyse puis la création des graphiques. Chacun de ses script fait appelle a des sous fonction pour les tâche répétitive.

Pour l'instant les script analyse les click droit et gauche, les click molette sont aussi pris en compte. Des test on montré que les touches supplémentaire sont prise en compte par le logiciel de capture mais elle ne sont pas traiter a l'heure actuelle par les scripts.

ClickRythm

La fonction click.rythm permet a partir des données de click brutte d'extraire pour un évenement donner (click droit,gauche,molette ou autre) et pour chaque click le moment de début de pression ainsi que la durée de la pression. Le mode de fonctionement est similaire a celuis de la fonction key.rythm y compris dans la problematique de vectorisation, idéalement les deux fonctions devrais être fusionné mais ceci n'as pas encore été fait du a des différence dans la forme des données.

SourisClickAnalyse

Cette fonction est charger de l'analyse des clicks dans leur globaliter. Une grande partie de cette fonction est consacré a la création des différent indicateur lier aux clicks souris. La première partie est une suite d'apelle a click.rythm et une concaténation des données lier au click des trois boutton standard. On extrait ensuite les donnée de scroll ainsi quetout les début d'apuis sur la souris , les donnée brute sont ici utilisé car le nettoyage des donnée effectuée par click.rythm entraine souvant une perte de click car ceux-ci n'ont été que partiellement capté par le key logger. La suite est le calcul des différents indicateur.