Răsfoiți Sursa

first commit

remy 2 ani în urmă
comite
179044979d
49 a modificat fișierele cu 1219 adăugiri și 0 ștergeri
  1. 34 0
      IGN/GPS.py
  2. 64 0
      IGN/IGN.py
  3. 113 0
      IGN/STL.py
  4. BIN
      IGN/Thumbs.db
  5. BIN
      IGN/__pycache__/GPS.cpython-312.pyc
  6. BIN
      IGN/__pycache__/GPS.cpython-38.pyc
  7. BIN
      IGN/__pycache__/IGN.cpython-312.pyc
  8. BIN
      IGN/__pycache__/IGN.cpython-38.pyc
  9. BIN
      IGN/__pycache__/STL.cpython-312.pyc
  10. BIN
      IGN/__pycache__/STL.cpython-38.pyc
  11. BIN
      IGN/__pycache__/recupere.cpython-312.pyc
  12. BIN
      IGN/__pycache__/recupere.cpython-38.pyc
  13. 36 0
      IGN/main.py
  14. 41 0
      IGN/recupere.py
  15. 3 0
      OpenElevation/Everest.rcl
  16. BIN
      OpenElevation/Everest.stl
  17. 34 0
      OpenElevation/GPS.py
  18. 63 0
      OpenElevation/OpenElevation.py
  19. 113 0
      OpenElevation/STL.py
  20. BIN
      OpenElevation/Thumbs.db
  21. BIN
      OpenElevation/__pycache__/GPS.cpython-312.pyc
  22. BIN
      OpenElevation/__pycache__/GPS.cpython-38.pyc
  23. BIN
      OpenElevation/__pycache__/IGN.cpython-312.pyc
  24. BIN
      OpenElevation/__pycache__/OpenElevation.cpython-38.pyc
  25. BIN
      OpenElevation/__pycache__/STL.cpython-312.pyc
  26. BIN
      OpenElevation/__pycache__/STL.cpython-38.pyc
  27. BIN
      OpenElevation/__pycache__/recupere.cpython-312.pyc
  28. BIN
      OpenElevation/__pycache__/recupere.cpython-38.pyc
  29. 36 0
      OpenElevation/main.py
  30. 41 0
      OpenElevation/recupere.py
  31. 38 0
      Test/CubeV2.py
  32. BIN
      Test/IGN.stl
  33. BIN
      Test/Thumbs.db
  34. 165 0
      Test/cube.py
  35. BIN
      Test/cube.stl
  36. 119 0
      Test/test.py
  37. 24 0
      geonames.py
  38. 3 0
      open-meteo/Everest.rcl
  39. BIN
      open-meteo/Everest.stl
  40. 34 0
      open-meteo/GPS.py
  41. 113 0
      open-meteo/STL.py
  42. BIN
      open-meteo/Thumbs.db
  43. BIN
      open-meteo/__pycache__/GPS.cpython-312.pyc
  44. BIN
      open-meteo/__pycache__/STL.cpython-312.pyc
  45. BIN
      open-meteo/__pycache__/openMeteo.cpython-312.pyc
  46. BIN
      open-meteo/__pycache__/recupere.cpython-312.pyc
  47. 36 0
      open-meteo/main.py
  48. 68 0
      open-meteo/openMeteo.py
  49. 41 0
      open-meteo/recupere.py

+ 34 - 0
IGN/GPS.py

@@ -0,0 +1,34 @@
+import math
+
+def longitudePlus(longitude_actuelle, deplacement_metre,latitude):
+	rayon_terre_metres = 6371000
+	latitude_radians = math.radians(latitude)
+	circonference_terre_metres = 2 * math.pi * rayon_terre_metres * math.cos(latitude_radians)
+	longueur_degre_longitude_metres = circonference_terre_metres / 360
+	return longitude_actuelle + (deplacement_metre / longueur_degre_longitude_metres)
+	 
+def longitudeMoins(longitude_actuelle, deplacement_metre, latitude):
+	rayon_terre_metres = 6371000
+	latitude_radians = math.radians(latitude)
+	circonference_terre_metres = 2 * math.pi * rayon_terre_metres * math.cos(latitude_radians)
+	longueur_degre_longitude_metres = circonference_terre_metres / 360
+	print(type(longitude_actuelle))
+	return longitude_actuelle - (deplacement_metre / longueur_degre_longitude_metres)
+
+
+def latitudePlus(latitude_actuelle, deplacement_metre):
+	rayon_terre_metres = 6371000
+	return latitude_actuelle - (deplacement_metre / rayon_terre_metres) * (180 / math.pi)
+	
+def latitudeMoins(latitude_actuelle, deplacement_metre):
+	rayon_terre_metres = 6371000
+	nouvelle_latitude = latitude_actuelle + (deplacement_metre / rayon_terre_metres) * (180 / math.pi)
+	return nouvelle_latitude
+
+def Milieu(Latitude,Longitude,distance,definition):
+	Latitude=latitudeMoins(Latitude,distance/2)
+	Longitude=longitudeMoins(Longitude,distance/2,Latitude)	
+	lenX=int(distance/definition)
+	lenY=int(distance/definition)
+	deplacement_metres = definition
+	return Latitude,Longitude,lenX,lenY,deplacement_metres

+ 64 - 0
IGN/IGN.py

