Aide:Systèmes de projection
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.
(en) Geolocation |
Géolocalisation double |
Carte complétée |
Image complétée |
Modèles + points |
Requêtes |
Projet |
Maintenance, Tests |
Systèmes de projection |
Modèles |
{{G}} |
Paramétrage des cartes |
Toutes les cartes |
Considérations générales
modifierLe 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
modifierLes 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
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
modifierEn 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
modifierLa 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
modifierDe 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
modifierLes 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)]
où
COEF = 100 (180/π) (2/diam)
Échelle
modifierSi 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
modifierLa 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.
où
{{Déformation cartographique}} calcule une déformation locale en un point quelconque de la carte. La formule est
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}}.
Les formules de projection sont dans ce cas:
x(long)=100 * (long-left)/(right-left)
y(lat)=100 * (top-lat)/(top-bottom)
On en déduit que
x(longitude+A)-x(longitude)=100 * A/(right-left)
y(latitude-B)-y(latitude)=100 * B/(top-bottom)
Ici A=0.01/cos(π/180 latitude)
, B=0.01
. Donc
iwidth/iheight * (top-bottom)/(right-left) * 1/cos(π/180 latitude)
= déformation globaleUne 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
modifierCertaines 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
modifierRé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}}}) }} <!-- ... --> }}
où
x(lat, long)
,
y(lat,long)
sont liés aux formules mathématiques par :
où
, [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}}}) ) }} <!-- ... --> }}
où 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
modifierC'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"
modifierCette 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"
modifierIci 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
modifierProjection perspective
modifierLa 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 : où . 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).
Coordonnées cartésiennes des points (dans le repère du globe) :
Le point P étant sur la droite SD, il s'écrit : . Le point P étant également dans le plan de projection (caractérisé par (x,y,z)C=0), on a .
Pour alléger l'écriture, on pose où et . Donc
.
On en déduit la valeur de :
.
où
D'autre part, le repère du plan de projection est défini par :
et le vecteur CP a (X,Y,0) pour coordonnées dans ce repère. On en déduit P-C = X i' + Y j' ; puis les valeurs X et Y.
Et l'on vérifie :
Enfin Y s'écrit également :
,
où
Voir Vertical Perspective Projection
Projection gnomonique
modifierLa projection est gnomonique lorsque d=0
. La Terre est donc vue depuis son centre. Voir Gnomonic Projection.
Projection stéréographique
modifierLa 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
modifierLa projection est orthographique lorsque d= . La Terre est donc vue "à l'infinie".
Projection azimutale équivalente de Lambert
modifierLa 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 :
,
Projections coniques
modifierLes 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ù .
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
modifierIci 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
modifierIci la projection ne dépend que (latitude du parallèle tangent). sont des coordonnées polaires. Donc et :
, .
Projection conique équidistante sécante
modifierla 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
Sur la sphère, la longueur (le périmètre) du méridien de latitude est
.
Sa projection est un arc de cercle de rayon et d'angle donc de longueur :
.
La propriété se traduit par le système :
; .
L'on obtient par résolution:
; .
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
modifieret est non-linéaire.
Projection conique centrale sur le cône tangent
modifierIl 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
- où
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
modifierSi 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
modifierLes 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
modifierProjection polyconique
modifierLa 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
modifierLa 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ètre3
de {{G}}) dans l'intervalle[left,right]
avant projection... ce qui alourdirait considérablement les formules. A partir de la valeurlong
fournie, la valeurlong'
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 fourchette0<= =<100
.
Voir aussi
modifier- Table of examples and properties of all common projections, from radicalcartography.net
Références
modifier- Jean Lefort, L'aventure cartographique, Belin, , 319 p. (ISBN 2-84245-069-8), « Annexe B », p. 291-318
- 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.
- cet encadrement n'est bien sur plus valable lorsque le point est hors-carte.
- 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.
- 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 ettop < bottom
à l'écran). - 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 ettop < bottom
à l'écran). - si l'on considère la planète en question comme une sphère parfaite.
- ou un étirement horizontal, selon le point de vue.
- Donc
=(pi/180)*({{{2}}})
;=(pi/180)*({{{3}}})
;=(pi/180)*({{{latitude}}})
;=(pi/180)*({{{longitude}}})
;=(pi/180)*({{{latitude1}}})
; etc. - Si l'on voir la projection comme un éventail, le coefficient détermine l'ouverture de l'éventail
- La projection sinusoïdale est aussi appelée projection de Samson ou de Flamsteed.