Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/07/2019, à 12: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)
mini_190709125105522981.png
Merci d'avance !!! wink

Dernière modification par Phyllinux (Le 09/07/2019, à 12:53)


The ship is sinking normally...

Hors ligne

#2 Le 09/07/2019, à 12: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, à 13: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, à 13:46)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 09/07/2019, à 14: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, à 19:11

Sciensous

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
wink

Dernière modification par Sciensous (Le 09/07/2019, à 19:23)


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#6 Le 10/07/2019, à 00:13

Phyllinux

Re : Script pour récupération de la photo satellite des nuages

Merci pour vos propositions smile
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 10/07/2019, à 00: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, à 01:03)


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#8 Le 10/07/2019, à 20:53

Phyllinux

Re : Script pour récupération de la photo satellite des nuages

Sciensous a écrit :
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
wink

@ 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, à 21:01

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.

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, à 23:09)


The ship is sinking normally...

Hors ligne

#10 Le 11/07/2019, à 06: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, à 09:24)

Hors ligne

#11 Le 11/07/2019, à 08: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, à 09: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, à 09:27)

Hors ligne