bash pour importer textures satellites dans fligthgear

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
Reprise du message précédent
ah compris, il me manquait une guillement en ligne juste avant la recherche des png, j'avais un echo " au lieu de echo "" pour passer une ligneje ressaye, ça devrait être bon.
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
Les images sont téléchargées, converties, et les .png effacés automatiquement

merci à tous et en particulier à Jybz.
Je mets à jour le post 1.
je pense que c'est encore améliorable.
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

zatox Membre non connecté
-
- Voir le profil du membre zatox
- Inscrit le : 27/09/2011
- Groupes :
Ami age :c'est bon le script fonctionne.
Les images sont téléchargées, converties, et les .png effacés automatiquement
merci à tous et en particulier à Jybz.
Je mets à jour le post 1.
je pense que c'est encore améliorable.
C'est quoi le post 1 ?!
Carte mère Gigabyte B650 AORUS ELITE AX V1.0 WiFi
Processeur AMD® 8 coeurs RYZEN 7 - 7700X (sans ventirad)
(2) Mémoire de 16 Go DDR5 @ 5600 MHz CL46 Crucial PRO
Carte video RX 7700 XT PULSE, SAPPHIRE®, 12 Go DDR6x
Disque SSD 2 To Gen.4 NVMe Samsung M.2 990 PRO
Carte réseau AMD® M.2 WI-FI 6E RZ616
Processeur AMD® 8 coeurs RYZEN 7 - 7700X (sans ventirad)
(2) Mémoire de 16 Go DDR5 @ 5600 MHz CL46 Crucial PRO
Carte video RX 7700 XT PULSE, SAPPHIRE®, 12 Go DDR6x
Disque SSD 2 To Gen.4 NVMe Samsung M.2 990 PRO
Carte réseau AMD® M.2 WI-FI 6E RZ616

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
voici ce que me dit Helijah
Helijah :Ami age :Faudrait pouvoir récupérer les points GPS de l'avion pendant le jeu,
Faire tourner mon script automatique en tache de fond et cela téléchargerait automatiquement les tuiles
Hé hé, et bien regardes mon petit fichier nasal que j'ai créé pour mes amphibies qui détermine si l'on est sur l'eau ou sur la terre
Comme tu peux le voir on peu en effet récupérer latitude et longitude
Pourrait tu poster sous forme de texte ? s'il te plait Helijah (même si il n'y pas grand chose à recopier)
Ca a l'air facile de prendre les coordonnées de l'avion.
En fonction du cap, je pourrai même décaler les coordonnées pour télécharger la zone, avant que l'avion arrive dessus.
Je vois 2 questions qui se posent
Il faut ralentir le script, pour pas prendre de la ressource pour rien. pas la peine de faire prendre les coordonnées, et télécharger toutes les millisecondes, quoi que je vois que même sans ralentir, la procédure de chargement d'une tuile prend un certain temps. 1 minute ? Finalement, c'est un temps assez adapté pour recharger une nouvelle tuile si besoin.
seconde question, ça serait bien de vérifier si la tuile est pas déjà chargée, et la, je n'ai pas trop d'idée.
Faudrait récupérer la référence de la tuile avant de la charger, et vérifier si elle est déjà dans le fichier où elles sont stockées.
Alors comment récupérer la référence de la tuile avant qu'il ne la charge ?
sinon, ça rechargerait par dessus, c'est pas bien gêannt, ça fonctionnerait, mais c'est pas bien fin comme méthode !
Édité par Ami age Le 23/03/2025 à 10h03
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Helijah Membre non connecté
-
- Voir le profil du membre Helijah
- Inscrit le : 02/05/2011
- Site internet
- Groupes :
Me demander de te fournir le même sous forme de texte ! Mais.....mais.....tu n'as pas mes avions sur ton disque dur ? Le premier qui me vient à l'esprit, le "De Havilland DHC 3 Otter" (mais il y en a plein d'autres). Dossier Nasal fichier onwater.nas et paf tu l'as au format ASCII et tout et tout. Non mais
Aller je vais bouder tiens !......Bon ok je te taquine

Quelques avions pour agrémenter votre FlightGear : Mon Hangar
Un forum pour l'amélioration et/ou la création d'avions : Forum de création
Un forum pour l'amélioration et/ou la création d'avions : Forum de création

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
mais à présent, à partir de novembre, quand les journées sont grises.

_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
Par contre, il faut éviter de télécharger les zones que l'on a déjà téléchargées, car c'est de la bande passante perdu, de la ressource processeur, et en plus, si tout le monde fait ça, les serveurs sur lesquels il y a les textures vont être à plat.
J'ai demandé à chatgpt (beta5 gratuit) il me dit qu'il y aurait une liste des tuiles, ce qui permettrait de faire le test si on la déjà avant de la télécharger.
voilà ce qu'il me dit :
Cette conversation a été générée avec Duck.ai (https://duck.ai) à l'aide du modèle GPT-5 mini d'OpenAI. Les chats IA peuvent afficher des informations inexactes ou offensantes (voir https://duckduckgo.com/duckai/privacy-terms pour en savoir plus).
====================
Message 1 sur 5 de l'utilisateur - 04/10/2025 17:04:19:
flightgear est un simulateur de vol. On peut récupérer des "tuiles", c'est à dire des zones avec des textures issues de photos satellites pour insérer dans le simulateur. J'aimerai charger ces photos automatiquement en fonction de la position de l'avion. je peux le réaliser en script bash linux. par contre, il ne faudrait pas télécharger sans cesse les mêmes tuiles. les tuiles sont téléchargeables ici https://scenery.flightgear.org/static/map/index.html
existe-il une liste des tuiles pour savoir si on l'a déjà téléchargée, avant de lancer le téléchargement ?
GPT-5 mini:
Oui — il y a plusieurs façons d'éviter de retélécharger des tuiles :
1) Utiliser l'index / listing des tuiles
- Le serveur de scenery expose les tuiles sous des chemins prévisibles (ex. /Scenery-v2.12/<tile>/ ou /tiles/...), et on peut interroger le serveur pour savoir si un fichier existe avant de le télécharger. Par exemple, faire un HEAD ou un GET sur l'URL exacte de la tuile et vérifier le code HTTP (200 = existe, 404 = non).
2) Télécharger un index central (recommandé)
- Le site scenery.flightgear.org fournit une carte interactive et des index côté serveur ; plusieurs miroirs et répertoires contiennent des listes ou des répertoires de tuiles (voir /Scenery-v*). Vous pouvez lister les fichiers disponibles sur le miroir (si l'index de répertoire est activé) ou récupérer un fichier manifest si présent.
- Exemple de miroirs/chemins courants (adapter la version) :
- https://scenery.flightgear.org/Scenery-v2.12/
- https://scenery.flightgear.org/static/map/ (carte interactive)
- Sur certains miroirs le listing des dossiers est accessible et peut être parsé.
3) Stratégie locale (plus simple et efficace)
- Maintenir une base locale (fichier texte ou SQLite) contenant les tuiles déjà téléchargées.
- Avant toute requête, vérifier la base locale ; si absent, tenter un HEAD sur l'URL distante, puis télécharger et ajouter à la base.
- Exemple minimal en bash (assume URL construite à partir de la variable TILE and BASE_URL) :
- stocker téléchargés dans downloaded_tiles.txt
-
Code BASH :
if grep -q "$TILE" downloaded_tiles.txt; then skip; else if curl -I --fail "$BASE_URL/$TILE.tar.gz"; then curl -O "$BASE_URL/$TILE.tar.gz" && echo "$TILE" >> downloaded_tiles.txt fi fi
4) Outils existants
- TerraSync / TerraMaster gèrent automatiquement la synchronisation et évitent les doubles téléchargements. Si vous préférez script bash, vous pouvez vous inspirer de TerraMaster ou utiliser rsync/http HEAD comme décrit ci‑dessus.
Conclusion rapide
- Il n'existe pas un unique « fichier manifeste global » officiellement documenté pour toutes les versions (mais certains miroirs fournissent des listings). La méthode la plus fiable est de maintenir un index local des tuiles téléchargées + vérifier l'existence distante par HEAD avant téléchargement (ou utiliser TerraSync/TerraMaster). Si vous voulez, je fournis un script bash prêt à l'emploi basé sur cette approche.
--------------------
Message 2 sur 5 de l'utilisateur - 04/10/2025 17:05:06:
il est ou l'index des tuiles ?
GPT-5 mini:
Oui — il y a un index public des tuiles. Principales options :
- Serveur officiel / miroirs (listing des dossiers)
Exemple : https://scenery.flightgear.org/Scenery-v2.12/ — on peut parcourir les répertoires et voir les tuiles disponibles (noms de dossiers comme w160n20, etc.).
- Carte interactive / index web
https://scenery.flightgear.org/static/map/index.html (ou https://scenery.flightgear.org/map/) affiche visuellement les tuiles et montre leur nom quand on zoome ; utile pour repérer la tuile correspondant à des coordonnées.
- Miroirs publics (index HTTP)
Plusieurs miroirs exposent un index de fichiers consultable (ex. mirrors.ibiblio.org/flightgear/Scenery-v2.12/). Ces listings peuvent être parcourus/parsés par script pour savoir si une tuile existe avant de la télécharger.
Recommandation pratique (bash) :
- Construire l’URL de la tuile (ex. https://scenery.flightgear.org/Scenery-v2.12/w160n20/w160n20.terrasync.tar.gz ou similaire selon format),
- Faire un HEAD (curl -I --fail) pour vérifier l’existence,
- Ou lister/parser le répertoire du miroir pour obtenir la liste des fichiers disponibles avant téléchargement.
Si vous voulez, je fournis un petit script bash qui :
- convertit lat/lon → nom de tuile,
- vérifie l’index distant (HEAD ou parsing du listing),
- évite les re-téléchargements en tenant un fichier local des tuiles déjà récupérées.
--------------------
Message 3 sur 5 de l'utilisateur - 04/10/2025 17:05:43:
oui, pourrait tu faire un petit script bash H
GPT-5 mini:
Voici un script bash minimal qui :
- calcule le nom de tuile FlightGear à partir de lat/lon (format wXXXnYY),
- vérifie si la tuile existe sur le miroir via HEAD,
- télécharge la tuile (terrasync tar.gz) si elle n'a pas déjà été récupérée,
- maintient un fichier local downloaded_tiles.txt pour éviter les re-téléchargements.
Copiez-collez dans un fichier, par ex. fetch_tile.sh, rendez exécutable (chmod +x fetch_tile.sh) puis exécutez ./fetch_tile.sh LAT LON.
Script :
Code BASH :
bash #!/usr/bin/env bash # Usage: ./fetch_tile.sh LAT LON # Ex: ./fetch_tile.sh 48.8566 2.3522 set -euo pipefail LAT="$1" LON="$2" # Configuration BASE_URL="https://scenery.flightgear.org/Scenery-v2.12" # adapter si besoin OUTDIR="./tiles" DBFILE="./downloaded_tiles.txt" MIME_EXT="terrasync.tar.gz" # extension attendue sur le miroir mkdir -p "$OUTDIR" touch "$DBFILE" # Convert lat/lon to tile name (flightgear tile naming: w/e lon block, n/s lat block) # Tile widths/heights are 1° for FG global tiles naming like w160n20 etc. # We'll floor lat/lon to integer degrees and format. lon_deg=$(printf "%.0f" "$(awk "BEGIN {print floor($LON)}")") lat_deg=$(printf "%.0f" "$(awk "BEGIN {print floor($LAT)}")") # Format longitude prefix if [ "$lon_deg" -lt 0 ]; then lon_abs=$(( -lon_deg )) lon_prefix=$(printf "w%03d" "$lon_abs") else lon_abs=$lon_deg lon_prefix=$(printf "e%03d" "$lon_abs") fi # Format latitude prefix if [ "$lat_deg" -lt 0 ]; then lat_abs=$(( -lat_deg )) lat_prefix=$(printf "s%02d" "$lat_abs") else lat_abs=$lat_deg lat_prefix=$(printf "n%02d" "$lat_abs") fi TILE="${lon_prefix}${lat_prefix}" TILE_DIR="${TILE}" TILE_FILE="${TILE}.${MIME_EXT}" REMOTE_URL="${BASE_URL}/${TILE_DIR}/${TILE_FILE}" LOCAL_PATH="${OUTDIR}/${TILE_FILE}" # Check local DB if grep -Fxq "$TILE" "$DBFILE"; then echo "Déjà téléchargée: $TILE" exit 0 fi # Check remote existence with HEAD if curl -sI --fail "$REMOTE_URL" >/dev/null 2>&1; then echo "Trouvez sur le serveur: $REMOTE_URL" else echo "Tuile non trouvée sur le serveur: $REMOTE_URL" >&2 exit 2 fi # Download echo "Téléchargement de $TILE..." if curl -C - -L -o "$LOCAL_PATH" "$REMOTE_URL"; then echo "$TILE" >> "$DBFILE" echo "Téléchargée et enregistrée : $LOCAL_PATH" exit 0 else echo "Erreur lors du téléchargement." >&2 exit 3 fi
Remarques rapides :
- Ajustez BASE_URL et MIME_EXT si votre miroir/version diffèrent.
- Ce script utilise des tuiles 1°x1° typiques ; si vous utilisez une autre grille, adaptez la conversion lat/lon → nom de tuile.
- Pour intégration temps réel, appelez ce script depuis votre boucle qui suit la position de l'avion.
--------------------
Message 4 sur 5 de l'utilisateur - 04/10/2025 17:11:16:
dans ton script, tu utilises position de l'avion, tu sais comment la récupérer, tu sais comment le programme est fait ?
GPT-5 mini:
Je n'ai pas accès à votre instance ni au code de votre programme FlightGear ; je ne connais donc pas exactement comment vous l'avez intégré. En pratique il y a deux approches courantes pour récupérer la position de l'avion et déclencher le téléchargement des tuiles :
1) Via telnet/real-time property tree (méthode recommandée)
- FlightGear expose un Property Tree accessible localement via --telnet=PORT ou --generic=socket-out,... ; la position (latitude, longitude, altitude, heading, etc.) est disponible sous /position/latitude-deg et /position/longitude-deg (ou /position/latitude-gc-deg selon la configuration).
- Exemple : lancer FG avec --telnet=5500 (ou --generic=socket,out,10,127.0.0.1,5500,udp,propertylist).
- On peut alors lire la propriété avec netcat, socat ou fgfs telnet client, ou via le protocole telnet simple que FG utilise.
2) Via output XML/JSON (via --generic=socket-out)
- Configurer FG pour émettre un flux XML/JSON contenant les propriétés désirées vers un port/Unix socket. Votre script peut écouter ce socket et parser les positions.
3) Via file-based properties (moins réactif)
- FlightGear peut écrire des propriétés dans un fichier (par ex. --httpd ou en utilisant des scripts Nasal). Votre script lit périodiquement ce fichier.
Exemples pratiques (bash)
A) Lire la position via telnet (simple poll toutes les secondes)
- Démarrez FG avec: --telnet=5500
- Script minimal pour obtenir lat/lon (utilise printf pour envoyer "get /position/latitude-deg" puis lire la réponse) :
Code BASH :
bash # Lire lat/lon via netcat (exemple) exec 3<>/dev/tcp/127.0.0.1/5500 printf "get /position/latitude-deg\n" >&3 read -r lat_resp <&3 printf "get /position/longitude-deg\n" >&3 read -r lon_resp <&3 # lat_resp contient quelque chose comme "200 /position/latitude-deg 48.8566" lat=$(echo "$lat_resp" | awk '{print $3}') lon=$(echo "$lon_resp" | awk '{print $3}') exec 3>&-
B) Utiliser --generic=socket-out et lire un flux JSON/XML
- Démarrez FG avec par exemple:
--generic=socket,out,10,127.0.0.1,5500,udp,xml
- Écoutez le port UDP en bash (nc -u -l 5500) ou avec un petit Python pour parser proprement.
Recommandation concise
- Si vous voulez un exemple complet intégré (script bash qui se connecte en telnet à FG, lit lat/lon en boucle et appelle le téléchargement de tuiles), dites-moi le mode que vous préférez (telnet property tree, socket XML/JSON ou fichier), et je fournis le script adapté.
--------------------
Message 5 sur 5 de l'utilisateur - 04/10/2025 17:12:03:
rien pour l'instant
GPT-5 mini:
D'accord — dites-moi quand vous voulez que je fournisse un script ou un exemple d'intégration (telnet, socket XML/JSON ou fichier).
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

