« CeMap » : différence entre les versions

De Lillois Fractale Wiki
Aller à la navigation Aller à la recherche
Contenu ajouté Contenu supprimé
Aucun résumé des modifications
Aucun résumé des modifications
 
(34 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :


== Latitiude et longitude ==
== Intro ==


Voir aussi [[GeoJava]]
Tous les points du globe sont classiquement caractérisés par:


== Latitude et longitude ==
une latitude α (-π/2 <= α <=&nbsp;π/2). α=0 à l'équateur. α=π/2 au pôle nord. α=-π/2 au pôle sud.


Tous les points du globe sont classiquement caractérisés par:
une longitude&nbsp;β&nbsp;(-π/2 <= β&nbsp;&nbsp;<=&nbsp;π/2). β=0 au médidien de Greenwhich.

*une latitude α (-π/2 <= α <=&nbsp;π/2). α = 0 à l'équateur. α = π/2 au pôle nord. α = -π/2 au pôle sud.
*une longitude&nbsp;β&nbsp;(-π&nbsp;<= β&nbsp;&nbsp;<=&nbsp;π). β = 0 au méridien de Greenwhich (arbitraire).


Une documentation pus précise figure [https://en.wikipedia.org/wiki/Geographic_coordinate_system ici].
Une documentation pus précise figure [https://en.wikipedia.org/wiki/Geographic_coordinate_system ici].

Pour la suite. la Terre est assimilée à un objet parfaitement sphérique.

&nbsp;


== Projection CeMap ==
== Projection CeMap ==


La projection CeMap (centered map)&nbsp;vise à mettre tout les points de laa tErre sur une carte en forme de disque, ce disque étant centré sur un point librement choisi. Ce point central est caractérisé par ses coordonnées (α<sub>0</sub>,β<sub>0</sub>).
La projection CeMap (centered map)&nbsp;vise à mettre tout&nbsp;les points de la&nbsp;Terre sur une carte en forme de disque, ce disque étant centré sur un point librement choisi. Ce point central est caractérisé par ses coordonnées (α<sub>0</sub>,β<sub>0</sub>).


La suite de l'article vise à transformer mathématiquement un point quelconque&nbsp;(α,β) en coordonnées polaires (a,r) ustilisable pour construire le disque.
La suite de l'article vise à transformer mathématiquement un point quelconque&nbsp;(α,β) en coordonnées polaires (θ,R) utilisable pour construire le disque projeté (0<=R<=1)


En coordonnées cartésiennes (x,y,z) le point&nbsp;(α,β) devient (cos&nbsp;α cos&nbsp;β, cos&nbsp;α sin&nbsp;β, sin&nbsp;α). On prend pour unité le rayon de la Terre. La troisième coordonnée est la 'verticale' (le troisième axe passe par les pôles).

Il est établi que le vecteur orthogonal au vecteur (x1,y1,z1) et au vecteur (x2,y2,z2) est donné par le produit vectoriel (y2 z1 - z2 y1 , z2 x1 - x2 z1 , x2 y1 - x1 y2).&nbsp;

Soient d'une part les trois points

#milieu de la Terre&nbsp;cartésien:(0,0,0)
#(α,β)&nbsp;cartésien:(cos&nbsp;α cos&nbsp;β, cos&nbsp;α sin&nbsp;β, sin&nbsp;α)
#(α<sub>0</sub>,β<sub>0</sub>)&nbsp;cartésien:(cos&nbsp;α<sub>0</sub> cos&nbsp;β<sub>0</sub>, cos&nbsp;α<sub>0</sub> sin&nbsp;β<sub>0</sub>, sin&nbsp;α<sub>0</sub>)

Le vecteur v, orthogonal à la fois au vecteur (α,β) et au vecteur&nbsp;(α<sub>0</sub>,β<sub>0</sub>) est donné (cartésien) par:
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">(v1 , v2 , v3) = (cos α<sub>0</sub> sin β<sub>0</sub> sin α - cos α sin β sin α<sub>0</sub>, cos α cos β sin α<sub>0</sub> - cos α<sub>0</sub> cos β<sub>0</sub> sin α, cos α cos α<sub>0</sub> (sin β cos β<sub>0</sub> - cos β sin β<sub>0</sub>) )</div>
Ce vecteur n'est pas normé.

Soient d'autre part les trois points

#milieu de la Terre cartésien:(0,0,0)
#pôle nord cartésien:(0,0,1)
#(α<sub>0</sub>,β<sub>0</sub>)&nbsp;cartésien:(cos&nbsp;α<sub>0</sub> cos&nbsp;β<sub>0</sub>, cos&nbsp;α<sub>0</sub> sin&nbsp;β<sub>0</sub>, sin&nbsp;α<sub>0</sub>)

Le vecteur w&nbsp;orthogonal à la fois au vecteur polaire et au vecteur&nbsp;(α<sub>0</sub>,β<sub>0</sub>) est donné (cartésien) par:
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">(w1 , w2 , w3) = (sin&nbsp;β<sub>0</sub>&nbsp;, -&nbsp;cos&nbsp;β<sub>0&nbsp;</sub>, 0)</div>
Ce vecteur est normé.

Les deux vecteurs déterminés sont normés.

Chacun des deux&nbsp;ensembles de trois points détermine un plan. L'angle formé par ces plans est aussi l'angle formé par leurs vecteurs perpendiculaires
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">cos θ = [ sin&nbsp;β<sub>0&nbsp;</sub> (cos&nbsp;α<sub>0</sub> sin&nbsp;β<sub>0</sub> sin&nbsp;α -&nbsp;cos&nbsp;α&nbsp;sin&nbsp;β&nbsp;sin&nbsp;α<sub>0</sub>)&nbsp;&nbsp;- cos&nbsp;β<sub>0&nbsp;</sub>(cos&nbsp;α cos&nbsp;β&nbsp;sin&nbsp;α<sub>0</sub> -&nbsp;cos&nbsp;α<sub>0</sub> cos&nbsp;β<sub>0</sub> sin&nbsp;α) ] / cos&nbsp;α<sub>0</sub>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (non - problème de norme)</div> <div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">cos θ = sin&nbsp;α -&nbsp;cos&nbsp;α tg&nbsp;α<sub>0 </sub>* (sin&nbsp;β&nbsp;sin&nbsp;β<sub>0</sub> -&nbsp;cos&nbsp;β&nbsp;cos&nbsp;β<sub>0</sub>)</div>
&nbsp;
&nbsp;

Donc le vecteur orthogonal à la fois au vecteur (α,β) et au vecteur&nbsp;(α<sub>0</sub>,β<sub>0</sub>) est donné&nbsp;(cartésien)&nbsp;par:
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">(cos α<sub>0</sub> sin β<sub>0</sub> sin α - cos α sin β sin α<sub>0</sub>, cos α cos β sin α<sub>0</sub> - cos α<sub>0</sub> cos β<sub>0</sub> sin α, cos α cos α<sub>0</sub> (sin β cos β<sub>0</sub> - cos β sin β<sub>0</sub>) )</div>
a pour équation:

x (cos&nbsp;α<sub>0</sub> sin&nbsp;β<sub>0</sub> sin&nbsp;α -&nbsp;cos&nbsp;α&nbsp;sin&nbsp;β&nbsp;sin&nbsp;α<sub>0</sub>) + y (cos&nbsp;α cos&nbsp;β&nbsp;sin&nbsp;α<sub>0</sub> -&nbsp;cos&nbsp;α<sub>0</sub> cos&nbsp;β<sub>0</sub> sin&nbsp;α) + z cos&nbsp;α cos&nbsp;α<sub>0</sub> (sin&nbsp;β cos&nbsp;β<sub>0</sub> - cos&nbsp;β sin&nbsp;β<sub>0</sub>) = 0

De même, le plan 'vertical'&nbsp;contenant les trois points (0,0,0),&nbsp;(0,0,1),&nbsp;(cos&nbsp;α<sub>0</sub> cos&nbsp;β<sub>0</sub>, cos&nbsp;α<sub>0</sub> sin&nbsp;β<sub>0</sub>, sin&nbsp;α<sub>0</sub>) a pour équation:
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">x sin&nbsp;β<sub>0</sub>&nbsp;-&nbsp;y cos&nbsp;β<sub>0</sub>&nbsp;= 0</div>
Et l'angle θ&nbsp;formé par ces deux plans, qui est aussi égal à celui de leurs vecteurs orthogonaux, est ensuite donné&nbsp;par&nbsp;:
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">cos θ = [ sin&nbsp;β<sub>0&nbsp;</sub> (cos&nbsp;α<sub>0</sub> sin&nbsp;β<sub>0</sub> sin&nbsp;α -&nbsp;cos&nbsp;α&nbsp;sin&nbsp;β&nbsp;sin&nbsp;α<sub>0</sub>)&nbsp;&nbsp;- cos&nbsp;β<sub>0&nbsp;</sub>(cos&nbsp;α cos&nbsp;β&nbsp;sin&nbsp;α<sub>0</sub> -&nbsp;cos&nbsp;α<sub>0</sub> cos&nbsp;β<sub>0</sub> sin&nbsp;α) ] / cos&nbsp;α<sub>0</sub></div> <div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">cos θ = sin&nbsp;α -&nbsp;cos&nbsp;α tg&nbsp;α<sub>0 </sub>* (sin&nbsp;β&nbsp;sin&nbsp;β<sub>0</sub> -&nbsp;cos&nbsp;β&nbsp;cos&nbsp;β<sub>0</sub>)</div>
La distance D entre les deux points (α<sub>0</sub>,β<sub>0</sub>) et (α,β)&nbsp;est donnée par:
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">D<sup>2</sup> = (cos&nbsp;α cos&nbsp;β -&nbsp;cos&nbsp;α<sub>0</sub> cos&nbsp;β<sub>0</sub>)<sup>2</sup> +&nbsp;(cos&nbsp;α sin&nbsp;β -&nbsp;cos&nbsp;α<sub>0</sub> sin&nbsp;β<sub>0</sub>)<sup>2</sup> +(sin&nbsp;α -&nbsp;sin&nbsp;α<sub>0</sub>)<sup>2</sup></div>
Cette distance est comprise entre 0 et 2. 0 <= D <= 2

Pour R, on peut choisir librement une fonction R= R(D), pour autant que&nbsp;:

*0 <= R <= 1
*R(2) = 1
*R'(D) > 0 &nbsp;(dérivée positive, monotone croissante)
*R''(D) < 0 &nbsp;(dérivée seconde négative, objets proches plus dilatés que lointains)''

Ntamment, toutes les fonctions suivantes sont acceptables, et ne varient que par leur "facteur de magnification m":
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">R = D <sup>m</sup>&nbsp;/ 2 <sup><span style="font-size: 10.8333px;">m</span></sup></div>
Le facteur de magnification m est compris entre 0.01 et 1.0.

Par défaut, on peut partir de m=0.5:
<div style="background:#eee;border:1px solid #ccc;padding:5px 10px;">R = D <sup>1/2</sup>&nbsp;/ 2 <sup>1/2</sup></div>
L'ensemble des formules qui précèdent permettent d'établir la relation complète (R,θ) = F(α<sub>0,</sub>β<sub>0,</sub>α,β) .

== Programme ==

Le programme CeMap contient une base de donnée incluant&nbsp;les coordonnées des points (α,β) utiles:

*frontières de états et des terres immergées
*villes importantes
*méridiens et parallèles

Cette base de données peut être construite à partir de bases publiques sur internet.

Le pogramme contient également les procédures implémentant&nbsp;(R,θ) = F(α<sub>0,</sub>β<sub>0,</sub>α,β) .

L'interface utilisateur montre à tout moment le globe en projection CeMap.

L'interface utilisateur permet aussi de cliquer sur n'importe quel point du globe, qui devient ainsi dynamiquement le centre de la projection ((α<sub>0,</sub>β<sub>0</sub>).

Lorsque l'utilisateur déplace sa souris sans cliquer, les coordonnées du point survolé sont affichées en 3 modes (toutes les transformations sont bijectives):

*latitude & longitude
*R &&nbsp;θ (polaires)
*x & y (cartésiennes)

Par ailleurs, des fonctions permettent à l'utilisateur de télécharger des images à haute résolution et des impressions diverses, tout cela sous forme de services payants.

Ler programme est accessible à cette adresse: xxx.

Dernière version du 19 mai 2017 à 23:18

Intro

Voir aussi GeoJava

Latitude et longitude

Tous les points du globe sont classiquement caractérisés par:

  • une latitude α (-π/2 <= α <= π/2). α = 0 à l'équateur. α = π/2 au pôle nord. α = -π/2 au pôle sud.
  • une longitude β (-π <= β  <= π). β = 0 au méridien de Greenwhich (arbitraire).

Une documentation pus précise figure ici.

Pour la suite. la Terre est assimilée à un objet parfaitement sphérique.

 

Projection CeMap

La projection CeMap (centered map) vise à mettre tout les points de la Terre sur une carte en forme de disque, ce disque étant centré sur un point librement choisi. Ce point central est caractérisé par ses coordonnées (α00).

La suite de l'article vise à transformer mathématiquement un point quelconque (α,β) en coordonnées polaires (θ,R) utilisable pour construire le disque projeté (0<=R<=1)

En coordonnées cartésiennes (x,y,z) le point (α,β) devient (cos α cos β, cos α sin β, sin α). On prend pour unité le rayon de la Terre. La troisième coordonnée est la 'verticale' (le troisième axe passe par les pôles).

Il est établi que le vecteur orthogonal au vecteur (x1,y1,z1) et au vecteur (x2,y2,z2) est donné par le produit vectoriel (y2 z1 - z2 y1 , z2 x1 - x2 z1 , x2 y1 - x1 y2). 

Soient d'une part les trois points

  1. milieu de la Terre cartésien:(0,0,0)
  2. (α,β) cartésien:(cos α cos β, cos α sin β, sin α)
  3. 00) cartésien:(cos α0 cos β0, cos α0 sin β0, sin α0)

Le vecteur v, orthogonal à la fois au vecteur (α,β) et au vecteur (α00) est donné (cartésien) par:

(v1 , v2 , v3) = (cos α0 sin β0 sin α - cos α sin β sin α0, cos α cos β sin α0 - cos α0 cos β0 sin α, cos α cos α0 (sin β cos β0 - cos β sin β0) )

Ce vecteur n'est pas normé.

Soient d'autre part les trois points

  1. milieu de la Terre cartésien:(0,0,0)
  2. pôle nord cartésien:(0,0,1)
  3. 00) cartésien:(cos α0 cos β0, cos α0 sin β0, sin α0)

Le vecteur w orthogonal à la fois au vecteur polaire et au vecteur (α00) est donné (cartésien) par:

(w1 , w2 , w3) = (sin β0 , - cos β, 0)

Ce vecteur est normé.

Les deux vecteurs déterminés sont normés.

Chacun des deux ensembles de trois points détermine un plan. L'angle formé par ces plans est aussi l'angle formé par leurs vecteurs perpendiculaires

cos θ = [ sin β (cos α0 sin β0 sin α - cos α sin β sin α0)  - cos β(cos α cos β sin α0 - cos α0 cos β0 sin α) ] / cos α0                  (non - problème de norme)
cos θ = sin α - cos α tg α0 * (sin β sin β0 - cos β cos β0)

 

Donc le vecteur orthogonal à la fois au vecteur (α,β) et au vecteur (α00) est donné (cartésien) par:

(cos α0 sin β0 sin α - cos α sin β sin α0, cos α cos β sin α0 - cos α0 cos β0 sin α, cos α cos α0 (sin β cos β0 - cos β sin β0) )

a pour équation:

x (cos α0 sin β0 sin α - cos α sin β sin α0) + y (cos α cos β sin α0 - cos α0 cos β0 sin α) + z cos α cos α0 (sin β cos β0 - cos β sin β0) = 0

De même, le plan 'vertical' contenant les trois points (0,0,0), (0,0,1), (cos α0 cos β0, cos α0 sin β0, sin α0) a pour équation:

x sin β0 - y cos β0 = 0

Et l'angle θ formé par ces deux plans, qui est aussi égal à celui de leurs vecteurs orthogonaux, est ensuite donné par :

cos θ = [ sin β (cos α0 sin β0 sin α - cos α sin β sin α0)  - cos β(cos α cos β sin α0 - cos α0 cos β0 sin α) ] / cos α0
cos θ = sin α - cos α tg α0 * (sin β sin β0 - cos β cos β0)

La distance D entre les deux points (α00) et (α,β) est donnée par:

D2 = (cos α cos β - cos α0 cos β0)2 + (cos α sin β - cos α0 sin β0)2 +(sin α - sin α0)2

Cette distance est comprise entre 0 et 2. 0 <= D <= 2

Pour R, on peut choisir librement une fonction R= R(D), pour autant que :

  • 0 <= R <= 1
  • R(2) = 1
  • R'(D) > 0  (dérivée positive, monotone croissante)
  • R(D) < 0  (dérivée seconde négative, objets proches plus dilatés que lointains)

Ntamment, toutes les fonctions suivantes sont acceptables, et ne varient que par leur "facteur de magnification m":

R = D m / 2 m

Le facteur de magnification m est compris entre 0.01 et 1.0.

Par défaut, on peut partir de m=0.5:

R = D 1/2 / 2 1/2

L'ensemble des formules qui précèdent permettent d'établir la relation complète (R,θ) = F(α0,β0,α,β) .

Programme

Le programme CeMap contient une base de donnée incluant les coordonnées des points (α,β) utiles:

  • frontières de états et des terres immergées
  • villes importantes
  • méridiens et parallèles

Cette base de données peut être construite à partir de bases publiques sur internet.

Le pogramme contient également les procédures implémentant (R,θ) = F(α0,β0,α,β) .

L'interface utilisateur montre à tout moment le globe en projection CeMap.

L'interface utilisateur permet aussi de cliquer sur n'importe quel point du globe, qui devient ainsi dynamiquement le centre de la projection ((α0,β0).

Lorsque l'utilisateur déplace sa souris sans cliquer, les coordonnées du point survolé sont affichées en 3 modes (toutes les transformations sont bijectives):

  • latitude & longitude
  • R & θ (polaires)
  • x & y (cartésiennes)

Par ailleurs, des fonctions permettent à l'utilisateur de télécharger des images à haute résolution et des impressions diverses, tout cela sous forme de services payants.

Ler programme est accessible à cette adresse: xxx.