diff --git a/README.md b/README.md index 803caff..a10166e 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,11 @@ idéalement dans: # débuter Récupérer le script d'initialisation ```bash -SETUP_WORKFLOW_FOLDER="~/Nextcloud/ressources/workflow_nextcloud/public_workflow" +export SETUP_WORKFLOW_FOLDER="$HOME/Nextcloud/ressources/workflow_nextcloud/public_workflow" mkdir -p "$SETUP_WORKFLOW_FOLDER" git clone https://forge.chapril.org/tykayn/workflow "$SETUP_WORKFLOW_FOLDER" cd "$SETUP_WORKFLOW_FOLDER" +git pull bash init.sh ``` Configrer les variables, avoir le droit d'exécuter des scripts avec `sudo` puis lancer le script d'initialisation diff --git a/analyse_speed_limits_essonne.py b/analyse_speed_limits_essonne.py new file mode 100644 index 0000000..934137f --- /dev/null +++ b/analyse_speed_limits_essonne.py @@ -0,0 +1,82 @@ +import osmnx as ox +import pandas as pd +import matplotlib.pyplot as plt +import networkx as nx + +# 1. Télécharger les routes principales de l'Essonne +# On cible les types de routes principales +highway_types = ["motorway", "trunk", "primary", "secondary"] + +# Essonne (département 91, France) +place = "Essonne, France" + +print("Téléchargement du graphe routier...") +G = ox.graph_from_place(place, network_type='drive', custom_filter='["highway"~"motorway|trunk|primary|secondary"]') + +# 2. Extraire les limitations de vitesse et calculer la longueur +edges = ox.graph_to_gdfs(G, nodes=False, edges=True) + +# On normalise les limitations de vitesse + +def parse_maxspeed(val): + # Si c'est une liste ou un array, on prend le premier élément + if isinstance(val, (list, tuple)): + if len(val) == 0: + return None + val = val[0] + if pd.isna(val): + return None + try: + # On ne garde que le nombre + return int(str(val).split()[0]) + except Exception: + return None + +edges['maxspeed_norm'] = edges['maxspeed'].apply(parse_maxspeed) + +# Calcul de la longueur en km +edges['length_km'] = edges['length'] / 1000 + +# 3. Statistiques +speed_stats = edges.groupby('maxspeed_norm')['length_km'].sum().reset_index() +speed_stats = speed_stats.rename(columns={'maxspeed_norm': 'limitation_vitesse', 'length_km': 'longueur_km'}) + +# Combien de km sans limitation ? +no_speed = edges[edges['maxspeed_norm'].isna()]['length_km'].sum() + +# Remplacer les NaN par -1 pour les routes sans limitation spécifiée +speed_stats['limitation_vitesse'] = speed_stats['limitation_vitesse'].fillna(-1).astype(int) + +# 4. Export CSV +speed_stats.to_csv('limitations_vitesse_essonne.csv', index=False) + +# 5. Graphique SVG +fig, ax = plt.subplots(figsize=(12, 12)) +# Routes avec limitation: gris, sans limitation: rouge +edges_with_speed = edges[edges['maxspeed_norm'].notna()] +edges_no_speed = edges[edges['maxspeed_norm'].isna()] + +edges_with_speed.plot(ax=ax, linewidth=0.7, color='grey', alpha=0.5) +edges_no_speed.plot(ax=ax, linewidth=1.2, color='red', alpha=0.8) + +ax.set_title("Routes principales de l'Essonne sans limitation de vitesse (en rouge)") +ax.axis('off') +plt.tight_layout() +plt.savefig('routes_sans_limitation_essonne.svg', format='svg') + +# 5b. Histogramme des limitations de vitesse +plt.figure(figsize=(10,6)) +plt.bar(speed_stats['limitation_vitesse'].astype(str), speed_stats['longueur_km'], color='skyblue', edgecolor='black') +plt.xlabel('Limitation de vitesse (km/h)') +plt.ylabel('Longueur totale (km)') +plt.title("Histogramme des limitations de vitesse sur les routes principales de l'Essonne") +plt.tight_layout() +plt.savefig('histogramme_limitations_vitesse_essonne.png') +print("Histogramme sauvegardé sous histogramme_limitations_vitesse_essonne.png") + +# 6. Résumé console +print("\nRésumé:") +print(speed_stats) +print(f"\nLongueur totale sans limitation de vitesse: {no_speed:.2f} km") +print("CSV sauvegardé sous limitations_vitesse_essonne.csv") +print("SVG sauvegardé sous routes_sans_limitation_essonne.svg") \ No newline at end of file diff --git a/assets/.bash_custom_aliases b/assets/.bash_custom_aliases index 0578df5..a2f1148 100644 --- a/assets/.bash_custom_aliases +++ b/assets/.bash_custom_aliases @@ -5,7 +5,11 @@ # # load variables # echo "bash custom aliases: load functions to sync files" -source $HOME/Nextcloud/ressources/workflow_nextcloud/public_workflow/workflow_variables.sh +source "$HOME/Nextcloud/ressources/workflow_nextcloud/public_workflow/workflow_variables.sh" +source "$HOME/Nextcloud/ressources/workflow_nextcloud/secrets_vars.sh" +source "$WORKFLOW_PATH/install/functions_sync.sh" +source "$WORKFLOW_PATH/install/functions_tk.sh" + ############################ current @@ -16,7 +20,7 @@ alias gow="cd $WORKFLOW_PATH" # go to folder of nextcloud where i store my scrip ###### lieux locaux alias goj="ssh -p 3910 tykayn@bbb.liness.org" -alias gopi="ssh pi@192.168.1.156" +alias gopi="ssh pi@192.168.1.19" alias gofat="ssh tykayn@192.168.1.7" alias gowork="work" alias gowww="cd $www_folder" @@ -24,15 +28,15 @@ alias gox="ssh tykayn@proxmox.coussinet.org" alias gok="ssh debian@ns3247177.ip-164-132-173.eu" # hébergement kimsufi -alias gonas="ssh $main_user@$IP_DU_NAS -p20522" +alias gonas="ssh $main_user@$IP_DU_NAS" alias gos="cd $stockage_syncable_folder" alias goa="ssh root@biliz.cluster.chapril.org" alias goad="cd /home/poule/encrypted/stockage-syncable/photos/a_dispatcher" -alias goo="cd ~/Nextcloud/textes/orgmode" -alias goi="cd ~/Nextcloud/inbox" -alias gov="cd '~/vidéos à voir'" -alias gown="cd ~/Nextcloud/ressources/workflow_nextcloud" +alias goo="cd $HOME/Nextcloud/textes/orgmode" +alias goi="cd $HOME/Nextcloud/inbox" +alias gov="cd '$HOME/vidéos à voir'" +alias gown="cd $HOME/Nextcloud/ressources/workflow_nextcloud" alias gos="cd /home/poule/encrypted/stockage-syncable" alias gomob="ssh -6 tykayn@mobilizon.vm.openstreetmap.fr -i .ssh/id_rsa_spaceship" # go to mobilizon osm26 ################ personal info management - file management - PIM ######### @@ -49,8 +53,8 @@ alias exgps="exiftool '-filename /dev/null [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion fi - + if [ "$(pwd)" = "/var/www/html/" ] || [ "$(pwd)" = "/var/www/html/*" ]; then echo "chargement de node version stable" nvm use stable @@ -206,16 +218,36 @@ function dckill() { } # créer un post de blog: new cipher bliss ncb(){ -python /home/poule/encrypted/stockage-syncable/www/development/html/orgmode-to-gemini-blog/new_article.py cipherbliss_blog fr "$@" + title_as_args="$@" + echo "$title_as_args" + + python /home/poule/encrypted/stockage-syncable/www/development/html/orgmode-to-gemini-blog/new_article.py --blog_dir="cipherbliss_blog" --lang="fr" --title="$title_as_args" } +# créer un post de tykayn blog +ntk(){ + title_as_args="$@" + echo "$title_as_args" + + python /home/poule/encrypted/stockage-syncable/www/development/html/orgmode-to-gemini-blog/new_article.py --blog_dir="tykayn_blog" --lang="fr" --title="$title_as_args" +} + +# commit avec git function gc() { git add . git commit -m "$1" git push } - +export PATH="~/.pyenv/bin/:~/.cargo/bin:/snap/bin:$WORKFLOW_PATH/bin:$PATH" +#export PATH="$HOME/.rbenv/bin:$PATH" export PATH="~/.npm-global/bin:$PATH" -export PATH="$HOME/.symfony5/bin:$PATH" +export PATH="$PATH:$HOME/.npm-global/bin" +export PATH=$PATH:/usr/local/go/bin +eval "$(rbenv init -)" +eval "$(zoxide init zsh)" # zoxyde, navigation de dossier avec fuzzy finder + + +export alias please='sudo !!' +export alias plz='please' diff --git a/doc/sections.md b/doc/sections.md index 709776d..9cf16fe 100644 --- a/doc/sections.md +++ b/doc/sections.md @@ -7,15 +7,19 @@ Le lancement du script d'init réalise la mise en place de configuration pour ch Pour récupérer seulement les alias de commande sans prendre toutes les sections, faire ceci: ```shell cd -wget https://forge.chapril.org/tykayn/workflow/raw/branch/main/assets/.bashrc -wget https://forge.chapril.org/tykayn/workflow/raw/branch/main/assets/.bash_custom_aliases -O .bash_aliases +wget https://source.cipherbliss.com/tykayn/workflow/raw/branch/main/assets/.bashrc +wget https://source.cipherbliss.com/tykayn/workflow/raw/branch/main/assets/.bash_custom_aliases -O .bash_aliases source .bash_aliases ``` ## Installation de programmes ```shell -sudo apt install ansible python3-pip arp-scan borgbackup curl docker docker-compose etckeeper git gnupg jq meld nano ncdu nginx restic npm pandoc php python3 python3-pip tig zsh testdisk texlive rbenv htop btop python3-setuptools autopostgresqlbackup automysqlbackup certbot smartmontools fail2ban snapd unattended-upgrades php php-fpm php-xml php-mysql rsync php-dom php-curl vrms syncthing sshfs geeqie calibre +sudo apt update +sudo apt upgrade +sudo apt install ansible python3-pip arp-scan borgbackup curl docker docker-compose etckeeper git gnupg jq meld nano ncdu nginx restic npm pandoc php8.4 python3 python3-pip tig zsh testdisk texlive rbenv htop python3-setuptools automysqlbackup certbot smartmontools fail2ban snapd unattended-upgrades php8.4-fpm php-xml php-mysql rsync php8.4-xml php-curl vrms syncthing sshfs geeqie calibre adduser snapd borgbackup exa adduser +snap install emacs --classic +snap install btop pip install yt-dlp --user ``` diff --git a/histogramme_from_csv.py b/histogramme_from_csv.py new file mode 100644 index 0000000..009f86b --- /dev/null +++ b/histogramme_from_csv.py @@ -0,0 +1,18 @@ +import pandas as pd +import matplotlib.pyplot as plt + +# Charger le CSV +csv_path = 'limitations_vitesse_essonne.csv' +df = pd.read_csv(csv_path) + +# Générer l'histogramme +plt.figure(figsize=(10,6)) +plt.bar(df['limitation_vitesse'].astype(str), df['longueur_km'], color='skyblue', edgecolor='black') +plt.xlabel('Limitation de vitesse (km/h)') +plt.ylabel('Longueur totale (km)') +plt.title("Histogramme des limitations de vitesse sur les routes principales de l'Essonne") +plt.tight_layout() + +# Sauvegarder en SVG +plt.savefig('histogramme_limitations_vitesse_essonne.svg', format='svg') +print("Histogramme sauvegardé sous histogramme_limitations_vitesse_essonne.svg") \ No newline at end of file diff --git a/init.sh b/init.sh index 266f722..96f6de1 100644 --- a/init.sh +++ b/init.sh @@ -4,9 +4,11 @@ echo "installation du workflow" mkdir -p ~/Nextcloud/ressources/workflow_nextcloud/ cd ~/Nextcloud/ressources/workflow_nextcloud/ -git clone https://forge.chapril.org/tykayn/workflow public_workflow +git clone https://source.cipherbliss.com/tykayn/workflow public_workflow cd public_workflow +sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B188E2B695BD4743 + bash initialization/init_workflow.sh echo "\n\n ça c'est fait" diff --git a/workflow_variables.sh b/workflow_variables.sh index 206b392..7020330 100644 --- a/workflow_variables.sh +++ b/workflow_variables.sh @@ -56,7 +56,7 @@ if [ -z ${load_only_once+x} ]; then export LOG_FILE_BACKUP_DATES="$ARCHIVE_SYNCABLE/www/backup/summary_log_backup.log" export main_archive_source_sftop_spaceship="/mnt/spaceship_poule" - export IP_DU_NAS="/mnt/spaceship_poule" + export IP_DU_NAS="192.168.1.15" export CURRENT_YEAR=$(date +%Y)