pb : récupération de la latitude et de la longitude - Sciences - Discussions
Marsh Posté le 03-04-2003 à 18:13:04
si tu travail en ccordonnées polaire? genre tu parcours des cercle de plus en plus grand concentrique et tu les balaye par un rayon et a partir de l'angle entre le rayon et la verticale et la grandeur du rayon tu peux pas faire un truc?
Marsh Posté le 03-04-2003 à 18:22:17
eraser17 a écrit : si tu travail en ccordonnées polaire? genre tu parcours des cercle de plus en plus grand concentrique et tu les balaye par un rayon et a partir de l'angle entre le rayon et la verticale et la grandeur du rayon tu peux pas faire un truc? |
mmm
tu peux être un peu plus explicite ?
sinon j'aurai peut etre un truc :
y=R*sin(latitude)
x=R*sin(longitude)*cos(latitude)
avec R rayon de la terre, donc ici 180 pixels
j'aimerais savoir si cette formule est bonne, car après je n'ai plus qu'a l'inverser, a remettre à l'échelle, et j'aurais mes coordonnées long/lat...
Marsh Posté le 03-04-2003 à 18:30:00
ToNToN SoNiC a écrit : |
ouai comme ca koi. mais je sais pas si c bon
Marsh Posté le 03-04-2003 à 19:04:39
eraser17 a écrit : |
Manip bourrine mais rapide :
Je ne sais pas ce que tu veux en faire, mais si c'est pour tracer lattitudes et longitudes, le plus simple est encore de faire une sphère avec 3ds, tu l'affiches en filaire, tu zoomes pour que ça coincide : capture d'écran + mixage des deux images.
Ayé.
Marsh Posté le 03-04-2003 à 21:19:31
leFab a écrit : |
héhé
non pas vraiment ce que je veux faire
en fait je veux (en C) récupérer les nuages sur cette image (fait), et les remettre sur cette image la :
sachant que sur cette carte un pixel correspond à 0.5° (vertical et horizontal) donc cette carte me donne en fait directement les coordonnées longitude latitude... apres faut dire si pour le point de longitude x et de latitude y y'a un nuage au dessus ou pas, le cas échéant il faut le rajouter.
voila voila...
Marsh Posté le 03-04-2003 à 21:29:13
ca poster ca dans programation peut etre il seront plus a meme de t'aider.
Marsh Posté le 03-04-2003 à 22:05:48
eraser17 a écrit : ca poster ca dans programation peut etre il seront plus a meme de t'aider. |
non c'est pas vraiment une histoire de programmation, le code y'en a pour 5mn
mais la théorie, c'est autre chose...
Marsh Posté le 04-04-2003 à 02:44:22
bof, au pif, je dirais:
longitude = sin^-1 ( x-180 / 180 )
latitude = sin^-1 ( 180-y / 180 )
avec le coin 0,0 en haut a gauche
- si c'est en bas a gauche : latitude = sin^-1 ( y-180 / 180 ) -
sin^-1 est la fonction inverse du sin je c pas comment l'ecrire autrement...
avec ca, tu devrais t'en sortir
Edit: a priori, niveau college ...
Marsh Posté le 04-04-2003 à 03:59:47
SenG@ a écrit : bof, au pif, je dirais: |
suis en bac+4, et je peux te dire que c'est loin d'être aussi simple
en fait c'est bon, g eu la réponse, et g fini mon projet dans la foulée
avec la première solution que g donnée, j'ai obtenu un truc plutot moche, tout déformer, et qui collait pas trop
en fait fallait voir bcp plus loin que ca!
fallait prendre en compte le fait que le satellite prend la photo de 36800km, qu'il vise le centre de la terre, et donc qu'il y'a des déformations qui s'imposent (vous regardez une sphère avec des traits horizontaux, si vous avez le nez dessus, les traits ne vous paraitront tout sauf horizontaux!)
donc plein plein de calcul, et a la fin je suis arrivé à un truc d'a peut pret propre
ras le bol, rendu, bières
merci a tous qd meme (surtout eraser)
Marsh Posté le 04-04-2003 à 04:34:54
ToNToN SoNiC a écrit : |
mouais, sur une photo de 360 pixels de cotes, essaye de voir l'erreur realiser en negligeant ca, et compare avec l'erreur que tu fais en arrondissant au pixel.
En gros, la ou tu auras une erreur, c'est en supposant que tu vois l'integralite de la moitie du globe (donc ton erreur se fait surtout sur les bords. La, elle est assez elevee)
Maintenant, si tu as une reponse precise, se serait cool de la faire partager
moi, ma reponse etait un truc simple, et qui marchait je dirais jusqu'a assez loin. Exemple: prends le point blanc ici:
x=22
y=114
je suppose que les points indiques sont espaces de 10degres (c'est ce qu'il semble)
avec ma formule, on a donc:
longitude = 61 degres
latitude = 21 degres
soit 1 degre d'ecart. Ce qui est pas tant que ca Compte tenu de la resolution de depart.
enfin, je suis interesse par la solution "complexe".
Edit: je suis a bac+5 ...
si je t'ai file cette solution, c'est parce qu'elle marchait bien pour recuperer les coordonnees d'un pixel (et avec une precision qui me semble suffisante).
"j'ai l'impression que c'est tout con"
j'ai file une solution toute con... logike
une solution exacte auquel je viens de penser (je l'ecrirais pas... trop chiant
tu gardes ce que j'ai dit, sauf que x et y ne sont plus les valeurs mesures sur l'image, mais calculees comme etant l'intersection du cercle de la terre et de la droite partant du satellite et arrivant au point de l'image:
pas tres complique a faire, mais tres chiant a ecrire en texte
Marsh Posté le 04-04-2003 à 04:44:29
SenG@ a écrit : |
mmm...
je reste sceptique, vu comment on a eu du mal à faire ca
et aussi vu ce que nous as expliquer notre tuteur...
pour la solution complète, faudrait que j'explique avec un schema, et la g vraiment pas l'envie (ni le temps, exams dans 2 jours.. ;( )d'expliquer ca pour l'instant
en gros pour avoir un truc vraiment propre, tu prends un point d'observation situé à 36000 bornes de la terre, tu traces la tangente de ce point au coté supérieur de la terre et la droite qui va du point au centre de la terre.
a partir de la, tu places un "ecran" à la distance d entre les deux lignes qui représente la moitié supérieure de l'image que tu as de la terre. a partir de la, c'est thales et pythagore qui prennent le relais pour trouver la projection de la distance du centre à un point de la surface de la terre sur ton écran.
faut aussi prendre en compte les déformations qui viennent du fait que les distances horizontales et verticales varient suivant l'éloignement du point au centre...
bref un bo bordel, mais faut passer par la pour avoir un truc vraiment propre....
Marsh Posté le 04-04-2003 à 05:42:29
ToNToN SoNiC a écrit : |
pour le beau bordel, je veux bien te croire... en gros, ta solution ressemble donc a ma 2eme version (meme si elle m'a l'air un poil plus complexe a faire, mais ptet mois dans les calculs...) tu comprendras donc que je ne l'explicite pas
Par contre, je sais pas sur quoi tu es sceptique?
si c'est sur la 1ere solution simple, fais des tests. Tu verras que cela marche pour 80/90% de l'image je dirais. Et avec une precision qui me semble correcte...
Pour info, un endroit bien sur les bords foire completement avec ce raisonnement "rapide". comme le point blanc a l'extreme droite (pas de politique !) qui devrait etre a 70degres de longitude, se retrouve a 80. Mais en meme temps, c'est des cas particuliers Les points exterieurs se retrouvent "decales"
De toute facon, mon resonnement est tres simple:
tu as un satellite a 37000 kms, qui prend une photo de la terre qui fait 12000 kms de rayon. soit un cone de 18 degres.
mon resonnement considere un point de vue a l'infini, et donc une representation complete de la demi-terre. Or, ici, on perd un peu sur les cotes... du coup, au lieu de voir de -90 a 90 degres en longitude/latitude, on voit un peu moins... voir beaucoup moins (puisqu'il faut presque retirer pres de 18 degres... si tu tiens compte de cet effet de tangeante... soit une vision de 81 a -81 degres)
cela explique egalement pourquoi ma 1ere reponses etait aussi simple... j'avais compris dans ton message que tu considerais que les longitudes/latitudes s'etandaient jusqu'a 90/-90... cqfd
********************************
d'ailleurs, une autre solution serait tout betement de rapporter l'angle sur 90 degres a un angle sur 80. dans ce cas, mes resultats deviennent 21*80/90 = 19 degres pour un angle vers le centre
et le point exterieurs (a 80 degres de longitude) devient un point a 71... On a donc plus que 1 degre d'ecart dans presque tous les cas... pas trop mal avec juste 2 operations toutes betes
Marsh Posté le 04-04-2003 à 13:11:10
SenG@ a écrit : |
bon, hier il était tard et gt bien dans le colletard parceque je viens de relire la solution que tu m'as donné, et je m'étais même pas rendu compte que ct le premier truc qu'on a essayé!
en fait on a essayé :
y=R*sin(latt)
x=R*sin(longi)
ct horrible
puis
y=R*sin(latt)
x=R*cos(latt)*sin(longi)
ct mieux sur les coins, mais ca restait assez diforme
puis le bordel que g essayé de t'expliquer au dessus, et la ca collait pile poil, pour des angles allant de -80 à +80 toujours, car on peut pas voir au dessus
voila voila
et je peux te dire que par rapport à ce qu'on
Marsh Posté le 03-04-2003 à 17:39:11
Voila mon probleme :
j'ai cette image :
qui fait 360 pixels sur 360 pixels, et je voudrais récupérer pour chaque pixel la latitude et la longitude sur le globe en degré
je suis bloqué la dessus depuis trois heure, j'ai l'impression que c'est tout con, mais rien a foutre ca passe pas (moi et la géométrie on est pas tres copains)
donc voila si vous avez les formules magiques qui me disent :
longitude = f(x,y)
latitude = g(x,y)
sachant que la longitude et la latitude vont ici de -90° à 90°, et que les pixels vont de 0 à 360 dans les deux sens.
merci bien et bon fusillage de neurones
ciao!
edit : les points sur l'images représentent les intersections des lignes de latitude et longitude constante... si ca peut vous aider...
Message édité par tonton sonic le 03-04-2003 à 17:53:59
---------------
Et?