@@ -0,0 +1,64 @@
+import requests
+import json
+import time
+
+def alt(longitude, latitude):
+	if len(longitude) != len(latitude):
+		print ("Les tableaux de longitude et de latitude doivent avoir la même taille.")
+		return "error"
+	total_elements = len(longitude)
+	batch_size = 175
+
+	start = 0
+	res=[]
+	i=0
+	while start < total_elements:
+		print(i,"/",total_elements/150)
+		i=i+1
+		end = min(start + batch_size, total_elements)
+	
+
+		longitude_batch = longitude[start:end]
+		latitude_batch = latitude[start:end]
+
+		res=res+req(longitude_batch, latitude_batch, len(longitude_batch))
+
+		# Mettez à jour l'indice de début pour le prochain lot
+		start = end
+	return res
+		
+
+def req(latitude, longitude,nb):
+	longi=""
+	latti=""
+	for i in range(nb):
+		if i > 0:
+			longi += "|"
+			latti += "|"
+			
+		longi += str(longitude[i])
+		latti += str(latitude[i])
+		
+	
+	url = f'https://wxs.ign.fr/calcul/alti/rest/elevation.json?lon={longi}&lat={latti}&zonly=true'
+	while(1):
+		try:
+			response = requests.get(url)
+			
+			if response.status_code == 200:
+				try:
+					data = json.loads(response.text)
+				
+					if 'elevations' in data:
+						elevation = data['elevations']
+						return elevation
+					else:
+						print("Impossible d'obtenir l'altitude pour les coordonnées spécifiées.")
+				except:
+					print(url)
+					print(latitude,",",longitude)
+					time.sleep(1)
+			else:
+				print(f"Erreur de réponse de l'API. Code de statut : {response.status_code}")
+		except requests.exceptions.RequestException as e:
+			print(f"Une erreur s'est produite lors de la requête : {e}")

+ 113 - 0
IGN/STL.py

@@ -0,0 +1,113 @@
+from stl import mesh
+import numpy as np
+
+def lire_et_extraire_infos(nom_fichier):
+	entiers = []
+	tableau_float = []
+	try:
+		with open(nom_fichier, 'r') as fichier:
+			lignes = fichier.readlines()
+			
+			for i in range(3):
+				entiers.append(int(lignes[i].strip()))  # Convertit en entier et supprime les espaces en début et fin de ligne
+			
+			quatrieme_ligne = lignes[3].strip('[]\n').split(',')
+			tableau_float = [float(x) for x in quatrieme_ligne]
+
+		return entiers, tableau_float
+	except FileNotFoundError:
+		print(f"Le fichier '{nom_fichier}' n'a pas été trouvé.")
+		return None, None
+
+
+def transformeSTL(nom):
+	nomDonne = nom+".rcl"
+	donne = lire_et_extraire_infos(nomDonne)
+
+	deplacement_metres=donne[0][0]
+	lenX=donne[0][1]
+	lenY=donne[0][2]
+	test=donne[1]
+
+	facteur = deplacement_metres
+
+	test = [nombre / facteur for nombre in test]
+	mini=min(test)-1
+	test = [nombre - mini for nombre in test]
+
+	vertices = np.zeros((lenX*lenY * 2,3) , dtype=float)
+	y=0
+	for i in range (0,lenX):
+		for j in range (0,lenY):
+			vertices[y]= [i,j,0]
+			vertices[y+1]= [i,j,test[i*lenY+j]]
+			y=y+2
+
+
+
+	nb=(lenX*2-2)
+	faces1 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(0,lenX*2-2,2):
+		faces1[y] = [i,i+1 ,i+2]
+		faces1[y+1] = [i+1 ,i+3,i+2]
+		y=y+2
+
+
+
+	nb=lenY*2-2
+	faces2 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(0,lenX*2*lenY-lenY*2 ,lenX*2):
+		faces2[y] 	= [i,i+1,i+lenX*2]
+		faces2[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
+		y=y+2
+
+	nb=(lenX*2-2)
+	Start3 = (lenX*2*lenY)-lenX*2
+	faces3 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(Start3,lenX*2-2+Start3,2):
+		faces3[y] = [i,i+1 ,i+2]
+		faces3[y+1] = [i+1,i+3 ,i+2]
+		y=y+2
+
+	nb = lenY*2-2
+	Start4 = lenX*2-2
+	faces4 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(Start4,lenX*2*lenY-lenY*2 +Start4,lenX*2):
+		faces4[y] 	= [i,i+1,i+lenX*2]
+		faces4[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
+		y=y+2
+
+	nb = 2
+	faces5 = np.zeros((nb,3), dtype=int)
+	faces5[0] =[0,lenX*2-2,(lenX*2*lenY)-lenX*2]
+	faces5[1] =[lenX*2-2,lenX*lenY*2-2,(lenX*2*lenY)-lenX*2]
+
+
+	nb=lenX*lenY*2
+	faces6 = np.zeros((nb,3), dtype=int)
+	y=0
+	for j in range(0,lenY-1):
+		for i in range(lenX*2*j+1,lenX*2*j+lenX*2-1,2):
+			faces6[y]=[i,i+2,lenX*2+i]
+			faces6[y+1]=[i+2,lenX*2+i+2,lenX*2+i]
+			y=y+2
+			
+
+	faces=np.concatenate((faces1, faces2,faces3,faces4,faces5,faces6), axis=0)
+
+	# Créez le maillage STL
+	cube = mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype))
+
+	for i, f in enumerate(faces):
+		for j in range(3):
+			cube.vectors[i][j] = vertices[f[j], :]
+
+	#Sauvegardez le cube au format STL
+	nomSTL=nom+".stl"
+	cube.save(nomSTL)
+
+	#"""

BIN
IGN/Thumbs.db


BIN
IGN/__pycache__/GPS.cpython-312.pyc


BIN
IGN/__pycache__/GPS.cpython-38.pyc


BIN
IGN/__pycache__/IGN.cpython-312.pyc


BIN
IGN/__pycache__/IGN.cpython-38.pyc


BIN
IGN/__pycache__/STL.cpython-312.pyc


BIN
IGN/__pycache__/STL.cpython-38.pyc


BIN
IGN/__pycache__/recupere.cpython-312.pyc


BIN
IGN/__pycache__/recupere.cpython-38.pyc


+ 36 - 0
IGN/main.py

@@ -0,0 +1,36 @@
+from GPS import *
+from recupere import *
+from STL import *
+
+#45.221435, 5.016486 tersanne
+#45.171243, 5.722483 Grenoble
+#45.831949, 6.864395 mont blanc
+#45.010632, 5.443115 Vercors
+#45.849367, 6.182756 LacAnnecy
+#27.987348, 86.922997 Everest
+nom = "Vercors"
+Latitude = 45.010632
+Longitude = 5.443115
+distance = 70000
+definition = 100
+
+gps = Milieu(Latitude,Longitude,distance,definition)
+
+latitudeStart = gps[0]
+longitudeStart = gps[1]
+deplacement_metres = gps[4]
+facteur = deplacement_metres
+lenX=gps[2]
+lenY=gps[3]
+
+print("Latitude de départ:", latitudeStart)
+print("Longitude de départ:", longitudeStart)
+print("Déplacement en mètres:", deplacement_metres)
+print("Facteur:", facteur)
+print("Longueur en X:", lenX)
+print("Longueur en Y:", lenY)
+
+
+recupere(latitudeStart,longitudeStart,deplacement_metres,facteur,lenX,lenY,nom)
+
+transformeSTL(nom)

