test.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. from stl import mesh
  2. import numpy as np
  3. import requests
  4. import math
  5. import time
  6. import json
  7. # Coordonnées GPS (latitude, longitude) du point dont vous souhaitez obtenir l'altitude
  8. latitudeStart = 44.903360
  9. longitudeStart = 5.356751
  10. deplacement_metres = 100
  11. facteur = deplacement_metres
  12. lenX=10
  13. lenY=10
  14. import math
  15. 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]
  16. """
  17. latitude=latitudeStart
  18. for j in range (0,lenX):
  19. longitude=longitudeStart
  20. print(j,"/",lenX)
  21. for i in range (0,lenY):
  22. altitude = alt(latitude,longitude)
  23. # print(latitude,",",longitude)
  24. # print(altitude)
  25. longitude=longitudePlus(longitude,deplacement_metres)
  26. test.append(altitude)
  27. # time.sleep(0.1)
  28. latitude=latitudePlus(latitude,deplacement_metres)
  29. print(latitude,",",longitude)
  30. print(test)
  31. """
  32. test = [nombre / facteur for nombre in test]
  33. mini=min(test)-1
  34. test = [nombre - mini for nombre in test]
  35. vertices = np.zeros((lenX*lenY * 2,3) , dtype=float)
  36. y=0
  37. for i in range (0,lenX):
  38. for j in range (0,lenY):
  39. vertices[y]= [i,j,0]
  40. vertices[y+1]= [i,j,test[i*lenY+j]]
  41. y=y+2
  42. nb=(lenX*2-2)
  43. faces1 = np.zeros((nb, 3), dtype=int)
  44. y=0
  45. for i in range(0,lenX*2-2,2):
  46. faces1[y] = [i,i+1 ,i+2]
  47. faces1[y+1] = [i+1 ,i+3,i+2]
  48. y=y+2
  49. nb=lenY*2-2
  50. faces2 = np.zeros((nb, 3), dtype=int)
  51. y=0
  52. for i in range(0,lenX*2*lenY-lenY*2 ,lenX*2):
  53. faces2[y] = [i,i+1,i+lenX*2]
  54. faces2[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
  55. y=y+2
  56. nb=(lenX*2-2)
  57. Start3 = (lenX*2*lenY)-lenX*2
  58. faces3 = np.zeros((nb, 3), dtype=int)
  59. y=0
  60. for i in range(Start3,lenX*2-2+Start3,2):
  61. print(i)
  62. faces3[y] = [i,i+1 ,i+2]
  63. faces3[y+1] = [i+1,i+3 ,i+2]
  64. y=y+2
  65. nb = lenY*2-2
  66. Start4 = lenX*2-2
  67. faces4 = np.zeros((nb, 3), dtype=int)
  68. y=0
  69. for i in range(Start4,lenX*2*lenY-lenY*2+Start4,lenX*2):
  70. faces4[y] = [i,i+1,i+lenX*2]
  71. faces4[y+1] = [i+1,i+lenX*2+1,i+lenX*2]
  72. y=y+2
  73. nb = 2
  74. faces5 = np.zeros((nb,3), dtype=int)
  75. faces5[0] =[0,lenX*2-2,(lenX*2*lenY)-lenX*2]
  76. faces5[1] =[lenX*2-2,lenX*lenY*2-2,(lenX*2*lenY)-lenX*2]
  77. nb=lenX*lenY*2
  78. faces6 = np.zeros((nb,3), dtype=int)
  79. y=0
  80. for j in range(0,lenY-1):
  81. for i in range(lenX*2*j+1,lenX*2*j+lenX*2-1,2):
  82. faces6[y]=[i,i+2,lenX*2+i]
  83. faces6[y+1]=[i+2,lenX*2+i+2,lenX*2+i]
  84. y=y+2
  85. faces=np.concatenate((faces1, faces2,faces3,faces4,faces5,faces6), axis=0)
  86. # Créez le maillage STL
  87. cube = mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype))
  88. for i, f in enumerate(faces):
  89. for j in range(3):
  90. cube.vectors[i][j] = vertices[f[j], :]
  91. #Sauvegardez le cube au format STL
  92. cube.save('IGN.stl')
  93. #"""