up chemins source

This commit is contained in:
Tykayn 2025-07-17 13:58:29 +02:00 committed by tykayn
parent 123aad138c
commit 8b7acbd6dc
7 changed files with 167 additions and 28 deletions

View file

@ -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

View file

@ -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")

View file

@ -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<GPSDateTime' -d \"%Y-%m-%dT%H.%I.%S%%c -- has_g
# lister les disques en blocs sans les snaps
alias lsb="lsblk |grep -v loop"
alias range="ts-node /home/poule/encrypted/stockage-syncable/www/development/html/rangement/index.ts --dry-run=true "
alias rangereal="ts-node /home/poule/encrypted/stockage-syncable/www/development/html/rangement/index.ts"
alias range="$HOME/.npm-global/bin/ts-node /home/poule/encrypted/stockage-syncable/www/development/html/rangement/index.ts --dry-run=true "
alias rangereal="$HOME/.npm-global/bin/ts-node /home/poule/encrypted/stockage-syncable/www/development/html/rangement/index.ts"
################ symfony3 ######################
alias sf="php bin/console"
@ -81,7 +85,7 @@ alias tfa="tail -f /var/log/nginx/*.log" # suivi des erreurs de serveur
alias aupg="sudo apt-get autoremove && sudo apt-get autoclean && sudo apt-get update -y && sudo apt-get upgrade -y"
################ système with X server ################
alias phps="bash /home/poule/encrypted/stockage-syncable/ressources/logiciels/PhpStorm-2020.1.4/PhpStorm-201.8743.18/bin/phpstorm.sh"
alias phps="bash /home/tykayn/Nextcloud/ressources/ide/PhpStorm-251.26927.60/bin/phpstorm.sh"
################ git helpers ################
alias gci="git commit"
@ -102,7 +106,8 @@ alias hgrep="history |grep"
alias whatport="sudo netstat -pna | grep "
alias runport="firefox https://localhost:$1"
alias dff='df -h --exclude-type=squashfs --exclude-type=devtmpfs --exclude-type=tmpfs' # voir l'espace libre sans les paritions snap
alias pup='/home/tykayn/.local/pipx/venvs/panoramax-cli/bin/panoramax_cli upload --api-url https://panoramax.openstreetmap.fr .' #panoramax upload avec mon compte perso
alias pum='/home/tykayn/.local/pipx/venvs/panoramax-cli/bin/panoramax_cli upload --api-url https://panoramax.openstreetmap.fr . --token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnZW92aXNpbyIsInN1YiI6IjQ1NmJmMWQ1LTgxNzEtNDdlMy05MmQ1LWNkNTM1MjBiOWZkMyJ9.JqedjxqgwVY6bB9vKe4v5HiSvZAndiXICre_iI06Auc" --disable-duplicates-check --parallel-uploads 15' #panoramax upload motocultrice
export RUBY_ENV=devlopment
@ -110,29 +115,33 @@ export GIT_AUTHOR_NAME="Tykayn"
export GIT_AUTHOR_EMAIL="contact@cipherbliss.com"
export NVM_DIR="$HOME/.nvm"
[ -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
# développement
alias python=python3
alias py=python3
# rangement
alias lwc="ls -ls |wc -l" # compter les fichiers et dossiers
alias findup="snap run czkawka"
alias ft="filetags --tagtrees --tagtrees-handle-no-tag \"has_no_tag\" --tagtrees-depth 2 --recursive"
alias netre="sudo service network-manager restart"
# syncronisations
alias getrise="rsync root@proxmox.coussinet.org:/poule/encrypted /home/poule/borg_archives/production-servers-backup/rise/ -avzPW --inplace --delete-before --exclude borgbackup_tkland"
alias getrise="rsync root@proxmox.coussinet.org:/poule/encrypted /home/poule/borg_archives/production-servers-backup/rise/ -avzPW --inplace --delete-before --exclude borgbackup_tkland"
alias ascan="sudo arp-scan --local"
# youtube dl
alias ydl='yt-dlp -o "%(title)s.f%(format_id)s.%(ext)s"'
alias ydla='yt-dlp -o "%(title)s.f%(format_id)s.%(ext)s"'
alias ydlup='python3 -m pip install -U yt-dlp'
alias ydlup='python3 -m pip install -U yt-dlp --break'
alias upydl='ydlup'
# stopper les messageries pour être au calme
alias oklm="killall gajim telegram-desktop signal-desktop dino-im java vlc"
alias oklm="killall gajim telegram-desktop signal-desktop dino-im java vlc webstorm firefox-esr"
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
@ -156,18 +165,21 @@ export RAILS_ENV=development
# ----------------------------------------------------------------------
# logiciels
alias ws="bash $HOME/Nextcloud/ressources/ide/WebStorm-2023.2.8/bin/webstorm.sh &"
alias ws="bash $HOME/Nextcloud/ressources/ide/WebStorm-232.10335.13/bin/webstorm.sh"
alias j="java -jar $HOME/Nextcloud/ressources/logiciels/josm-tested.jar"
alias jup="wget https://josm.openstreetmap.de/josm-tested.jar -O $HOME/Nextcloud/ressources/logiciels/josm-tested.jar"
alias dok="docker-compose"
alias dc="docker-compose"
alias plz="sudo !!"
alias please="plz"
alias e="snap run emacs"
export HISTTIMEFORMAT="%d/%m/%y %T "
export EDITOR=nano
export HUGO_BASE_DIR="~/Nextcloud/textes/hugo"
export PATH=~/.pyenv/bin/:~/.cargo/bin:/snap/bin:$WORKFLOW_PATH/bin:$PATH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
#eval "$(rbenv init -)"
source $WORKFLOW_PATH/install/functions_sync.sh
source $WORKFLOW_PATH/install/functions_tk.sh
@ -182,7 +194,7 @@ if command -v nvm &> /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'

View file

@ -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
```

18
histogramme_from_csv.py Normal file
View file

@ -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")

View file

@ -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"

View file

@ -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)