+ 41 - 0
IGN/recupere.py

@@ -0,0 +1,41 @@
+from stl import mesh
+import numpy as np
+import requests
+import math
+import time
+import datetime
+
+from IGN import alt
+from GPS import *
+
+
+
+
+def ecrire_donnees(deplacement_metres,lenX,lenY,altitude,nom):
+	now = datetime.datetime.now()
+	date_heure = now.strftime("%Y-%m-%d-%H-%M-%S")
+	#nom_fichier = f"Donne({date_heure}).txt"
+	nom_fichier = nom+".rcl"
+	with open(nom_fichier, "w") as fichier:
+		fichier.write(f"{deplacement_metres}\n")
+		fichier.write(f"{lenX}\n")
+		fichier.write(f"{lenY}\n")
+		fichier.write(f"{altitude}\n")
+
+def recupere(latitudeStart,longitudeStart,deplacement_metres,facteur,lenX,lenY,nom):
+	Tabaltitude=[]
+	latitude=latitudeStart
+	TabLongitude=[]
+	TabLatittude=[]
+	for j in range (0,lenX):
+		longitude=longitudeStart
+		for i in range (0,lenY):
+			TabLongitude.append(longitude)
+			TabLatittude.append(latitude)
+			longitude=longitudePlus(longitude,deplacement_metres,latitude)
+		latitude=latitudePlus(latitude,deplacement_metres)
+		
+	Tabaltitude=alt(TabLatittude,TabLongitude)
+	ecrire_donnees(deplacement_metres,lenX,lenY,Tabaltitude,nom)
+
+	# print(latitude,",",longitude)

Fișier diff suprimat deoarece este prea mare
+ 3 - 0
OpenElevation/Everest.rcl


BIN
OpenElevation/Everest.stl


+ 34 - 0
OpenElevation/GPS.py

@@ -0,0 +1,34 @@
+import math
+
+def longitudePlus(longitude_actuelle, deplacement_metre,latitude):
+	rayon_terre_metres = 6371000
+	latitude_radians = math.radians(latitude)
+	circonference_terre_metres = 2 * math.pi * rayon_terre_metres * math.cos(latitude_radians)
+	longueur_degre_longitude_metres = circonference_terre_metres / 360
+	return longitude_actuelle + (deplacement_metre / longueur_degre_longitude_metres)
+	 
+def longitudeMoins(longitude_actuelle, deplacement_metre, latitude):
+	rayon_terre_metres = 6371000
+	latitude_radians = math.radians(latitude)
+	circonference_terre_metres = 2 * math.pi * rayon_terre_metres * math.cos(latitude_radians)
+	longueur_degre_longitude_metres = circonference_terre_metres / 360
+	print(type(longitude_actuelle))
+	return longitude_actuelle - (deplacement_metre / longueur_degre_longitude_metres)
+
+
+def latitudePlus(latitude_actuelle, deplacement_metre):
+	rayon_terre_metres = 6371000
+	return latitude_actuelle - (deplacement_metre / rayon_terre_metres) * (180 / math.pi)
+	
+def latitudeMoins(latitude_actuelle, deplacement_metre):
+	rayon_terre_metres = 6371000
+	nouvelle_latitude = latitude_actuelle + (deplacement_metre / rayon_terre_metres) * (180 / math.pi)
+	return nouvelle_latitude
+
+def Milieu(Latitude,Longitude,distance,definition):
+	Latitude=latitudeMoins(Latitude,distance/2)
+	Longitude=longitudeMoins(Longitude,distance/2,Latitude)	
+	lenX=int(distance/definition)
+	lenY=int(distance/definition)
+	deplacement_metres = definition
+	return Latitude,Longitude,lenX,lenY,deplacement_metres

+ 63 - 0
OpenElevation/OpenElevation.py

@@ -0,0 +1,63 @@
+import requests
+import json
+import time
+
+def alt(longitude, latitude):
+	if len(longitude) != len(latitude):
+		print ("Les tableaux de longitude et de latitude doivent avoir la même taille.")
+		return "error"
+	total_elements = len(longitude)
+	batch_size = 200
+
+	start = 0
+	res=[]
+	i=0
+	while start < total_elements:
+		print(i,"/",total_elements/batch_size)
+		i=i+1
+		end = min(start + batch_size, total_elements)
+	
+
+		longitude_batch = longitude[start:end]
+		latitude_batch = latitude[start:end]
+
+		res=res+req(longitude_batch, latitude_batch, len(longitude_batch))
+
+		# Mettez à jour l'indice de début pour le prochain lot
+		start = end
+	return res
+		
+def req(latitude, longitude,nb):
+	url = f'https://api.open-elevation.com/api/v1/lookup?locations='
+	for i in range(nb):
+			url +=  str(latitude[i])
+			url += ","
+			url += str(longitude[i])
+			url += "|"
+	
+	while(1):
+		try:
+			response = requests.get(url)
+			
+			if response.status_code == 200:
+				try:
+					data = json.loads(response.text)
+					elevations = [result['elevation'] for result in data['results']]
+
+					return elevations
+					
+					"""if 'elevations' in data:
+						elevation = data['elevations']
+						return elevation
+					else:
+						print("Impossible d'obtenir l'altitude pour les coordonnées spécifiées.")
+					"""
+				except:
+					print("impossible de decode")
+					# ~ print(url)
+					# ~ print(latitude,",",longitude)
+					time.sleep(1)
+			else:
+				print(f"Erreur de réponse de l'API. Code de statut : {response.status_code}")
+		except requests.exceptions.RequestException as e:
+			print(f"Une erreur s'est produite lors de la requête : {e}")

+ 113 - 0
OpenElevation/STL.py

