Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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: 518

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: 4792

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 smile !

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)))
}


fbecir a écrit:

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

 

Pied de page des forums

Powered by FluxBB