#1 Le 09/07/2019, à 11:30
- Phyllinux
Script pour récupération de la photo satellite des nuages
Bonjour,
Je suis un grand fan de XPlanetFX, qui permet d'afficher un fond d'écran dynamique sur son bureau, avec une image satellite de la terre (et de la lune en orbite).
Le souci rencontré est que le 'calque' de la couverture nuageuse est foireux depuis longtemps, car la photo satellite des nuages n'est plus mise à jour (le serveur sur lequel elle était téléchargée ne répond plus !). Du coup, c'est toujours la même image satellite gardée en cache qui va se plaquer sur le globe.
J'ai enfin trouvé un site qui donne l'image de la couverture nuageuse, actualisée plusieurs fois par jour (toutes les 3H ??), ce qui est parfait.
Je voudrais à présent automatiser son téléchargement afin de l'intégrer dans XPlanteFX.
Je pense que cela est assez facilement réalisable, mais je ne sais pas faire !
Le lien pour la récupération de cette image actualisée est :
https://raw.githubusercontent.com/apoll … global.jpg
Le nom du fichier à télécharger étant 'global.jpg', il est nécessaire de le renommer en 'clouds.jpg'.
Son enregistrement doit s'effectuer dans le répertoire suivant :
home/.xplanetFX/cache
afin que XPlanetFX traite ce fichier comme le calque de la couverture nuageuse.
Une fréquence de téléchargement de 2H me semble être le bon rythme pour avoir un bon rendu.
Une bonne âme pour me donner un coup de main ? Pour les pros des scripts, je pense que cela ne devrait pas prendre plus de 5 mn pour le concocter.
Question annexe : Comment faire pour automatiser le lancement de ce script dès l'ouverture de la session ?
Au final on obtient quelque chose qui ressemble à ceci (en fonction des paramètres d'affichage déclarés)
Merci d'avance !!!
Dernière modification par Phyllinux (Le 09/07/2019, à 11:53)
The ship is sinking normally...
Hors ligne
#2 Le 09/07/2019, à 11:59
- kamaris
Re : Script pour récupération de la photo satellite des nuages
Une possibilité est ce genre de script :
#!/bin/bash
while true; do
wget -O ~/.xplanetFX/cache/clouds.jpg https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg
sleep 2h
done
Pour le lancer au démarrage de la session, il faut le rajouter aux applications à lancer au démarrage de la session dans l'outil de configuration de ton environnement de bureau, ou bien créer un lanceur dans ~/.config/autostart en t'inspirant de ceux qui existent déjà. Avant ça, bien sûr, il faut avoir stocké le script dans un endroit approprié (par exemple ~/bin) et l'avoir rendu exécutable par chmod u+x nom-du-script.
Hors ligne
#3 Le 09/07/2019, à 12:38
- Watael
Re : Script pour récupération de la photo satellite des nuages
ou plutôt, avec cron, ou avec systemd, qui peut suppléer cron.
pour cela, il faut écrire un fichier .service et un fichier .timer sous ~/.config/systemd/user/
ps: je n'ai pas trouvé de doc pour Ubuntu...
Dernière modification par Watael (Le 09/07/2019, à 12:46)
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#4 Le 09/07/2019, à 13:55
- kholo
Re : Script pour récupération de la photo satellite des nuages
salut,
j'ai mis sur un fil quelques explications sur un service avec systemd...
après un peu de lecture ou là, aussi sur la doc (pas évident de tout piger !)...
Hors ligne
#5 Le 09/07/2019, à 18:11
- Sciensous
Re : Script pour récupération de la photo satellite des nuages
Une possibilité est ce genre de script :
#!/bin/bash while true; do wget -O ~/.xplanetFX/cache/clouds.jpg https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg sleep 2h done
Pour le lancer au démarrage de la session, il faut le rajouter aux applications à lancer au démarrage de la session dans l'outil de configuration de ton environnement de bureau, ou bien créer un lanceur dans ~/.config/autostart en t'inspirant de ceux qui existent déjà. Avant ça, bien sûr, il faut avoir stocké le script dans un endroit approprié (par exemple ~/bin) et l'avoir rendu exécutable par chmod u+x nom-du-script.
peut être simplifié par
watch -n $((2*3600)) wget -c -O ~/.xplanetFX/cache/clouds.jpg https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg
le $((2*3600)) correspond à 2h*3600s/h
Dernière modification par Sciensous (Le 09/07/2019, à 18:23)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#6 Le 09/07/2019, à 23:13
- Phyllinux
Re : Script pour récupération de la photo satellite des nuages
Merci pour vos propositions
Je teste cela et reviendrai vers vous si j'ai encore besoin d'un coup de main ou vous donner le résultat !
The ship is sinking normally...
Hors ligne
#7 Le 09/07/2019, à 23:56
- melixgaro
Re : Script pour récupération de la photo satellite des nuages
Salut,
Une curiosité : effectues-tu une transformation géométrique de l'image de la couverture nuageuse pour la « coller » sur la sphère de ton fond d'écran ? si oui, comment ?
Modif. : Ah, je n'avais pas vu que c'était basé sur une commande externe (xplanet) qui s'occupe certainement de la magie mathématique pour coller les nuages sur la sphère.
Dernière modification par melixgaro (Le 10/07/2019, à 00:03)
Linux depuis ~2007. Xubuntu seulement.
Hors ligne
#8 Le 10/07/2019, à 19:53
- Phyllinux
Re : Script pour récupération de la photo satellite des nuages
kamaris a écrit :Une possibilité est ce genre de script :
#!/bin/bash while true; do wget -O ~/.xplanetFX/cache/clouds.jpg https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg sleep 2h done
Pour le lancer au démarrage de la session, il faut le rajouter aux applications à lancer au démarrage de la session dans l'outil de configuration de ton environnement de bureau, ou bien créer un lanceur dans ~/.config/autostart en t'inspirant de ceux qui existent déjà. Avant ça, bien sûr, il faut avoir stocké le script dans un endroit approprié (par exemple ~/bin) et l'avoir rendu exécutable par chmod u+x nom-du-script.
peut être simplifié par
watch -n $((2*3600)) wget -c -O ~/.xplanetFX/cache/clouds.jpg https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg
le $((2*3600)) correspond à 2h*3600s/h
@ Sciensous
Avec la ligne de commande donnée, j'obtiens un téléchargement tronqué de l'image.
Voici le retour de la console
Toutes les 7200,0s: wget -c -O /ho... phyllinux-Swift: Wed Jul 10 20:49:59 2019
--2019-07-10 20:49:59-- https://raw.githubusercontent.com/apollo-ng/cloudmap/ma
ster/global.jpg
Résolution de raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.120
.133
Connexion à raw.githubusercontent.com (raw.githubusercontent.com)|151.101.120.13
3|:443… connecté.
requête HTTP transmise, en attente de la réponse… 206 Partial Content
Taille : 2003816 (1,9M), 723220 (706K) restant [image/jpeg]
Enregistre : «/home/phyllinux/.xplanetFX/cache/clouds.jpg»
[ 1250K ignoré ]
1250K
1250K .......... .......... .......... .......... .......... 66% 570K 1s
1300K .......... .......... .......... .......... .......... 68% 1,10M 1s
1350K .......... .......... .......... .......... .......... 71% 578K 1s
1400K .......... .......... .......... .......... .......... 74% 1,78M 1s
1450K .......... .......... .......... .......... .......... 76% 2,24M 0s
1500K .......... .......... .......... .......... .......... 79% 1,58M 0s
1550K .......... .......... .......... .......... .......... 81% 546K 0s
1600K .......... .......... .......... .......... .......... 84% 59,4M 0s
1650K .......... .......... .......... .......... .......... 86% 2,37M 0s
1700K .......... .......... .......... .......... .......... 89% 1,44M 0s
The ship is sinking normally...
Hors ligne
#9 Le 10/07/2019, à 20:01
- Phyllinux
Re : Script pour récupération de la photo satellite des nuages
Une possibilité est ce genre de script :
#!/bin/bash while true; do wget -O ~/.xplanetFX/cache/clouds.jpg https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg sleep 2h done
Pour le lancer au démarrage de la session, il faut le rajouter aux applications à lancer au démarrage de la session dans l'outil de configuration de ton environnement de bureau, ou bien créer un lanceur dans ~/.config/autostart en t'inspirant de ceux qui existent déjà. Avant ça, bien sûr, il faut avoir stocké le script dans un endroit approprié (par exemple ~/bin) et l'avoir rendu exécutable par chmod u+x nom-du-script.
La ligne de commande me permet bien de télécharger l'image correctement.
Maintenant, je regarde comment l'intégrer directement dans XPlanetFX, car il est prévu, dans la console de paramétrage, de pouvoir insérer un script soit Avant ou soit Après le rendu. En l’occurrence, dans mon cas, ce serait plut avant le rendu.
Si je n'y arrive pas, je pense que je me contenterai d'un lancement de script automatique, au démarrage de la session. Il me suffit de décaler le lancement du logiciel (ce qui est possible dans les paramétrages), pour que l'image soit déjà téléchargée avant que XPlanet ne se lance à son tour.
Edit :
N'ayant pas réussi à faire démarrer le script dans l'application XPlanet, je l'ai placé dans le lancement à l'ouverture de session. C'est bon, je récupère bien l'image satellite, et je verrai demain si l'actualisation toutes les 2 heures se passe normalement...
Dernière modification par Phyllinux (Le 10/07/2019, à 22:09)
The ship is sinking normally...
Hors ligne
#10 Le 11/07/2019, à 05:55
- MicP
Re : Script pour récupération de la photo satellite des nuages
Bonjour
Un autre script qui fera en sorte que
le fichier ne sera téléchargé que si il est différent du fichier qui avait déjà été téléchargé.
Toutes les 5 minutes, il va récupérer la valeur de ETag
La valeur de ETag est extraite du retour de la commande :
wget --server-response --spider https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg 2>&1
et seulement si elle est différente de la valeur récupérée précédemment,
il va télécharger le nouveau fichier
et attendre 2 heures avant de continuer
while true; do
nvETag=$(wget --server-response --spider https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg 2>&1 | awk '/ETag:/ {print $2}')
if [ "$nvETag" != "$ancienETag" ]; then
wget -O ~/.xplanetFX/cache/clouds.jpg https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg
sleep 175m # Attendre pendant 2 heures et 55 minutes
fi
ancienETag=$nvETag
sleep 5m
done
Dernière modification par MicP (Le 11/07/2019, à 08:24)
Hors ligne
#11 Le 11/07/2019, à 07:49
- Phyllinux
Re : Script pour récupération de la photo satellite des nuages
@MicP
Merci pour cette proposition d'amélioration du script.
C'est très intéressant. C'est une fonction que je ne connaissais pas.
Cependant, la fréquence est, selon moi, trop élevée.
En effet, je renouvelle le fond d'écran toutes les 20 mn. Essentiellement, c'est pour l'actualisation du calque de la 'nuit' (Cela simule la rotation de la terre, et le fond d'écran affiche donc le globe avec les zones où il fait nuit avec l'utilisation d'une seule photo satellite, alors que pour les zones de 'jour', il y a une photo satellite pour chaque mois, avec une couverture de végétation, de neige et glace différente pour chaque mois...)
La photo satellite que je récupère est actualisée toutes les 3 heures il me semble. C'est pour cela que je la télécharge toutes les 2 heures.
Il me suffit donc de vérifier toutes les heures si c'est une nouvelle (et la télécharger), ou bien si c'est toujours la précédente.
Je vais tester cela !
The ship is sinking normally...
Hors ligne
#12 Le 11/07/2019, à 08:11
- MicP
Re : Script pour récupération de la photo satellite des nuages
Si la photo sur le web est la même que celle qui avait été téléchargée,
il attends 5 minutes avant de vérifier à nouveau si la nouvelle est arrivée.
Mais si il se rend compte que la nouvelle photo est là, il la télécharge
et après l'avoir téléchargée, il attends pendant 2 heures et 55 minutes avant de faire quoi que ce soit.
=======
La différence avec ton script,
c'est qu'il ne téléchargera jamais deux fois la même photo
et qu'il téléchargera la nouvelle au plus tard 5 minutes après qu'elle sera disponible.
Dernière modification par MicP (Le 11/07/2019, à 08:27)
Hors ligne