@@ -0,0 +1,113 @@
+from stl import mesh
+import numpy as np
+
+def lire_et_extraire_infos(nom_fichier):
+	entiers = []
+	tableau_float = []
+	try:
+		with open(nom_fichier, 'r') as fichier:
+			lignes = fichier.readlines()
+			
+			for i in range(3):
+				entiers.append(int(lignes[i].strip()))  # Convertit en entier et supprime les espaces en début et fin de ligne
+			
+			quatrieme_ligne = lignes[3].strip('[]\n').split(',')
+			tableau_float = [float(x) for x in quatrieme_ligne]
+
+		return entiers, tableau_float
+	except FileNotFoundError:
+		print(f"Le fichier '{nom_fichier}' n'a pas été trouvé.")
+		return None, None
+
+
+def transformeSTL(nom):
+	nomDonne = nom+".rcl"
+	donne = lire_et_extraire_infos(nomDonne)
+
+	deplacement_metres=donne[0][0]
+	lenX=donne[0][1]
+	lenY=donne[0][2]
+	test=donne[1]
+
+	facteur = deplacement_metres
+
+	test = [nombre / facteur for nombre in test]
+	mini=min(test)-1
+	test = [nombre - mini for nombre in test]
+
+	vertices = np.zeros((lenX*lenY * 2,3) , dtype=float)
+	y=0
+	for i in range (0,lenX):
+		for j in range (0,lenY):
+			vertices[y]= [i,j,0]
+			vertices[y+1]= [i,j,test[i*lenY+j]]
+			y=y+2
+
+
+
+	nb=(lenX*2-2)
+	faces1 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(0,lenX*2-2,2):
+		faces1[y] = [i,i+1 ,i+2]
+		faces1[y+1] = [i+1 ,i+3,i+2]
+		y=y+2
+
+
+
+	nb=lenY*2-2
+	faces2 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(0,lenX*2*lenY-lenY*2 ,lenX*2):
+		faces2[y] 	= [i,i+1,i+lenX*2]
+		faces2[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
+		y=y+2
+
+	nb=(lenX*2-2)
+	Start3 = (lenX*2*lenY)-lenX*2
+	faces3 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(Start3,lenX*2-2+Start3,2):
+		faces3[y] = [i,i+1 ,i+2]
+		faces3[y+1] = [i+1,i+3 ,i+2]
+		y=y+2
+
+	nb = lenY*2-2
+	Start4 = lenX*2-2
+	faces4 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(Start4,lenX*2*lenY-lenY*2 +Start4,lenX*2):
+		faces4[y] 	= [i,i+1,i+lenX*2]
+		faces4[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
+		y=y+2
+
+	nb = 2
+	faces5 = np.zeros((nb,3), dtype=int)
+	faces5[0] =[0,lenX*2-2,(lenX*2*lenY)-lenX*2]
+	faces5[1] =[lenX*2-2,lenX*lenY*2-2,(lenX*2*lenY)-lenX*2]
+
+
+	nb=lenX*lenY*2
+	faces6 = np.zeros((nb,3), dtype=int)
+	y=0
+	for j in range(0,lenY-1):
+		for i in range(lenX*2*j+1,lenX*2*j+lenX*2-1,2):
+			faces6[y]=[i,i+2,lenX*2+i]
+			faces6[y+1]=[i+2,lenX*2+i+2,lenX*2+i]
+			y=y+2
+			
+
+	faces=np.concatenate((faces1, faces2,faces3,faces4,faces5,faces6), axis=0)
+
+	# Créez le maillage STL
+	cube = mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype))
+
+	for i, f in enumerate(faces):
+		for j in range(3):
+			cube.vectors[i][j] = vertices[f[j], :]
+
+	#Sauvegardez le cube au format STL
+	nomSTL=nom+".stl"
+	cube.save(nomSTL)
+
+	#"""

BIN
OpenElevation/Thumbs.db


BIN
OpenElevation/__pycache__/GPS.cpython-312.pyc


BIN
OpenElevation/__pycache__/GPS.cpython-38.pyc


BIN
OpenElevation/__pycache__/IGN.cpython-312.pyc


BIN
OpenElevation/__pycache__/OpenElevation.cpython-38.pyc


BIN
OpenElevation/__pycache__/STL.cpython-312.pyc


BIN
OpenElevation/__pycache__/STL.cpython-38.pyc


BIN
OpenElevation/__pycache__/recupere.cpython-312.pyc


BIN
OpenElevation/__pycache__/recupere.cpython-38.pyc


+ 36 - 0
OpenElevation/main.py

@@ -0,0 +1,36 @@
+from GPS import *
+from recupere import *
+from STL import *
+
+#45.221435, 5.016486 tersanne
+#45.171243, 5.722483 Grenoble
+#45.831949, 6.864395 mont blanc
+#45.010632, 5.443115 Vercors
+#45.849367, 6.182756 LacAnnecy
+#27.987348, 86.922997 Everest
+nom = "Everest"
+Latitude = 27.987348
+Longitude = 86.922997
+distance = 5000
+definition = 50
+
+gps = Milieu(Latitude,Longitude,distance,definition)
+
+latitudeStart = gps[0]
+longitudeStart = gps[1]
+deplacement_metres = gps[4]
+facteur = deplacement_metres
+lenX=gps[2]
+lenY=gps[3]
+
+print("Latitude de départ:", latitudeStart)
+print("Longitude de départ:", longitudeStart)
+print("Déplacement en mètres:", deplacement_metres)
+print("Facteur:", facteur)
+print("Longueur en X:", lenX)
+print("Longueur en Y:", lenY)
+
+
+recupere(latitudeStart,longitudeStart,deplacement_metres,facteur,lenX,lenY,nom)
+
+transformeSTL(nom)

+ 41 - 0
OpenElevation/recupere.py

@@ -0,0 +1,41 @@
+from stl import mesh
+import numpy as np
+import requests
+import math
+import time
+import datetime
+
+from OpenElevation import alt
+from GPS import *
+
+
+
+
+def ecrire_donnees(deplacement_metres,lenX,lenY,altitude,nom):
+	now = datetime.datetime.now()
+	date_heure = now.strftime("%Y-%m-%d-%H-%M-%S")
+	#nom_fichier = f"Donne({date_heure}).txt"
+	nom_fichier = nom+".rcl"
+	with open(nom_fichier, "w") as fichier:
+		fichier.write(f"{deplacement_metres}\n")
+		fichier.write(f"{lenX}\n")
+		fichier.write(f"{lenY}\n")
+		fichier.write(f"{altitude}\n")
+
+def recupere(latitudeStart,longitudeStart,deplacement_metres,facteur,lenX,lenY,nom):
+	Tabaltitude=[]
+	latitude=latitudeStart
+	TabLongitude=[]
+	TabLatittude=[]
+	for j in range (0,lenX):
+		longitude=longitudeStart
+		for i in range (0,lenY):
+			TabLongitude.append(longitude)
+			TabLatittude.append(latitude)
+			longitude=longitudePlus(longitude,deplacement_metres,latitude)
+		latitude=latitudePlus(latitude,deplacement_metres)
+		
+	Tabaltitude=alt(TabLatittude,TabLongitude)
+	ecrire_donnees(deplacement_metres,lenX,lenY,Tabaltitude,nom)
+
+	# print(latitude,",",longitude)

+ 38 - 0
Test/CubeV2.py

@@ -0,0 +1,38 @@
+from stl import mesh
+import numpy as np
+
+# Définir les sommets du cube
+vertices = np.array([
+    [-1, -1, -1],
+    [+1, -1, -1],
+    [+1, +1, -1],
+    [-1, +1, -1],
+    [-1, -1, +1],
+    [+1, -1, +1],
+    [+1, +1, +1],
+    [-1, +1, +1]
+])
+
+# Définir les faces du cube (triangles individuels)
+faces = np.array([
+    [0, 1, 2],
+    [0, 2, 3],
+    [0, 4, 5],
+    [0, 5, 1],
+    [1, 5, 6],
+    [1, 6, 2],
+    [2, 6, 7],
+    [2, 7, 3],
+    [3, 7, 4],
+    [3, 4, 0],
+    [4, 7, 6],
+    [4, 6, 5]
+])
+
+# Créer le maillage STL
+cube = mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype))
+for i, f in enumerate(faces):
+    cube.vectors[i] = vertices[f]
+
+# Sauvegarder le cube au format STL
+cube.save('cube.stl')

BIN
Test/IGN.stl


BIN
Test/Thumbs.db


+ 165 - 0
Test/cube.py

@@ -0,0 +1,165 @@
+from stl import mesh
+import numpy as np
+
+# Créer un cube 3D
+vertices = np.array([[0,0,0],
+					[0,0,1],
+					[1,0,0],
+					[1,0,1],
+					[2,0,0],
+					[2,0,2],
+					[3,0,0],
+					[3,0,2],
+					[0,1,0],
+					[0,1,1],
+					[1,1,0],
+					[1,1,1],
+					[2,1,0],
+					[2,1,2],
+					[3,1,0],
+					[3,1,2],
+					[0,2,0],
+					[0,2,1],
+					[1,2,0],
+					[1,2,1],
+					[2,2,0],
+					[2,2,2],
+					[3,2,0],
+					[3,2,2],
+					[0,3,0],
+					[0,3,1],
+					[1,3,0],
+					[1,3,1],
+					[2,3,0],
+					[2,3,2],
+					[3,3,0],
+					[3,3,2]])
+					
+vertices3 = np.array([[0,0,0],
+					[0,0,1],
+					[1,0,0],
+					[1,0,1],
+					[2,0,0],
+					[2,0,2],
+					[0,1,0],
+					[0,1,1],
+					[1,1,0],
+					[1,1,1],
+					[2,1,0],
+					[2,1,2],
+					[0,2,0],
+					[0,2,1],
+					[1,2,0],
+					[1,2,1],
+					[2,2,0],
+					[2,2,2]])
+					
+					
+vertices4 = np.array([[0,0,0],
+					[0,0,1],
+					[1,0,0],
+					[1,0,1],
+					[2,0,0],
+					[2,0,2],
+					[3,0,0],
+					[3,0,2],
+					[0,1,0],
+					[0,1,1],
+					[1,1,0],
+					[1,1,1],
+					[2,1,0],
+					[2,1,2],
+					[3,1,0],
+					[3,1,2],
+					[0,2,0],
+					[0,2,1],
+					[1,2,0],
+					[1,2,1],
+					[2,2,0],
+					[2,2,2],
+					[3,2,0],
+					[3,2,2],
+					[0,3,0],
+					[0,3,1],
+					[1,3,0],
+					[1,3,1],
+					[2,3,0],
+					[2,3,2],
+					[3,3,0],
+					[3,3,2]])
+
+"""			
+vertices=vertices3
+lenX = 3
+lenY = 3
+
+"""
+vertices=vertices4
+lenX = 4
+lenY = 4
+
+
+
+nb=(lenX*2-2)
+faces1 = np.zeros((nb, 3), dtype=int)
+y=0
+for i in range(0,lenX*2-2,2):
+	faces1[y] = [i,i+1 ,i+2]
+	faces1[y+1] = [i+1 ,i+3,i+2]
+	y=y+2
+
+
+
+nb=lenY*2-2
+faces2 = np.zeros((nb, 3), dtype=int)
+y=0
+for i in range(0,lenX*lenY+1,lenX*2):
+	faces2[y] 	= [i,i+1,i+lenX*2]
+	faces2[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
+	y=y+2
+
+nb=(lenX*2-2)
+Start3 = (lenX*2*lenY)-lenX*2
+faces3 = np.zeros((nb, 3), dtype=int)
+y=0
+for i in range(Start3,lenX*2-2+Start3,2):
+	faces3[y] = [i,i+1 ,i+2]
+	faces3[y+1] = [i+1,i+3 ,i+2]
+	y=y+2
+
+nb = lenY*2-2
+Start4 = lenX*2-2
+faces4 = np.zeros((nb, 3), dtype=int)
+y=0
+for i in range(Start4,lenX*lenY+1+Start4,lenX*2):
+	faces4[y] 	= [i,i+1,i+lenX*2]
+	faces4[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
+	y=y+2
+
+nb = 2
+faces5 = np.zeros((nb,3), dtype=int)
+faces5[0] =[0,lenX*2-2,(lenX*2*lenY)-lenX*2]
+faces5[1] =[lenX*2-2,lenX*lenY*2-2,(lenX*2*lenY)-lenX*2]
+
+
+nb=lenX*lenY*2
+faces6 = np.zeros((nb,3), dtype=int)
+y=0
+for j in range(0,lenY-1):
+	for i in range(lenX*2*j+1,lenX*2*j+lenX*2-1,2):
+		faces6[y]=[i,i+2,lenX*2+i]
+		faces6[y+1]=[i+2,lenX*2+i+2,lenX*2+i]
+		y=y+2
+		
+
+faces=np.concatenate((faces1, faces2,faces3,faces4,faces5,faces6), axis=0)
+
+# Créez le maillage STL
+cube = mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype))
+
+for i, f in enumerate(faces):
+    for j in range(3):
+        cube.vectors[i][j] = vertices[f[j], :]
+
+#Sauvegardez le cube au format STL
+cube.save('cube.stl')

BIN
Test/cube.stl


+ 119 - 0
Test/test.py

@@ -0,0 +1,119 @@
+from stl import mesh
+import numpy as np
+import requests
+import math
+import time
+import json
+
+# Coordonnées GPS (latitude, longitude) du point dont vous souhaitez obtenir l'altitude
+latitudeStart = 44.903360
+longitudeStart = 5.356751
+
+deplacement_metres = 100
+
+facteur = deplacement_metres
+
+lenX=10
+lenY=10
+
+import math
+
+test=[1430.0, 1369.85, 1298.29, 1229.3, 1175.09, 1138.52, 1124.26, 1105.4, 1095.02, 1082.01, 1422.49, 1349.6, 1284.16, 1210.23, 1150.72, 1114.83, 1097.72, 1091.05, 1078.23, 1069.26, 1414.12, 1336.12, 1270.67, 1190.59, 1125.19, 1096.12, 1082.26, 1073.76, 1063.9, 1058.02, 1402.96, 1340.04, 1267.52, 1164.27, 1101.05, 1080.91, 1072.28, 1064.41, 1056.36, 1051.67, 1381.24, 1321.08, 1247.24, 1137.52, 1083.51, 1074.58, 1067.2, 1054.67, 1048.43, 1047.06, 1355.6, 1297.31, 1215.26, 1115.71, 1084.07, 1077.54, 1059.52, 1047.86, 1044.04, 1043.31, 1326.47, 1265.13, 1183.72, 1107.97, 1083.95, 1067.03, 1054.31, 1044.21, 1041.29, 1041.12, 1296.84, 1233.47, 1162.75, 1111.98, 1088.34, 1069.63, 1055.8, 1045.91, 1042.01, 1040.87, 1272.49, 1214.92, 1160.39, 1117.79, 1086.36, 1067.9, 1057.78, 1048.49, 1043.65, 1041.59, 1261.53, 1207.49, 1164.9, 1121.47, 1088.72, 1073.59, 1062.01, 1057.08, 1055.04, 1056.71]
+"""
+latitude=latitudeStart
+for j in range (0,lenX):
+	longitude=longitudeStart
+	print(j,"/",lenX)
+	for i in range (0,lenY):
+		altitude = alt(latitude,longitude)
+		# print(latitude,",",longitude)
+		# print(altitude)
+		longitude=longitudePlus(longitude,deplacement_metres)
+		test.append(altitude)
+		# time.sleep(0.1)
+	latitude=latitudePlus(latitude,deplacement_metres)
+
+print(latitude,",",longitude)
+
+print(test)
+"""
+test = [nombre / facteur for nombre in test]
+mini=min(test)-1
+test = [nombre - mini for nombre in test]
+
+vertices = np.zeros((lenX*lenY * 2,3) , dtype=float)
+y=0
+for i in range (0,lenX):
+	for j in range (0,lenY):
+		vertices[y]= [i,j,0]
+		vertices[y+1]= [i,j,test[i*lenY+j]]
+		y=y+2
+
+
+
+nb=(lenX*2-2)
+faces1 = np.zeros((nb, 3), dtype=int)
+y=0
+for i in range(0,lenX*2-2,2):
+	faces1[y] = [i,i+1 ,i+2]
+	faces1[y+1] = [i+1 ,i+3,i+2]
+	y=y+2
+
+
+
+nb=lenY*2-2
+faces2 = np.zeros((nb, 3), dtype=int)
+y=0
+for i in range(0,lenX*2*lenY-lenY*2 ,lenX*2):
+	faces2[y] 	= [i,i+1,i+lenX*2]
+	faces2[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
+	y=y+2
+
+nb=(lenX*2-2)
+Start3 = (lenX*2*lenY)-lenX*2
+faces3 = np.zeros((nb, 3), dtype=int)
+y=0
+for i in range(Start3,lenX*2-2+Start3,2):
+	print(i)
+	faces3[y] = [i,i+1 ,i+2]
+	faces3[y+1] = [i+1,i+3 ,i+2]
+	y=y+2
+
+nb = lenY*2-2
+Start4 = lenX*2-2
+faces4 = np.zeros((nb, 3), dtype=int)
+y=0
+for i in range(Start4,lenX*2*lenY-lenY*2+Start4,lenX*2):
+	faces4[y] 	= [i,i+1,i+lenX*2]
+	faces4[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
+	y=y+2
+
+nb = 2
+faces5 = np.zeros((nb,3), dtype=int)
+faces5[0] =[0,lenX*2-2,(lenX*2*lenY)-lenX*2]
+faces5[1] =[lenX*2-2,lenX*lenY*2-2,(lenX*2*lenY)-lenX*2]
+
+
+nb=lenX*lenY*2
+faces6 = np.zeros((nb,3), dtype=int)
+y=0
+for j in range(0,lenY-1):
+	for i in range(lenX*2*j+1,lenX*2*j+lenX*2-1,2):
+		faces6[y]=[i,i+2,lenX*2+i]
+		faces6[y+1]=[i+2,lenX*2+i+2,lenX*2+i]
+		y=y+2
+
+faces=np.concatenate((faces1, faces2,faces3,faces4,faces5,faces6), axis=0)
+
+
+# Créez le maillage STL
+cube = mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype))
+
+for i, f in enumerate(faces):
+    for j in range(3):
+        cube.vectors[i][j] = vertices[f[j], :]
+
+#Sauvegardez le cube au format STL
+cube.save('IGN.stl')
+
+#"""

+ 24 - 0
geonames.py

@@ -0,0 +1,24 @@
+import requests
+
+def alt(latitude, longitude):
+	# URL de l'API Geonames
+	
+	http://api.geonames.org/srtm1?lats=50.01,51.01&lngs=10.2,11.2&username=demo
+	url = f'http://api.geonames.org/srtm3JSON?lat={latitude}&lng={longitude}&username=faloro'
+
+	try:
+		response = requests.get(url)
+		
+		if response.status_code == 200:
+			data = response.json()
+			
+			if 'srtm3' in data:
+				elevation = data['srtm3']
+				return elevation
+			else:
+				print(data)
+				#print("Impossible d'obtenir l'altitude pour les coordonnées spécifiées.")
+		else:
+			print(f"Erreur de réponse de l'API. Code de statut : {response.status_code}")
+	except requests.exceptions.RequestException as e:
+		print(f"Une erreur s'est produite lors de la requête : {e}")

Fișier diff suprimat deoarece este prea mare
+ 3 - 0
open-meteo/Everest.rcl


BIN
open-meteo/Everest.stl


+ 34 - 0
open-meteo/GPS.py

@@ -0,0 +1,34 @@
+import math
+
+def longitudePlus(longitude_actuelle, deplacement_metre,latitude):
+	rayon_terre_metres = 6371000
+	latitude_radians = math.radians(latitude)
+	circonference_terre_metres = 2 * math.pi * rayon_terre_metres * math.cos(latitude_radians)
+	longueur_degre_longitude_metres = circonference_terre_metres / 360
+	return longitude_actuelle + (deplacement_metre / longueur_degre_longitude_metres)
+	 
+def longitudeMoins(longitude_actuelle, deplacement_metre, latitude):
+	rayon_terre_metres = 6371000
+	latitude_radians = math.radians(latitude)
+	circonference_terre_metres = 2 * math.pi * rayon_terre_metres * math.cos(latitude_radians)
+	longueur_degre_longitude_metres = circonference_terre_metres / 360
+	print(type(longitude_actuelle))
+	return longitude_actuelle - (deplacement_metre / longueur_degre_longitude_metres)
+
+
+def latitudePlus(latitude_actuelle, deplacement_metre):
+	rayon_terre_metres = 6371000
+	return latitude_actuelle - (deplacement_metre / rayon_terre_metres) * (180 / math.pi)
+	
+def latitudeMoins(latitude_actuelle, deplacement_metre):
+	rayon_terre_metres = 6371000
+	nouvelle_latitude = latitude_actuelle + (deplacement_metre / rayon_terre_metres) * (180 / math.pi)
+	return nouvelle_latitude
+
+def Milieu(Latitude,Longitude,distance,definition):
+	Latitude=latitudeMoins(Latitude,distance/2)
+	Longitude=longitudeMoins(Longitude,distance/2,Latitude)	
+	lenX=int(distance/definition)
+	lenY=int(distance/definition)
+	deplacement_metres = definition
+	return Latitude,Longitude,lenX,lenY,deplacement_metres

+ 113 - 0
open-meteo/STL.py

@@ -0,0 +1,113 @@
+from stl import mesh
+import numpy as np
+
+def lire_et_extraire_infos(nom_fichier):
+	entiers = []
+	tableau_float = []
+	try:
+		with open(nom_fichier, 'r') as fichier:
+			lignes = fichier.readlines()
+			
+			for i in range(3):
+				entiers.append(int(lignes[i].strip()))  # Convertit en entier et supprime les espaces en début et fin de ligne
+			
+			quatrieme_ligne = lignes[3].strip('[]\n').split(',')
+			tableau_float = [float(x) for x in quatrieme_ligne]
+
+		return entiers, tableau_float
+	except FileNotFoundError:
+		print(f"Le fichier '{nom_fichier}' n'a pas été trouvé.")
+		return None, None
+
+
+def transformeSTL(nom):
+	nomDonne = nom+".rcl"
+	donne = lire_et_extraire_infos(nomDonne)
+
+	deplacement_metres=donne[0][0]
+	lenX=donne[0][1]
+	lenY=donne[0][2]
+	test=donne[1]
+
+	facteur = deplacement_metres
+
+	test = [nombre / facteur for nombre in test]
+	mini=min(test)-1
+	test = [nombre - mini for nombre in test]
+
+	vertices = np.zeros((lenX*lenY * 2,3) , dtype=float)
+	y=0
+	for i in range (0,lenX):
+		for j in range (0,lenY):
+			vertices[y]= [i,j,0]
+			vertices[y+1]= [i,j,test[i*lenY+j]]
+			y=y+2
+
+
+
+	nb=(lenX*2-2)
+	faces1 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(0,lenX*2-2,2):
+		faces1[y] = [i,i+1 ,i+2]
+		faces1[y+1] = [i+1 ,i+3,i+2]
+		y=y+2
+
+
+
+	nb=lenY*2-2
+	faces2 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(0,lenX*2*lenY-lenY*2 ,lenX*2):
+		faces2[y] 	= [i,i+1,i+lenX*2]
+		faces2[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
+		y=y+2
+
+	nb=(lenX*2-2)
+	Start3 = (lenX*2*lenY)-lenX*2
+	faces3 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(Start3,lenX*2-2+Start3,2):
+		faces3[y] = [i,i+1 ,i+2]
+		faces3[y+1] = [i+1,i+3 ,i+2]
+		y=y+2
+
+	nb = lenY*2-2
+	Start4 = lenX*2-2
+	faces4 = np.zeros((nb, 3), dtype=int)
+	y=0
+	for i in range(Start4,lenX*2*lenY-lenY*2 +Start4,lenX*2):
+		faces4[y] 	= [i,i+1,i+lenX*2]
+		faces4[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
+		y=y+2
+
+	nb = 2
+	faces5 = np.zeros((nb,3), dtype=int)
+	faces5[0] =[0,lenX*2-2,(lenX*2*lenY)-lenX*2]
+	faces5[1] =[lenX*2-2,lenX*lenY*2-2,(lenX*2*lenY)-lenX*2]
+
+
+	nb=lenX*lenY*2
+	faces6 = np.zeros((nb,3), dtype=int)
+	y=0
+	for j in range(0,lenY-1):
+		for i in range(lenX*2*j+1,lenX*2*j+lenX*2-1,2):
+			faces6[y]=[i,i+2,lenX*2+i]
+			faces6[y+1]=[i+2,lenX*2+i+2,lenX*2+i]
+			y=y+2
+			
+
+	faces=np.concatenate((faces1, faces2,faces3,faces4,faces5,faces6), axis=0)
+
+	# Créez le maillage STL
+	cube = mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype))
+
+	for i, f in enumerate(faces):
+		for j in range(3):
+			cube.vectors[i][j] = vertices[f[j], :]
+
+	#Sauvegardez le cube au format STL
+	nomSTL=nom+".stl"
+	cube.save(nomSTL)
+
+	#"""

BIN
open-meteo/Thumbs.db


BIN
open-meteo/__pycache__/GPS.cpython-312.pyc


BIN
open-meteo/__pycache__/STL.cpython-312.pyc


BIN
open-meteo/__pycache__/openMeteo.cpython-312.pyc


BIN
open-meteo/__pycache__/recupere.cpython-312.pyc


+ 36 - 0
open-meteo/main.py

@@ -0,0 +1,36 @@
+from GPS import *
+from recupere import *
+from STL import *
+
+#45.221435, 5.016486 tersanne
+#45.171243, 5.722483 Grenoble
+#45.831949, 6.864395 mont blanc
+#45.010632, 5.443115 Vercors
+#45.849367, 6.182756 LacAnnecy
+#27.987348, 86.922997 Everest
+nom = "Everest"
+Latitude = 27.987348
+Longitude = 86.922997
+distance = 5000
+definition = 50
+
+gps = Milieu(Latitude,Longitude,distance,definition)
+
+latitudeStart = gps[0]
+longitudeStart = gps[1]
+deplacement_metres = gps[4]
+facteur = deplacement_metres
+lenX=gps[2]
+lenY=gps[3]
+
+print("Latitude de départ:", latitudeStart)
+print("Longitude de départ:", longitudeStart)
+print("Déplacement en mètres:", deplacement_metres)
+print("Facteur:", facteur)
+print("Longueur en X:", lenX)
+print("Longueur en Y:", lenY)
+
+
+recupere(latitudeStart,longitudeStart,deplacement_metres,facteur,lenX,lenY,nom)
+
+transformeSTL(nom)

+ 68 - 0
open-meteo/openMeteo.py

@@ -0,0 +1,68 @@
+import requests
+import json
+import time
+
+def alt(longitude, latitude):
+	if len(longitude) != len(latitude):
+		print ("Les tableaux de longitude et de latitude doivent avoir la même taille.")
+		return "error"
+	total_elements = len(longitude)
+	batch_size = 100
+
+	start = 0
+	res=[]
+	i=0
+	while start < total_elements:
+		print(i,"/",total_elements/batch_size)
+		i=i+1
+		end = min(start + batch_size, total_elements)
+	
+
+		longitude_batch = longitude[start:end]
+		latitude_batch = latitude[start:end]
+
+		res=res+req(longitude_batch, latitude_batch, len(longitude_batch))
+
+		# Mettez à jour l'indice de début pour le prochain lot
+		start = end
+	return res
+		
+
+def req(latitude, longitude,nb):
+	longi=""
+	latti=""
+	for i in range(nb):
+		if i > 0:
+			longi += ","
+			latti += ","
+			
+		longi += str(longitude[i])
+		latti += str(latitude[i])
+		
+	
+	url = f'https://api.open-meteo.com/v1/elevation?latitude={latti}&longitude={longi}'
+	
+	rd=0
+	while(1):
+		print(rd)
+		rd=rd+1
+		try:
+			response = requests.get(url)
+			
+			if response.status_code == 200:
+				try:
+					data = json.loads(response.text)
+				
+					if 'elevation' in data:
+						elevation = data['elevation']
+						return elevation
+					else:
+						print("Impossible d'obtenir l'altitude pour les coordonnées spécifiées.")
+				except:
+					print(url)
+					print(latitude,",",longitude)
+					time.sleep(1)
+			else:
+				print(f"Erreur de réponse de l'API. Code de statut : {response.status_code}")
+		except requests.exceptions.RequestException as e:
+			print(f"Une erreur s'est produite lors de la requête : {e}")

+ 41 - 0
open-meteo/recupere.py

@@ -0,0 +1,41 @@
+from stl import mesh
+import numpy as np
+import requests
+import math
+import time
+import datetime
+
+from openMeteo import alt
+from GPS import *
+
+
+
+
+def ecrire_donnees(deplacement_metres,lenX,lenY,altitude,nom):
+	now = datetime.datetime.now()
+	date_heure = now.strftime("%Y-%m-%d-%H-%M-%S")
+	#nom_fichier = f"Donne({date_heure}).txt"
+	nom_fichier = nom+".rcl"
+	with open(nom_fichier, "w") as fichier:
+		fichier.write(f"{deplacement_metres}\n")
+		fichier.write(f"{lenX}\n")
+		fichier.write(f"{lenY}\n")
+		fichier.write(f"{altitude}\n")
+
+def recupere(latitudeStart,longitudeStart,deplacement_metres,facteur,lenX,lenY,nom):
+	Tabaltitude=[]
+	latitude=latitudeStart
+	TabLongitude=[]
+	TabLatittude=[]
+	for j in range (0,lenX):
+		longitude=longitudeStart
+		for i in range (0,lenY):
+			TabLongitude.append(longitude)
+			TabLatittude.append(latitude)
+			longitude=longitudePlus(longitude,deplacement_metres,latitude)
+		latitude=latitudePlus(latitude,deplacement_metres)
+		
+	Tabaltitude=alt(TabLatittude,TabLongitude)
+	ecrire_donnees(deplacement_metres,lenX,lenY,Tabaltitude,nom)
+
+	# print(latitude,",",longitude)

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff