JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Positionnement GPS photo Mer 9 Avr 2014 - 18:22 | |
| Pour l'exploitation des donnés GPS inscrites par certains appareils photo numériques dans les données exif des images (je sais, il n'y en pas des masses qui ont un gps intégré). En fait, je voulais afficher ces données de position sous la forme d'une croix sur un planisphère. C'est facile pour la longitude, mais le planisphère étant en projection de Mercator, c'est bien moins évident pour la latitude et il fallait trouver la bonne formule. La voici: - Code:
-
y = R*LOG[TAN(Pi/4+Lat/2)] qui donne la distance verticale sur la carte par rapport au point zéro (intersection équateur/méridien de Greenwich), en négatif pour une latitude Nord. R étant le rayon du globe terrestre, Lat la latitude en radian(s) Ces coordonnées gps sont à extraire des photos numériques avec un petit logiciel, par exemple Jhead, dont on a parlé dans un autre post récent. Ce n'est sans doute pas d'un intérêt puissant, plutôt de l'ordre de l'exercice de style... Voici la Sub, et un programme d'appel pour essais, qu'il faut évidemment adapter, notamment pour le planisphère disponible (à trouver sur le web, et paramétrer le code en conséquence) - Code:
-
' Positionnement sur un planisphère (en projection de Mercator) DIM p$,wpp,hpp,wp,hp,rp,pi,fact,eq,gn,x,y,lon$,lat$,xgps%,ygps% p$ = "C:\GRAPH\JPG\Planisphere.jpg"
wpp = 5152: hpp = 2621: ' dimensions totales de la carte, en pixels pi = 4*ATN(1)
rp = wpp/(2*pi): ' rayon du globe, en pixels fact = 3: ' facteur de réduction de l'image dans le picture wp = wpp/fact: hp = hpp/fact
eq = hpp/2: ' équateur gn = wpp/2-130: ' méridien de Greenwich
WIDTH 0,wp+16: HEIGHT 0,hp+40 PICTURE 1: WIDTH 1,wp: HEIGHT 1,hp: STRETCH_ON 1 FILE_LOAD 1,p$ 2D_TARGET_IS 1: 2D_PEN_WIDTH 3 2D_LINE 0,eq,wpp,eq: ' équateur 2D_LINE gn,0,gn,hpp: ' greenwich ' Coordonnées GPS données dans les Exifs du fichier photo JPG (appareil Panasonic) lat$ = "Lat N 31d 37m 20.45s": ' par exemple (environs Marrakech) lon$ = "Long W 7d 59m 31.03s"
PositGPS(rp,lat$,lon$) 2D_PEN_COLOR 255,0,0: 2D_PEN_WIDTH 5 2D_LINE gn+xgps%,eq+ygps%-100,gn+xgps%,eq+ygps%+100: ' ligne V 2D_LINE gn+xgps%-100,eq+ygps%,gn+xgps%+100,eq+ygps%: ' ligne
END ' ============================================================================== SUB PositGPS(R,lat$,lon$) ' Positionnement d'un point sur un planisphère total ou partiel en projection de Mercator ' Paramètres: R = rayon de l'image du globe terrestre, en pixels. ' lon$, lat$: longitude et latitude donnés, de la forme par exemple ' Lat N 31d 37m 20.45s et Long W 7d 59m 31.03s ' (forme donnée dans les données Exifs des photos numériques). ' Retour: coordonnées en pixels du point donné, par rapport au point zéro ' (intersection Équateur méridien de Greenwich), dans xgps% et ygps% DIM_LOCAL pi,k%,l$,a$,d,m,s,v pi = 4*ATN(1) k% = INSTR(lat$,"d"): a$ = MID$(lat$,k%-4,1): ' Latitude N ou S l$ = MID$(lat$,k%-2,14): ' extraction des degrés, minutes, secondes k% = INSTR(l$,"d"): d = VAL(MID$(l$,k%-2,2)) k% = INSTR(l$,"m"): m = VAL(MID$(l$,k%-2,2)) k% = INSTR(l$,"s"): s = VAL(MID$(l$,k%-5,5)) v = d + m/60 + s/3600: v = v*pi/180: ' en degrés décimaux, puis radians ygps% = R*LOG(TAN(pi/4+v/2)) IF a$ = "N" THEN ygps% = -1*ygps%: ' -> latitude, en pixels k% = INSTR(lon$,"d"): a$ = MID$(lon$,k%-4,1): ' Longitude E ou W l$ = MID$(lon$,k%-2,14): ' extraction des degrés, minutes, secondes k% = INSTR(l$,"d"): d = VAL(MID$(l$,k%-2,2)) k% = INSTR(l$,"m"): m = VAL(MID$(l$,k%-2,2)) k% = INSTR(l$,"s"): s = VAL(MID$(l$,k%-5,5)) v = d + m/60 + s/3600: v = v*pi/180: ' en degrés décimaux, puis radians xgps% = R*SIN(v) IF a$ = "W" THEN xgps% = -1*xgps%: ' -> longitude, en pixels END_SUB ' ============================================================================== | |
|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Positionnement GPS photo Mer 9 Avr 2014 - 18:30 | |
| | |
|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Positionnement GPS photo Jeu 10 Avr 2014 - 7:08 | |
| C'est un exercice de style, certes, mais qui pourrait avoir son utilité, dans un jeu par exemple. Merci JL35. | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Jeu 10 Avr 2014 - 10:44 | |
| Ouahhh ! Fabuleux ! Ça, c'est encore du grand JL35 parce que c'est plus que pointu ! Bravo ! Tiens, je vais donner cette formule aux ordinateurs quantiques qu'on utilise sur Mars depuis des siècles. Ça devrait les intéresser ! | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Positionnement GPS photo Jeu 10 Avr 2014 - 11:32 | |
| Tiens donc ! pour qu'ils puissent choisir avec précision le point d'impact quand ils viendront nous envahir ! (Mars Attack !) Je me demande si je ne vais pas introduire un petit bug qui les enverra sur Pluton, ou au-delà...
Cela dit j'ai un peu galéré pour trouver la formule (simple, que doit connaître par coeur notre géographe/météorologue maison, il se reconnaîtra), avant c'était des formules plus tarabiscotées les unes que les autres. | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Positionnement GPS photo Mar 29 Avr 2014 - 23:40 | |
| J'espère que vous comprenez pourquoi le forum est un peu dépeuplé, ces temps-ci, c'est parce que nous sommes passés à l'attaque... Gniak Gniak ! (grâce à JL35)... | |
|
Contenu sponsorisé
| Sujet: Re: Positionnement GPS photo | |
| |
|