gerard-ll Membre non connecté
-
- Voir le profil du membre gerard-ll
- Inscrit le : 09/12/2011
- Groupes :
Ami age :Je réfléchis toujours à la question de télécharger les tuiles automatiquement.
Bof, depuis la discussion qu'il me faut retrouvé où Helijah disait qu'on pouvait utuliser le langage "julia" qu'on a dans les dépôts, je ne prends plus que ça.
En plus c'est ultra rapide!
Exemple pour Megève :
Je me fait un petit fichier texte "Megeve.txt" histoire de me rappeler que j'ai téléchargé les tuiles de Megève comme ci-dessous :
Megève Altiport, code OACI = LFHM
julia -t 4 photoscenary.jl -p /home/gerard/Flightgear/photoscenery/ --lat 45.823043 --lon 6.649303 -r 50 -s 3
julia -t 4 photoscenary.jl -p /home/gerard/Flightgear/photoscenery/ --lat 45.823043 --lon 6.649303 -r 50 -s 3
... avec les longitudes et latitudes.
Et je colle donc ça dans la konsole :
Code TEXT :
julia -t 4 photoscenary.jl -p /home/gerard/Flightgear/photoscenery/ --lat 45.823043 --lon 6.649303 -r 50 -s 3
C'est très rapide de télécharger une grosse zone!!
Pour info je n'ai pas télécharger "julia" des dépôts, je ne savais pas que ça y était.
J'ai téléchargé ça chez github de mémoire.
Donc avant de coller la ligne de code dans la konsole je me place dans le répertoire où il y a "julia" pour que ça fonctionne.
Pal mal Mageia!
@+
Gérard
@+
Gérard

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

gerard-ll Membre non connecté
-
- Voir le profil du membre gerard-ll
- Inscrit le : 09/12/2011
- Groupes :
Code TEXT :
-r 50
... C'est un rayon qui forme un cercle qui télécharge les tuiles.
50 c'est déjà beaucoup!
Mais comme ça va vite ce n'est pas génant.
Code TEXT :
-s 3
... ça doit être la résolution de mémoire, faut que je retrouve la discussion.
3 c'est déjà beaucoup.
Pal mal Mageia!
@+
Gérard
@+
Gérard
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie