Une catégorie est consacrée à ce sujet : Modèle générique de paramétrage de carte.

On décrit ici les systèmes de projection des modèles génériques de paramétrage de carte. Ce sont, pour quelques-unes, des versions approchées des systèmes de pseudo[1] projections cartographiques couramment employées.

La catégorie Catégorie:Modèle exemple de géolocalisation automatisée fournit des tests de rendus.

Considérations générales

modifier

Le problème consiste à convertir la donnée de coordonnées géographiques (latitude, longitude) en position à l'écran (en pourcentage) pour une carte donnée. Des modèles génériques de paramétrage de carte correspondent aux différents types de projections cartographiques

Cadrage

modifier
 
Coordonnées polaires

Les paramètres à fournir sont (essentiellement), suivant le modèle générique, parmi ces paramètres :

  • les latitudes en degrés : top, latitude, bottom
  • les longitudes en degrés : right, longitude, left
  • les tailles en pixels iheight, iwidth ne sont plus nécessaires
paramètres à fournir pour le paramétrage d'une carte géographique.
 

Puisqu'en l'état actuel des choses, beaucoup de modèles ne fournissent pas directement les paramètres latitude et longitude. Il existe deux modèles {{Latitude}} et {{Longitude}} qui permettent d'obtenir ces valeurs.

Décomposition de la projection

modifier

En réalité un modèle de paramétrage de carte ne fournit pas une position à l'écran ; mais un couple (x,y) de pourcentages qui indiquent la position du point par rapport aux dimensions de l'image de la carte.

Les modèles de paramétrage de carte implémentent donc deux fonctions de conversion :

x(lat, long),       y(lat,long)

Ces fonctions satisfont les inégalités[2] :

0 ≤ x(lat, long) ≤ 100,       0 ≤ y(lat,long) ≤ 100

où (lat, long) sont les coordonnées géographiques d'un point exprimées en degrés.

Un modèle (générique) de paramétrage de carte retourne donc les coordonnées (x,y) à partir de la donnée des coordonnées (lat,long). Cette conversion se décompose en trois étapes :

1) Conversion des degrès en radians :

 ,         ;       ( ,        )

2) Projection cartographique proprement dite :
Ici, on considère la Terre comme une sphère parfaite de rayon 1. Les coordonnées géographiques (latitude, longitude) sont ici ( , ) exprimés en radian. On recherche la conversion en coordonnées (X,Y) du point sur la carte. Le point (0,0) correspondra toujours aux coordonnées ( , ) et sera le centre de la carte. L'échelle en ce centre est de 1:1[3]. Les fonctions sont donc :

 ,        

Ces fonctions sont détaillées ci-après.
3) Conversion de (X,Y) en (x,y) :

 ,        [4]

ou encore

 ,        [5]

  et   sont (de manière parfois artificielle)  :

 ,        

Distance

modifier

La distance kilométrique entre deux points géographiques (φ, λ) ; (φ', λ') n'est pas simple à calculer de manière générale. La situation s'améliore lorsque les deux points ont même longitude (i.e., λ=λ') :

D(φ, φ', λ)= |φ-φ'| diam / 2

ou même latitude (i.e., φ=φ') :

D(φ, λ, λ')= cos(φ) |λ-λ'| diam / 2

Ici diam est le diamètre en km de la planète[6]. Les formules inverses permettent de convertir une distance kilométrique en un angle en radian.

Conversion d'une distance kilométrique verticale

modifier

À partir d'un point quelconque (lat, long) donnée en degré, un déplacement d'une distance D vers le Sud se traduit par une variation d'angle :

 

{{/Change|balise=div||2= Après projection, cette variation d'angle donne un écart (positif) de

ev = sqrt[ (x(lat',long)-x(lat,long))² + (y(lat',long)-y(lat,long))²]

qui correspond à un pourcentage de la hauteur de l'image de la carte.

Si l'on exclut les projections coniques à proximité des pôles, on peut négliger l'écart longitudinal entre la représentation des deux points. On obtient alors une formule finale de ev(lat, long, D), la conversion en pourcentage d'un écart kilométrique vertical D au point (lat, long):

ev(lat, long, D) = y(lat-{180/π}2D/diam},long) - y(lat,long)

}} En multipliant par la hauteur de l'image /100, on a l'écart en pixels.

Conversion d'une distance kilométrique horizontale

modifier

De manière similaire, un déplacement d'une distance D vers l'Ouest à partir du point (lat, long), se traduit par une variation d'angle :

 

{{/Change|balise=div||2= Après projection, cette variation d'angle donne un écart (positif) de

eh = sqrt[ (x(lat,long)-x(lat,long'))² + (y(lat,long)-y(lat,long'))²]

qui correspond à un pourcentage de la largeur de l'image de la carte.

Là encore, on néglige l'écart vertical, et l'on obtient :

eh(lat, long, D) = x(lat,long) - x(lat,long-{180/π}2D/(cos((π/180)lat) diam))

}} En multipliant par la largeur de l'image /100, on a l'écart en pixels.

La projection équirectangulaire

modifier

Les formules se simplifie considérablement dans ce cas de figure :

ev(lat, long, D) = 100 (lat-lat')/(top-bottom) = COEF D /(top-bottom)
eh(lat, long, D) = 100 (long-long')/(right-left) = COEF D /[(right-left) cos((π/180)lat)]

COEF = 100 (180/π) (2/diam)

Échelle

modifier

Si la carte n'est pas déformée, les deux coefficients   et   doivent être égaux et donnent l'échelle globale de la carte (non redimensionnée) en pixels par dégrés (de latitude ou, de longitude à l'équateur).

En réalité, {{Géolocalisation/Projection équirectangulaire}} est le seul modèle à employer les paramètres left, right ; les autres utilisent simplement longitude. C'est donc   qui doit être retenu pour l'échelle.

Déformation

modifier

La déformation est le rapport entre échelle horizontale et échelle verticale ou encore, pour une distance donnée, le rapport des longueurs (en pixels) de la représentation de cette distance sur un méridien et un parallèle.

déformation globale =  

 

{{Déformation cartographique}} calcule une déformation locale en un point quelconque de la carte. La formule est

déformation(lat, long) =  

{{Déformation cartographique centrale}} calcule la déformation locale au centre de la carte. Donc :

déformation centrale = déformation(latitude, longitude).

On emploie {{Latitude}}, {{Longitude}} pour déterminer ce centre.

Notons que Déformations centrale et globale donnent le même résultat pour la {{Géolocalisation/Projection équirectangulaire}}.

Une déformation de 1 correspond en théorie à une absence de déformation. En réalité, à cause de l'aplatissement de la Terre, le rapport optimal est

Circonférence équatoriale 40 075 km

=
1,0017
Circonférence sur un méridien 40 008 km

Une déformation supérieure à 1 correspond à un écrasement vertical[7].

Omis {{Géolocalisation/Projection équirectangulaire}}, les modèles emploient   (ou déformation*  lorsque le paramètre déformation existe) au lieu de  .

Excentrage

modifier

Certaines cartes ont été recadrées. La conséquence de ce recadrage est que le méridien central (qui est vertical et rectiligne) se trouve excentré, voire même, hors carte. Pour prendre cela en charge, certains modèles génériques ont un paramètre alternatif x0 pour fournir la position horizontale en pixels du méridien central sur la carte.

De la formule mathématique à celle du modèle

modifier

Récapitulons : Les formules mathématiques de la projection sont

 ,        

et le code d'un modèle (générique ou optimisé) de paramétrage de carte présente la forme suivante :

{{#switch:{{{1}}}
|y={{#expr: y({{{2}}}, {{{3}}})
   }}
|x={{#expr: x({{{2}}}, {{{3}}})
   }}
<!-- ... -->
}}

x(lat, long),       y(lat,long)

sont liés aux formules mathématiques par :

 

 

 ,        [8].


Pour davantage de souplesse (prise en compte de l'excentrage et de la déformation) et pour alléger la formule, on ajoute les paramètres px0, py0, dx, dy, de sorte que le code du modèle devient (pour les projections complexes) :

{{#switch:{{{1}}}
|y={{#expr: {{{py0|50}}} - ({{{dy}}}) * Y( (pi/180)*({{{2}}}), (pi/180)*({{{3}}}) )
   }}
|x={{#expr: {{{px0|50}}} + ({{{dx}}}) * X( (pi/180)*({{{2}}}), (pi/180)*({{{3}}}) )
   }}
<!-- ... -->
}}

dx, dy devraient donc être :

dx= ,       dy= .

Noter qu'au final, ces formules sont indépendantes de (iwidth, iheight) puisque l'on opère en pourcentage.

Projections cylindres ou pseudo-azimutales

modifier
La transformation verticale
Chez la plupart de ces systèmes de projection,   ; cela signifie que les parallèles sont des droites horizontales régulièrement espacés. La transformation verticale est simplement :
y(lat)=100 * (top-lat)/(top-bottom)

Pseudo projection équirectangulaire

modifier

C'est la conversion la plus simple :

 ,        

Méridiens et parallèles forment une grille régulière. L'entrée des valeurs top, bottom, right, left, laisse la place à une possible déformation.

x(long)=100 * (long-left)/(right-left)
y(lat)=100 * (top-lat)/(top-bottom)
Note
La carte doit normalement résulter d'une projection équirectangulaire. Dans ce cas, il n'y pas de déformation au centre (c'est-à-dire, que l'on aura déformation=1).

Pseudo projection "linéaire"

modifier

Cette conversion est moins approximative car elle tient compte de l'oblicité des méridiens. Méridiens et parallèles demeurent des droites régulièrement espacées.

 ,      

  est le développement limité d'ordre 1 de   en   qui correspond à la projection arquée.

x(lat,long)=100 * [ 1/2+ iheight/iwidth*COEF*(long-longitude)/(top-bottom) ]
COEF= cos(π/180*(top+bottom)/2) - sin(π/180*(top+bottom)/2) * (π/180*(lat-(top+bottom)/2))
y(lat)=100 * (top-lat)/(top-bottom)


Pseudo projection "arquée"

modifier

Ici les méridiens sont arqués, les parallèles demeurent des droites régulièrement espacées.

 ,      

Un paramètre supplémentaire a permet d'ajuster l'arquage. Sa valeur doit être positive pour l'hémisphère nord (a=0.4 pour {{Géolocalisation/France}}).

x(lat,long)=100 * [ 1/2+ iheight/iwidth*COEF*(long-longitude)/(top-bottom) ]
COEF= cos(π/180*lat)
y(lat,long)=100 * (top-lat-tan(π/180*lat)*a/2*π/180*(long-longitude)^2)/(top-bottom)

Projection sur un plan

modifier

Projection perspective

modifier

La projection la plus naturelle est la vue en perspective, qui correspond à une projection sur un plan tangent à la surface du globe. C'est une projection azimutale. Elle est paramétrée par la donnée d'une échelle, et la donnée de la position d'un point de convergence (la position de l'œil) que l'on donne en coordonnées sphérique :   . Le plan de projection est alors tangent à la sphère au point   (le centre de projection).

Si C est le centre de projection, D le point de convergence, la projection d'un point S de la surface du globe est simplement le point P d'intersection de la droite SD avec le plan. Les valeurs (X,Y) sont les coordonnées du vecteur CP dans un repère orthonormé   (d'origine C) du plan de projection.   et   appartiennent au plan et   et sur l'axe CD. On choisira bien sur le repère où   est dans un plan horizontal (afin que l'axe Nord-Sud soit vertical).

 ,      

 

 

Voir Vertical Perspective Projection

Projection gnomonique

modifier

La projection est gnomonique lorsque d=0. La Terre est donc vue depuis son centre. Voir Gnomonic Projection.

Projection stéréographique

modifier

La projection est stéréographique lorsque d=-1. La Terre est donc vue depuis l'antipode du centre de projection. Voir Stereographic Projection.

Projection orthographique

modifier

La projection est orthographique lorsque d= . La Terre est donc vue "à l'infinie".


Projection azimutale équivalente de Lambert

modifier

La projection azimutale équivalente de Lambert est assez proche de la projection perspective et plus particulièrement de la projection stéréographique où les parallèles divergent également.

Les formules ont la même forme générale que celles de la projection perspective

 ,      

mais   est plus complexe que   :

 

Sur l'axe vertical central (où  ), la formule se simplifie et l'on obtient :

 ,      

Voir Lambert Azimuthal Equal-Area Projection.

Projections coniques

modifier

Les caractéristiques de la projection coniques sont (généralement) :

  • Les parallèles sont des cercles
  • Les méridiens sont des droites régulièrement espacées qui se coupent en un pôle.

La formule générale est

 ,      ,     où    .

  est la latitude top, et   la longitude du méridien central, toutes deux exprimées en radian. Les différences résident donc dans la fonction   (de calcul du rayon) et le coefficient  [9].

Projection coniques linéaires

modifier

Ici les parallèles sont régulièrement espacées ; autrement dit,   est linéaire :

 

G sera la latitude où les méridiens se croisent.

On parle des « projection conique équidistante ». On considère 2 cas (tangent et sécant) :

Projection conique linéaire tangente

modifier

Ici la projection ne dépend que   (latitude du parallèle tangent).   sont des coordonnées polaires. Donc   et   :

 ,      .

Projection conique équidistante sécante

modifier

la projection conique équidistante ou projection de Delisle est basée sur 2 latitudes   (cône sécant).

 ,      ,      .

Les 2 dernières formules découlent de la propriété : les longueurs des méridiens sécants sont conservés par la projection

On voit que le rayon n'est pas a priori nul au pôle. Donc, les méridiens n'intersectent pas au pôle (qui faisant varié la longitude forme un arc de cercle), mais au delà (à la latitude G).

Les projections tangentes correspondent aux cas particuliers où   ;  .

Voir Conic Equidistant Projection.

Projections coniques non-linéaires

modifier

  et   est non-linéaire.

Projection conique centrale sur le cône tangent

modifier

Il s'agit d'une projection centrale sur le cône tangent. Ici les parallèles ne sont plus régulièrement espacées mais se répartissent selon la  

 ,      ,     où    ,      .

Les modèles génériques {{Géolocalisation/Projection conique}} et {{Géolocalisation/Projection conique avec DL}} mettent en œuvre cette projection. Dans le second, les fonctions trigonométriques ont été remplacées pas des développements limités ; ce qui dégrade très légèrement le résultat ; mais améliore considérablement le temps de calcul.

Les formules de {{Géolocalisation/Projection conique avec DL}}
y(lat, long) = 100 *( y0 + ( iheight/2 - y0 ) * ( 1 - t * DLt ) * DLc ) /iheight
x(lat, long) = 100 *( x0 + ( iheight/2 - y0 ) * ( 1 - t * DLt ) * DLs ) /iwidth
DLt est un DL de   :
DLt = (lat-latitude) * ( pi/180 + (pi/180)^3 / 3 * (lat-latitude)^2 )
DLc est un DL de   :
DLc = 1- (pi/180)^2 / 2 * (long-longitude)^2 * s^2
DLs est un DL de   :
DLs = (long-longitude) * s * ( pi/180 - (pi/180)^3 / 6 * (long-longitude)^2 * s^2 ) )
avec
  = pi/180 (long-longitude) * s
  = sin(pi/180 * latitude)
  = tan(pi/180 * latitude)
et (x0, y0) sont les coordonnées en pixels du pôle sur (ou hors de) l'image (x0 = iwidth/2 par défaut).

Projection conique centrale sur un cône sécant

modifier

Si   et   sont les deux méridiens sécants et   alors :

 .

Ces projections sont en réalité toutes identiques à la projection sur le cône tangent, à une déformation près, puisque l'absence de déformation n'est pas sur le méridien centrale mais sur les deux méridiens sécants.

Pseudo projections coniques complexes

modifier

Les cartes actuelles emploient généralement des (pseudo) projections coniques complexes (souvent appelées « projection conique modifiée ») tels que la projection sur un cône sécant, et surtout la projection de Lambert. La formule théorique générale est alors trop complexes pour être implémentées.

Heureusement les modèles {{Géolocalisation/Projection conique modifiée}} et {{Géolocalisation/Projection conique avec DL}} possèdent l'un et l'autre, un paramétrage suffisamment souple pour "émuler" ces systèmes de projections complexes. Ces modèles ne permettent donc qu'une approximation de la projection conique modifiée en paramétrant davantage (ce qui permet un meilleur ajustement en "jouant" sur les paramètres).

Autres projections

modifier

Projection polyconique

modifier

La projection polyconique n'est pas à proprement parler une projection conique (les méridiens ne sont pas rectilignes) ; mais elle ressemble à un accolement de 2 projections coniques (pour chaque pôles). On doit plutôt la considérer comme une projection azimutale car elle dépend d'un point central   (le point tangent). La parallèle centrale de latitude 0, est une droite horizontale qui, en quelque sorte, marque la séparation entre les deux cônes.

 ,      

Voir Mathworld's page on polyconic projections

Pseudo projection sinusoïdale

modifier

La projection sinusoïdale[10] est caractérisée par le fait que les méridiens ont une forme sinusoïdale et sont régulièrement espacés (avec un écartement maximal à l'équateur), les parallèles demeurent des droites régulièrement espacées. La latitude est donc celle de la projection équirectangulaire. Donc

 ,      

Pour tenir compte d'un possible excentrage de la carte, le paramétrage est basé (là encore) sur les coordonnées de cadrage left, right, top, bottom. longitude donne la longitude centrale (où le méridien est une droite); donc (right-left)/2 a priori. Il n'y a pas de paramètre latitude car la latitude centrale est toujours 0.

Plus précisément, left, right seront les longitudes des bords de la carte au niveau de l'équateur ; top, bottom les latitudes des bords de la carte au niveau de longitude.

On obtient :

x(lat,long)=100/(right-left)* [ (longitude-left) + cos(pi/180*lat)*(long-longitude) ]
y(lat)=100 * (top-lat)/(top-bottom)
Congruence
les paramètres left, right peuvent sortir du cadre   (pour une carte centrée sur l'océan Pacifique, typiquement). Il serait alors nécessaire de recadrer la longitude fournie (le paramètre 3 de {{G}}) dans l'intervalle [left,right] avant projection... ce qui alourdirait considérablement les formules. A partir de la valeur long fournie, la valeur long' utilisée serait :
long'= long+360 si long<left; long-360 si right<long; long sinon.
De plus, ce test est trop restrictif car l'intervalle [left,right] est un minima.
Note : dans le cas particulier où la Terre entière est représentée, on peut plus simplement ajouter ... mod 100 à la formule pour rester dans la fourchette 0<= =<100.

Voir aussi

modifier

Références

modifier
  • Jean Lefort, L'aventure cartographique, Belin, , 319 p. (ISBN 2-84245-069-8), « Annexe B », p. 291-318

  1. On a pris le soin de distinguer sous le terme « pseudo projection » des transformations qui ne peuvent être assimilées à des projections au sens mathématique du terme.
  2. cet encadrement n'est bien sur plus valable lorsque le point est hors-carte.
  3. c'est-à-dire, une distance de 1 sur la shère donne une distance de 1 sur la carte en son centre ; ou encore en terme mathématique, on a dY=dϕ, dX=dλ au centre.
  4. le signe - s'explique par le fait que si l'axe des Y est conventionnellement orienté vers le haut, la position verticale à l'écran croît vers le bas (concrètement : top > bottom pour des latitudes et top < bottom à l'écran).
  5. le signe - s'explique par le fait que si l'axe des Y est conventionnellement orienté vers le haut, la position verticale à l'écran croît vers le bas (concrètement : top > bottom pour des latitudes et top < bottom à l'écran).
  6. si l'on considère la planète en question comme une sphère parfaite.
  7. ou un étirement horizontal, selon le point de vue.
  8. Donc  =(pi/180)*({{{2}}}) ;  =(pi/180)*({{{3}}}) ;  =(pi/180)*({{{latitude}}}) ;  =(pi/180)*({{{longitude}}}) ;  =(pi/180)*({{{latitude1}}}) ; etc.
  9. Si l'on voir la projection comme un éventail, le coefficient   détermine l'ouverture de l'éventail
  10. La projection sinusoïdale est aussi appelée projection de Samson ou de Flamsteed.