mirror of
https://forge.chapril.org/tykayn/workflow
synced 2025-10-04 17:04:55 +02:00
up chemins source
This commit is contained in:
parent
123aad138c
commit
8b7acbd6dc
7 changed files with 167 additions and 28 deletions
|
@ -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
|
||||
|
|
82
analyse_speed_limits_essonne.py
Normal file
82
analyse_speed_limits_essonne.py
Normal 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")
|
|
@ -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,11 +115,15 @@ 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"
|
||||
|
||||
|
@ -128,11 +137,11 @@ 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
|
||||
|
@ -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'
|
||||
|
|
|
@ -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
18
histogramme_from_csv.py
Normal 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")
|
4
init.sh
4
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"
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue