knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(occupationparkingsapp)
On définit une classe ParkingsStats qui va être une super classe des classes Occupation et Saturation.
Cette classe va contenir 2 fonctions :
download_data : Téléchargement des données depuis le WS aggregate
clean_output : Nettoyage des résultats de download_data (dates, calcul du taux d'occupation ...)
Contient les fonctions :
mean_by_some_time_unit : Va réaliser une aggrégation du taux d'occupation en fonction d'un certain pas de temps. Renvoie une moyenne pour l'ensemble du secteur et pour chaque parking du secteur.
timeseries_plot_1_period : graphique de série temporelle pour 1 seule période étudiée
timeseries_plot_2_periods : graphique de série temporelle pour 2 périodes étudiées
Contient les fonctions :
filter_full_capacity_parkings : conserve les parkings qui remplissent les critères de saturation définis par les utilisateurs
calendar_heatmap : heatmap des taux de saturation des parkings
Dans ce fichier on va notamment créer le df parkings, qui va lister les parkings choisis pour chaque secteur par P. Mercé.
Sachant que les noms des parkings sont susceptibles de changer au cours du temps, on récupère les noms des parkings à chaque lancement de l'appli en appelant le WS xtradata.
Au démarrage de l'appli on réalise plusieurs opérations :
gestion du dark / light mode
mise à jour des noms des parkings étudiés
création des objets R6 pour l'analyse de l'occupation sur 1 période et sur 2 périodes
les "list_of_Occupation" sont ensuite envoyées dans les modules correspondants. C'est au sein des modules qu'on va injecter certains paramètres, notamment ceux relatifs aux paramètres de la requête xtradata (période d'observation ...). Les paramètres ne changeant jamais (e.g. liste des parkings étudiés sur 1 secteur) ont été définis côté app_server.
Structure générale de l'appli et appel des fonctions ui des modules.
Ces deux modules appellent des sous-modules :
Opérations identiques réalisées, selon le modèle API / nettoyage / résultats avec les modules suivants :
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.