Pages: 1
- Sujet précédent - Conversion Lambert (projection LAEA - code EPSG 3035) en degré ! - Sujet suivant
#1 Mon 13 June 2016 11:21
- tahzem
- Juste Inscrit !
- Date d'inscription: 13 Jun 2016
- Messages: 2
Conversion Lambert (projection LAEA - code EPSG 3035) en degré !
Salut tout le monde !
Je suis totalement novice en géomatique et je travaille actuellement sur un outil nécessitant de faire des estimations de nombre d'habitants à partir de coordonnées en degré et d'un rayon. Pour ce fait, j'ai récupéré les données fournies par l'INSEE : http://www.insee.fr/fr/themes/detail.as … -carroyees (données carroyées à 200m).
Le problème que je rencontre est que je dispose des "coordonnées géographiques du coin sud-ouest du carreau : pour la métropole le système de projection LAEA - code EPSG 3035 (attributs x_LAEA et y_LAEA)" (source : http://www.insee.fr/fr/themes/detail.as … _doc.htm).
Je recherche donc activement la formule permettant de convertir ces coordonnées (type "10166,21274") en des coordonnées en degrés. Les seules formules que j'ai trouvé sont celles là : https://fr.wikipedia.org/wiki/Projectio … de_Lambert mais ne correspondent clairement pas au jeu de données que j'ai (ce qu'il y a dans l'arcsin très supérieur à 1, etc).
J'imagine que cette question a déjà été posée, mais je ne suis pas parvenu à trouver de réponse satisfaisante. Je précise seulement que je ne cherche pas d'outil tout fait mais bien les formules (aussi complexes soient-elles) permettant de faire la conversion.
Merci d'avance pour vos réponses !
Bonne journée,
Hors ligne
#2 Mon 13 June 2016 11:40
- fbecir
- Participant assidu
- Lieu: Saint-Mandé
- Date d'inscription: 16 Sep 2008
- Messages: 519
Re: Conversion Lambert (projection LAEA - code EPSG 3035) en degré !
Bonjour et bienvenu
Théoriquement, vous devriez trouver votre bonheur là :
http://geodesie.ign.fr/contenu/fichiers … lg0073.pdf
D'une manière générale, la plupart des algorithmes concernant la géodésie Française se trouve sur le site geodesie.ign.fr
Cordialement
Hors ligne
#3 Mon 13 June 2016 12:38
- Patrice
- JeSuisCharlie
- Date d'inscription: 16 Sep 2005
- Messages: 4794
Re: Conversion Lambert (projection LAEA - code EPSG 3035) en degré !
Hello Francois ("Mr IGNMap")
MERCI pour ta participation sur georezo.net et tes reponses "toujours" judicieuses ...
GeoBye, Pat
(Autodesk Expert Elite Team)
Hors ligne
#4 Tue 14 June 2016 09:28
- tahzem
- Juste Inscrit !
- Date d'inscription: 13 Jun 2016
- Messages: 2
Re: Conversion Lambert (projection LAEA - code EPSG 3035) en degré !
Merci François pour ta réponse, cela correspond parfaitement à ce que je cherchais !
Pour ceux que cela intéresserait, voilà ce que donne l'algorithme décrit, prenant en entrée les coordonnées ETRS-LAEA (X,Y) et donnant en sortie longitude et latitude (lambda, phi) :
conversion_degre <- function(X,Y){
a <- 6378137.0
e <- 0.081819191043
lambda0 <- 0.174532925199
phi1 <- 0.907571211037
X0 <- 4321000
Y0 <- 3210000
epsilon <- 10^(-11)
x <- X-X0
y <- Y-Y0
qp <- (1-e^2)*(1/(1-e^2) - 1/(2*e) * log((1-e)/(1+e)))
q1 <- (1-e^2)*(sin(phi1)/(1-e^2*sin(phi1)^2) - (1/(2*e)) * log((1-e*sin(phi1))/(1+e*sin(phi1))))
beta1 <- asin(q1/qp)
m1 <- cos(phi1)/sqrt(1-e^2*sin(phi1)^2)
Rq <- a*sqrt(qp/2)
D <- (a*m1)/(Rq*cos(beta1))
rho <- sqrt((x/D)^2 + (D*y)^2)
ce <- 2*asin(rho/(2*Rq))
q <- qp*(cos(ce)*sin(beta1) + D*y*sin(ce)*cos(beta1)/rho)
lambda <- lambda0 + atan((x*sin(ce))/((D*rho*cos(beta1)*cos(ce)) - D^2*y*sin(beta1)*sin(ce)))
phi0 <- asin(q/2)
phi_iplus1 <- Inf
phi_i <- phi0
ecart <- Inf
while(ecart>epsilon){
phi_iplus1 <- phi_i + ((1-e^2*sin(phi_i)^2)^2/(2*cos(phi_i)))*( q/(1-e^2)-sin(phi1)/(1-e^2*sin(phi_i)^2)+(1/(2*e))*log((1-e*sin(phi_i)) / (1+e*sin(phi_i))))
ecart <- abs(phi_iplus1-phi_i)
phi_i <- phi_iplus1
}
phi <- phi_i
return(c(lambda*(180/pi),phi*(180/pi)))
}
Bonjour et bienvenu
Théoriquement, vous devriez trouver votre bonheur là :
http://geodesie.ign.fr/contenu/fichiers … lg0073.pdf
D'une manière générale, la plupart des algorithmes concernant la géodésie Française se trouve sur le site geodesie.ign.fr
Cordialement
Hors ligne
#5 Fri 02 September 2016 20:47
- mmcelki
- Juste Inscrit !
- Date d'inscription: 2 Sep 2016
- Messages: 1
Re: Conversion Lambert (projection LAEA - code EPSG 3035) en degré !
Hello,
Une petite erreur s'est glissée dans le code ci-dessus. Il faut le modifier très légèrement (la correction apparaît en gras) pour une utilisation correcte.
conversion_degre<- function(X,Y){
a <- 6378137.0
e <- 0.081819191043
lambda0 <- 0.174532925199
phi1 <- 0.907571211037
X0 <- 4321000
Y0 <- 3210000
epsilon <- 10^(-11)
x <- X-X0
y <- Y-Y0
qp <- (1-e^2)*(1/(1-e^2) - 1/(2*e) * log((1-e)/(1+e)))
q1 <- (1-e^2)*(sin(phi1)/(1-e^2*sin(phi1)^2) - (1/(2*e)) * log((1-e*sin(phi1))/(1+e*sin(phi1))))
beta1 <- asin(q1/qp)
m1 <- cos(phi1)/sqrt(1-e^2*sin(phi1)^2)
Rq <- a*sqrt(qp/2)
D <- (a*m1)/(Rq*cos(beta1))
rho <- sqrt((x/D)^2 + (D*y)^2)
ce <- 2*asin(rho/(2*Rq))
q <- qp*(cos(ce)*sin(beta1) + D*y*sin(ce)*cos(beta1)/rho)
lambda <- lambda0 + atan((x*sin(ce))/((D*rho*cos(beta1)*cos(ce)) - D^2*y*sin(beta1)*sin(ce)))
phi0 <- asin(q/2)
phi_iplus1 <- Inf
phi_i <- phi0
ecart <- Inf
while(ecart>epsilon){
phi_iplus1 <- phi_i + ((1-e^2*sin(phi_i)^2)^2/(2*cos(phi_i)))*( q/(1-e^2)-sin(phi_i)/(1-e^2*sin(phi_i)^2)+(1/(2*e))*log((1-e*sin(phi_i)) / (1+e*sin(phi_i))))
ecart <- abs(phi_iplus1-phi_i)
phi_i <- phi_iplus1
}
phi <- phi_i
return(c(lambda*(180/pi),phi*(180/pi)))
}
Dernière modification par mmcelki (Fri 09 September 2016 10:49)
Hors ligne
Pages: 1
- Sujet précédent - Conversion Lambert (projection LAEA - code EPSG 3035) en degré ! - Sujet suivant