+ Le chant du vario +

Forum de parapente

01 Septembre 2014 - 22:54:22 *
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre mot de passe ?
Avez-vous perdu votre courriel d'activation?

Connexion avec identifiant, mot de passe et durée de la session
  Site   forum   Aide Groupes Calendrier Identifiez-vous Inscrivez-vous        GPS2GE Balises  
flysierranevada
cumulus
windriders
airone
reversale
Pages: [1]   Bas de page
  Envoyer ce fil  |  Imprimer  
Auteur Fil de discussion: de latitude-longitudes en XY (mètre)  (Lu 9728 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Van Hurlu de la Berlue
compétiteur(se) de haut vol
*******

Karma: +12
Hors ligne Hors ligne

Aile: Cayenne 4, Marvel
pratique principale: vol / site
Messages: 311



WWW
« le: 21 Juillet 2009 - 23:58:07 »

 help  help  help  help
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
Signaler au modérateur   parapente Enregistrée

marc
G33k, option ligne de commande
zéroteur (se)
****

Karma: +5
Hors ligne Hors ligne

Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 64


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 Mr. Green
Signaler au modérateur   parapente Enregistrée

piwaille
l'(quasi)modo
Administrateur
papoteuse(eur)
*****

Karma: +37
Hors ligne Hors ligne

Aile: pure bleu/rouge
pratique principale: cross
vols: bientôt 900 vols
Messages: 748




WWW
« Répondre #2 le: 22 Juillet 2009 - 07:54:28 »

 salut !

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 Exclamation non Question

un poil plus d'explications là : http://fr.wikipedia.org/wiki/Projection_cartographique
Signaler au modérateur   parapente Enregistrée

Piwaille
----------------------------------
Le chemin le plus court pour aller d'un point à un autre n'est pas la ligne droite, c'est le rêve.
marc
G33k, option ligne de commande
zéroteur (se)
****

Karma: +5
Hors ligne Hors ligne

Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 64


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
Signaler au modérateur   parapente Enregistrée

Van Hurlu de la Berlue
compétiteur(se) de haut vol
*******

Karma: +12
Hors ligne Hors ligne

Aile: Cayenne 4, Marvel
pratique principale: vol / site
Messages: 311



WWW
« 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  la prise de t?te
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
Signaler au modérateur   parapente Enregistrée

marc
G33k, option ligne de commande
zéroteur (se)
****

Karma: +5
Hors ligne Hors ligne

Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 64


Aime le jus de betterave ! Plouf !


« Répondre #5 le: 22 Juillet 2009 - 10:18:46 »

Oui, je parle de ces equations pouce

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...
Signaler au modérateur   parapente Enregistrée

Van Hurlu de la Berlue
compétiteur(se) de haut vol
*******

Karma: +12
Hors ligne Hors ligne

Aile: Cayenne 4, Marvel
pratique principale: vol / site
Messages: 311



WWW
« Répondre #6 le: 22 Juillet 2009 - 10:52:26 »

effectivement,
  bisous 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
Signaler au modérateur   parapente Enregistrée

marc
G33k, option ligne de commande
zéroteur (se)
****

Karma: +5
Hors ligne Hors ligne

Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 64


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 pouce
Signaler au modérateur   parapente Enregistrée

Le bandit démasqué
crossman (woman)
******

Karma: +26
En ligne En ligne

Aile: Gin bandit (veille et moche, mais c'est la mienne !)
pratique principale: vol / site
Messages: 260


« 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 !!!  effray
Signaler au modérateur   parapente Enregistrée
piwaille
l'(quasi)modo
Administrateur
papoteuse(eur)
*****

Karma: +37
Hors ligne Hors ligne

Aile: pure bleu/rouge
pratique principale: cross
vols: bientôt 900 vols
Messages: 748




WWW
« 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 = X0 + A Θ + B Φ
Y = Y0 + 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
Signaler au modérateur   parapente Enregistrée

Piwaille
----------------------------------
Le chemin le plus court pour aller d'un point à un autre n'est pas la ligne droite, c'est le rêve.
PiRK
les_modos
enrouleur(se) de thermique
*****

Karma: +9
Hors ligne Hors ligne

Aile: Factor 2 / Aloha
pratique principale: cross
vols: 300 vols
Messages: 126



WWW
« Répondre #10 le: 22 Juillet 2009 - 20:32:37 »

help  help  help  help
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 - Y0)

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 - X0)

ps : tous les angles en Radian
ps2 : pas le temps de lire les autres reponses, desole si je repete un truc
Signaler au modérateur   parapente Enregistrée

Van Hurlu de la Berlue
compétiteur(se) de haut vol
*******

Karma: +12
Hors ligne Hors ligne

Aile: Cayenne 4, Marvel
pratique principale: vol / site
Messages: 311



WWW
« 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Θ



Signaler au modérateur   parapente Enregistrée

Man's
Médaille en chocolat du 20millionième
Animateur
papoteuse(eur)
*

Karma: +24
En ligne En ligne

Aile: IP6 23 - Rolling 22
pratique principale: cross
vols: 1200+ vols
Messages: 675


Up, up, and away !


WWW
« Répondre #12 le: 22 Juillet 2009 - 23:51:23 »

salut !
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 :

Code:
//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;
  }
Signaler au modérateur   parapente Enregistrée

Man's
PiRK
les_modos
enrouleur(se) de thermique
*****

Karma: +9
Hors ligne Hors ligne

Aile: Factor 2 / Aloha
pratique principale: cross
vols: 300 vols
Messages: 126



WWW
« 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 (Θ00)sont les coord (lat.,long.) de ton point d'origine pour lequel tu peux parfaitement prendre (X0,Y0)=(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.
Signaler au modérateur   parapente Enregistrée

Van Hurlu de la Berlue
compétiteur(se) de haut vol
*******

Karma: +12
Hors ligne Hors ligne

Aile: Cayenne 4, Marvel
pratique principale: vol / site
Messages: 311



WWW
« 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.
Signaler au modérateur   parapente Enregistrée

PiRK
les_modos
enrouleur(se) de thermique
*****

Karma: +9
Hors ligne Hors ligne

Aile: Factor 2 / Aloha
pratique principale: cross
vols: 300 vols
Messages: 126



WWW
« 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 3600e de degres)

(sauf que bizarrement je ne vois pas apparaitre le rayon de la sphere).

Embarass&eacute;  Oups, j'avais pas lu le commentaire suivant : "//earth's circumference is 40030 Km long, divided in 360 degrees, that's 111190"
« Dernière édition: 23 Juillet 2009 - 13:27:35 par PiRK » Signaler au modérateur   parapente Enregistrée

Man's
Médaille en chocolat du 20millionième
Animateur
papoteuse(eur)
*

Karma: +24
En ligne En ligne

Aile: IP6 23 - Rolling 22
pratique principale: cross
vols: 1200+ vols
Messages: 675


Up, up, and away !


WWW
« 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º.
Signaler au modérateur   parapente Enregistrée

Man's
PiRK
les_modos
enrouleur(se) de thermique
*****

Karma: +9
Hors ligne Hors ligne

Aile: Factor 2 / Aloha
pratique principale: cross
vols: 300 vols
Messages: 126



WWW
« Répondre #17 le: 23 Juillet 2009 - 13:58:29 »

en python la fonction va ressembler a ca :
Code:
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
Citation
(x,y) = f(lat,long)

ou encore
Citation
coordonnees = f(lat,long)
x = coordonnees[0]
y = coordonnees[1]

ps : je n'ai pas teste, il faut probablement debugguer un peu.
Signaler au modérateur   parapente Enregistrée

Van Hurlu de la Berlue
compétiteur(se) de haut vol
*******

Karma: +12
Hors ligne Hors ligne

Aile: Cayenne 4, Marvel
pratique principale: vol / site
Messages: 311



WWW
« 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  mort de rire
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

 parapente  forum de parapente  parapente
Signaler au modérateur   parapente Enregistrée

Pages: [1]   Haut de page
  Envoyer ce fil  |  Imprimer  
 
Aller à:  

parapente gratuit
Propulsé par MySQL Propulsé par PHP Powered by SMF 1.1.19 | SMF © 2006, Simple Machines XHTML 1.0 Transitionnel valide ! CSS valide !
Page générée en 0.099 secondes avec 23 requêtes.
anything