Skip to content

mchlln/visualisation

Repository files navigation

Fouille Extraction Visualisation

Ressources

Idées:

  • Identifier les zones les plus isolées, les plus denses en équipement
  • Voir s'il y a une corrélation entre l'éloignement à des services de santé et les dépenses en santé des habitants.
  • Distance avec les équipements et rapport avec le salaire moyen des habitants
  • Voir s'il y a une liaison entre la présence d'établissements d'éduction supérieure et de certains types d'équipements
  • Est-ce que les communes qui ont peu d'établissements culturels dépensent moins en budget culturel par habitant que celles avec beaucoup d'établissments culturels
  • Est-ce que les dépenses en culture augmentent plus on se trouve proche d'un équipement culturel
  • Quel équipement fait le plus grimper le prix de l'immobilier
  • Types d'équipement en fonction de la densité : est-ce qu'à partir d'une certaine densité, on retrouve certains équipements plus proches
  • Quel est le sport le plus accessible selon l'endroit de vie (terrains de foot + présents à la campagne/périphérie, salle de sport en centre ville)
  • Une ville qui dépense plus a des haibtants plus proches de lieux pour la culture ?

Technique

  • R
  • PostGreSQL pour nos données : peut être distant, possibilité de faire des opérations SQL
  • package arrow pour gérer les .parquet
  • dplyr pour faire un workflow lazy (execution seulement quand on le demande et directement sur disque)
  • Shiny pour faire de l'interractif

Project Set-up (Linux)

Conda + Shiny App

  • Run wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh to download MiniConda installer
  • Run bash Miniconda3-latest-Linux-x86_64.sh
  • Follow installer instructions
  • Create environment:
    • For runtime: conda env create -f environment.yml
    • For development: conda env create -f environment-dev.yml (r-studio-desktop included)
  • run conda activate shiny-visualisation to load the environment
  • run R -e "shiny::runApp('./', port=8080)" to run the App (after database initialization)

Initialize database + data

Get data files

  • Go to https://valentin-jonquiere.emi.u-bordeaux.fr/visu/ and download the files in data/
  • Download one or more .parquet file here and add them to data/

Database (docker)

  • run docker compose up -d to start the container
  • run docker compose down -v to stop and clean container

Database

  • Run duckdb (in the dev conda environment)
  • Initialize with (only once):
INSTALL postgres;
LOAD postgres;

ATTACH 'dbname=shiny_db user=visualisation password=visualisation host=localhost' AS db (TYPE POSTGRES);

CREATE TABLE db.equipment_access(X INTEGER, Y INTEGER, typeeq_id TEXT, distance FLOAT, deuclidienne FLOAT, duree FLOAT, depcom TEXT, pop INTEGER);
  • Add data:
ATTACH 'dbname=shiny_db user=visualisation password=visualisation host=localhost' AS db (TYPE POSTGRES);

INSERT INTO db.equipment_access 
SELECT X,Y,typeeq_id, distance, deuclidienne, duree, depcom, pop FROM 'data/your_data_path.parquet';
  • Clear database:
ATTACH 'dbname=shiny_db user=visualisation password=visualisation host=localhost' AS db (TYPE POSTGRES);

DELETE FROM db.public.equipment_access WHERE 1=1;
DROP TABLE db.public.equipment_access;

Running with remote

  • setup a remote host with SSH
  • run the project on this machine
  • ssh ssh -L 8080:localhost:8080 <ssh_host>
  • go to localhost:8080 on your computer

Errors

  • DB ERROR: !is_empty(conn, "equipment_access") n'est pas TRUE: You can't launch app with empty database.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages