Van Hurlu
Rampant
Hors ligne
Aile: Chili 5
pratique principale: vol / site
vols: + de 1000 h vols
Messages: 2
|
|
« le: 21 Juillet 2009 - 23:58:07 » |
|
Pour un boulot (rien à voir avec le parapente) je dois positionner dans un soft 3D un grand nombre d'éléments dont j'ai le positionnement en latitude/longitude comment fait on pour convertir en mètre ce type de coordonnées ? Je me choisirai un X=0 et Y=0 (normalement je n'ai pas besoin de la hauteur) extérieur a mon nuage d'objets autrement dit : quelle est la valeur en mètre de un degré ? d'une seconde ?une moulinette qui me ferait la conversion serait la bienvenue en python ce serait génial (mon soft parle le python) merci d'avance au matheux et autre bidouilleurs de script
|
|
|
|
marc
G33k, option ligne de commande
Rampant
Hors ligne
Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 0
Aime le jus de betterave ! Plouf !
|
|
« Répondre #1 le: 22 Juillet 2009 - 07:41:48 » |
|
http://mathworld.wolfram.com/SphericalCoordinates.html (faut prendre les 3 formules qui suivent In terms of Cartesian coordinates, ) Pas de code python pour ça sous la main, mais vu que c'est 3 lignes, j'imagine que tu t'en sortira
|
|
|
|
piwaille
l'(quasi)modo
Administrateur
enrouleur(se) de thermique
Hors ligne
Aile: pure bleu/rouge
pratique principale: cross
vols: bientôt 900 vols
Messages: 154
|
|
« Répondre #2 le: 22 Juillet 2009 - 07:54:28 » |
|
c'est ptet pas aussi simple que ça (ou c'est moi kapa compris la simplification) ça dépend un peu de la représentation patatoïdale de la terre non un poil plus d'explications là : http://fr.wikipedia.org/wiki/Projection_cartographique
|
|
|
|
marc
G33k, option ligne de commande
Rampant
Hors ligne
Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 0
Aime le jus de betterave ! Plouf !
|
|
« Répondre #3 le: 22 Juillet 2009 - 08:26:11 » |
|
De ce que j'ai compris, il a des objets placés qqpart, dont les coord sont "lat/long" et il veut avoir des coord cartesienne pour son soft 3D. Si le but est d'avoir des coords 2D à la surface d'une sphère, c'est différent effectivement... Mais là aussi, une recherche sur google donne des formules à la pelle. Si c'est ça, il y a qqs morceaux de code là : http://github.com/twpayne/igc2kmz/blob/dff89c0a65e1b735a438933a115d556a8d3ac0c6/igc2kmz/coord.py
|
|
|
|
Van Hurlu
Rampant
Hors ligne
Aile: Chili 5
pratique principale: vol / site
vols: + de 1000 h vols
Messages: 2
|
|
« Répondre #4 le: 22 Juillet 2009 - 10:03:03 » |
|
Merci à tous les deux, de vous être penché sur mon problème De ce que j'ai compris, il a des objets placés qqpart, dont les coord sont "lat/long" et il veut avoir des coord cartesienne pour son soft 3D. oui c'est ça, l'envergure de ma surface sera de la taille d'une ville comme Paris, voir d'un département, donc assimilable à un plan. pour mieux vous faire comprendre la finalité : le but est de recueillir des données et de les visualiser à travers une animation comme ça : http://www.urbanmobs.fr/fr/france/regardez la dernière anime qui est particulièrement spectaculaire : Cette visualisation représente la quantité de SMS envoyés à l'occasion du réveillon du nouvel an. On visualise nettement une explosion d'SMS envoyés à minuit.Pour vérifier si j'ai bien compris, tu (Marc) parle de cette série d'équations ? In terms of Cartesian coordinates, x= y= Mais comment tu transforme les latitutes/longitudes en angles ? moi je n'aurai comme données que les positions données par un GPS r est le rayon de la terre, je suppose, je prends quoi comme valeur moyenne ? Comme le résultat visé n'est qu'une image animée l'exactitude n'est pas de mise, bien sur ! ce qu'il me faut c'est juste que mes positions soient en proportion les unes aux autres
|
|
|
|
marc
G33k, option ligne de commande
Rampant
Hors ligne
Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 0
Aime le jus de betterave ! Plouf !
|
|
« Répondre #5 le: 22 Juillet 2009 - 10:18:46 » |
|
Oui, je parle de ces equations Latitude et Longitude, ce sont tes angles Theta et Phi effectivement. Pour les avoirs en degrés ou radians, tu as des formules, et ça dépend de la représentation de départ (le GPS te donne lat/long). R c'est le rayon de la terre: regarde le code python de Tom, dedans tu as une valeur pour ce rayon. Tu dois même pouvoir trouver des formules pour manipuler lat/long...
|
|
|
|
Van Hurlu
Rampant
Hors ligne
Aile: Chili 5
pratique principale: vol / site
vols: + de 1000 h vols
Messages: 2
|
|
« Répondre #6 le: 22 Juillet 2009 - 10:52:26 » |
|
effectivement, merci Marc, tes conseils m'ont mis sur les bonnes pistes si je m'en sort (je fini toujours par m'en sortir) je vous montrerai le résultat
|
|
|
|
marc
G33k, option ligne de commande
Rampant
Hors ligne
Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 0
Aime le jus de betterave ! Plouf !
|
|
« Répondre #7 le: 22 Juillet 2009 - 11:20:37 » |
|
http://wiki.github.com/twpayne/igc2kmz/algorithms <= il a même donné qqs indications sur son code et les manip de coord sphérique
|
|
|
|
Le bandit démasqué
Rampant
Hors ligne
Aile: Gin bandit (veille et moche, mais c'est la mienne !)
pratique principale: vol / site
Messages: 0
|
|
« Répondre #8 le: 22 Juillet 2009 - 11:33:38 » |
|
pour mieux vous faire comprendre la finalité : le but est de recueillir des données et de les visualiser à travers une animation comme ça : http://www.urbanmobs.fr/fr/france/regardez la dernière anime qui est particulièrement spectaculaire : Cette visualisation représente la quantité de SMS envoyés à l'occasion du réveillon du nouvel an. On visualise nettement une explosion d'SMS envoyés à minuit.Quand on vous dit que le mobile, c'est dangereux ... ça fait des feux d'artifice partout !!!
|
|
|
|
piwaille
l'(quasi)modo
Administrateur
enrouleur(se) de thermique
Hors ligne
Aile: pure bleu/rouge
pratique principale: cross
vols: bientôt 900 vols
Messages: 154
|
|
« Répondre #9 le: 22 Juillet 2009 - 14:09:44 » |
|
Merci à tous les deux, de vous être penché sur mon problème De ce que j'ai compris, il a des objets placés qqpart, dont les coord sont "lat/long" et il veut avoir des coord cartesienne pour son soft 3D. oui c'est ça, l'envergure de ma surface sera de la taille d'une ville comme Paris, voir d'un département, donc assimilable à un plan. wouhaaa sur une petite surface comme ça tu dois même pouvoir te contenter d'un développement limité d'ordre 1 (mais chuis pas 100ù sur de moi) X = X 0 + A Θ + B Φ Y = Y 0 + C Θ + D Φ ensuite * tu va sur le terrain de chercher tes Θ et Φ qui correspondent aux coins de ta carte * sur le papier tu résous tes équations pour trouver tes coefficients A,B,C et D
|
|
|
|
PiRK
les_modos
plouffeur(se)
Hors ligne
Aile: None
pratique principale: autre (?)
vols: 400 vols
Messages: 30
|
|
« Répondre #10 le: 22 Juillet 2009 - 20:32:37 » |
|
Pour un boulot (rien à voir avec le parapente) je dois positionner dans un soft 3D un grand nombre d'éléments dont j'ai le positionnement en latitude/longitude comment fait on pour convertir en mètre ce type de coordonnées ? Je me choisirai un X=0 et Y=0 (normalement je n'ai pas besoin de la hauteur) extérieur a mon nuage d'objets autrement dit : quelle est la valeur en mètre de un degré ? d'une seconde ?une moulinette qui me ferait la conversion serait la bienvenue en python ce serait génial (mon soft parle le python) merci d'avance au matheux et autre bidouilleurs de script si ton axe Y est bien l'axe Nord-Sud (donc un meridien terrestre), tu peux facilement transformer les degrees de latitude en metres en prenant juste la formule de la longueur d'un arc de cercle qui a pour rayon R (le rayon de la terre) : Soit Θ 0 la latitude de ton origine, tu obtiens (Θ - Θ 0)*R = (Y - Y 0) Pareil pour l'axe X s'il est Est-Ouest, sauf que le rayon du cercle devient R*sinΘ (tu peux faire le schema, c'est le rayon du paralle qui passe par ton axe X) Donc ca te fait : (Φ - Φ 0) *R*sinΘ= (X - X 0) ps : tous les angles en Radian ps2 : pas le temps de lire les autres reponses, desole si je repete un truc
|
|
|
|
Van Hurlu
Rampant
Hors ligne
Aile: Chili 5
pratique principale: vol / site
vols: + de 1000 h vols
Messages: 2
|
|
« Répondre #11 le: 22 Juillet 2009 - 23:45:24 » |
|
Merci Pirk, ta méthode simplifie étonnamment le problème et m'ouvre des horizons de simplification extrême Puisque je me fout de l'échelle, je pourrai aller encore plus loin il suffirait que je donne une valeur arbitraire à la seconde de ma coordonnée GPS, pour avoir une représentation cohérente de mes points en appliquant un facteur de correction en x correspondant à sinΘ
|
|
|
|
Man's
Médaille en chocolat du 20millionième
Animateur
enrouleur(se) de thermique
Hors ligne
Aile: Zeno 2
pratique principale: cross
vols: Plusieurs milliers de vols
Messages: 96
Up, up, and away !
|
|
« Répondre #12 le: 22 Juillet 2009 - 23:51:23 » |
|
Pas sûr que ça t'aide car ça répond pas exactement à la question, mais voici la fonction en php utilisée dans GPS2GE pour calculer la distance en metres entre les coordonnés Lat-long de deux points : //Return Distance in meters between two coordinates //earth's circumference is 40030 Km long, divided in 360 degrees, that's 111190 function calcDist($lat1,$lon1,$lat2,$lon2) { if ($lat1==$lat2 && $lon1==$lon2) return 0; $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($lon1-$lon2)); $dist = acos($dist); $dist = rad2deg($dist); if ($dist>0) return $dist * 111190; return 0; }
|
Plus nous nous élevons et plus nous paraissons petits à ceux qui ne savent pas voler - F. Nietzsche
|
|
|
PiRK
les_modos
plouffeur(se)
Hors ligne
Aile: None
pratique principale: autre (?)
vols: 400 vols
Messages: 30
|
|
« Répondre #13 le: 23 Juillet 2009 - 08:40:06 » |
|
Je me suis plante sur un petit detail, je crois que le rayon d'un parallele est R*cos Θ, pas R*sin Θ (plus on s'approche du nord plus ce rayon diminue jusqu'a devenir nul au pole) L'autre question que je me pose c'est si tu veux placer les coordonees vraiment en 3 D (auquel cas les equations de Marc sont plus adaptees). Mais dans ce cas il te faut la latitude, la longitude et l'altitude. Mes equations te permettent simplement de transformer les coordonnes (lat, long) en (X,Y) sur un plan 2D (en faisantr l'hypothese que tu peux assimiler la surface de la terre a un plan a petite echelle) ou X est la coordonnee sur l'axe Est-Ouest et Y la coordonnee sur un axe Nord-Sud. Man's a donne les equations rigoureuses qui donnent la distance sur une sphere entre 2 points connaissant leurs coordonnes en latitude longitude (sauf que bizarrement je ne vois pas apparaitre le rayon de la sphere). il suffirait que je donne une valeur arbitraire à la seconde de ma coordonnée GPS, pour avoir une représentation cohérente de mes points en appliquant un facteur de correction en x correspondant à sinΘ
La je comprends pas. Normalement tu peux juste convertir les degres/minutes/secondes en radians et tu n'a plus a t'en preoccuper. Je n'ai ete tres clair, mais (Θ 0,Θ 0)sont les coord (lat.,long.) de ton point d'origine pour lequel tu peux parfaitement prendre (X 0,Y 0)=(0,0) Ce qui donne pour mes equations : Y = (Θ - Θ 0)*R X = (Φ - Φ 0) *R*cos Θ Tu n'as plus qu'a trouver le rayon moyen de la terre (ou si tu est perfectionniste et tu cherches un peu tu peux trouver le rayon de la terre a l'endroit considere) et les coordonnes (lat,long) du point que tu veux prendre pour origine.
|
|
|
|
Van Hurlu
Rampant
Hors ligne
Aile: Chili 5
pratique principale: vol / site
vols: + de 1000 h vols
Messages: 2
|
|
« Répondre #14 le: 23 Juillet 2009 - 09:42:46 » |
|
oui c'est ça, l'envergure de ma surface sera de la taille d'une ville comme Paris, voir d'un département, donc assimilable à un plan. OUI, effectivement c'est un cos et non pas un sin Un rayon de la terre moyen de 6371000 m me conviendra très bien Il ne me manque plus que la manière de convertir les degrés/minutes/secondes en Radians je ne suis pas perfectionniste du tout pour ces placements, je suis perfectionniste sur la qualité graphique de l'animation. En animation 3D, je dis toujours que j'en ai rien à f.... que l'épaisseur de l'oreille de Mikey fasse 2 ou 3 mm.
|
|
|
|
PiRK
les_modos
plouffeur(se)
Hors ligne
Aile: None
pratique principale: autre (?)
vols: 400 vols
Messages: 30
|
|
« Répondre #15 le: 23 Juillet 2009 - 13:21:37 » |
|
angle en radian = (degres + minutes/60 + secondes/3600) * Pi / 180 (une minute est un soixantieme de degres, une seconde est un soixantieme de minute donc un 3600 e de degres) (sauf que bizarrement je ne vois pas apparaitre le rayon de la sphere).
Oups, j'avais pas lu le commentaire suivant : "//earth's circumference is 40030 Km long, divided in 360 degrees, that's 111190"
|
|
|
|
Man's
Médaille en chocolat du 20millionième
Animateur
enrouleur(se) de thermique
Hors ligne
Aile: Zeno 2
pratique principale: cross
vols: Plusieurs milliers de vols
Messages: 96
Up, up, and away !
|
|
« Répondre #16 le: 23 Juillet 2009 - 13:34:39 » |
|
Man's a donne les equations rigoureuses qui donnent la distance sur une sphere entre 2 points connaissant leurs coordonnes en latitude longitude (sauf que bizarrement je ne vois pas apparaitre le rayon de la sphere).
C'est avec un rayon de 1, et tu mulitplies le resultat par le diamètre de la terre divisé par 360º.
|
Plus nous nous élevons et plus nous paraissons petits à ceux qui ne savent pas voler - F. Nietzsche
|
|
|
PiRK
les_modos
plouffeur(se)
Hors ligne
Aile: None
pratique principale: autre (?)
vols: 400 vols
Messages: 30
|
|
« Répondre #17 le: 23 Juillet 2009 - 13:58:29 » |
|
en python la fonction va ressembler a ca : from math import radians, cos
def f(lat, long): # origine lat0 = ??? long0 = ???
# rayon de la terre R=6371000
Y = ( radians(lat) - radians(lat0) ) * R X = ( radians(long) - radians(long0) ) * R * cos(radians(lat))
return (X,Y) Je suppose que les coordonnees lat et long que tu donnes a la function ont deja ete convertis depuis les degres/minutes/secondes en degres. La fonction retourne une liste avec deux valeurs que tu recuperes probablement par un truc du genre (x,y) = f(lat,long) ou encore coordonnees = f(lat,long) x = coordonnees[0] y = coordonnees[1] ps : je n'ai pas teste, il faut probablement debugguer un peu.
|
|
|
|
Van Hurlu
Rampant
Hors ligne
Aile: Chili 5
pratique principale: vol / site
vols: + de 1000 h vols
Messages: 2
|
|
« Répondre #18 le: 23 Juillet 2009 - 14:10:35 » |
|
Je n'aurai jamais pensé que de me mettre au parapente, m'aiderai un jour dans mon boulot merci les gars, vous êtes des chefs si je vous croise un jour, sachez que je vous offrirai avec plaisir une grande Leff pression N'hésitez pas à me contacter si vous venez voler dans les Baronnies
|
|
|
|
|