Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
#1 Hier 11:56
- A.Duranel
- Juste Inscrit !
- Date d'inscription: 28 Feb 2006
- Messages: 9
Projection Lambert 2 Etendu Lambert 93 avec R et sf
Bonjour,
J'essaye de projeter des données en Lambert 2 étendu vers le Lambert 93 avec le package sf pour R, mais je n'obtiens pas les mêmes résultats qu'avec Circé (v.5.4.6).
Exemple :
X: 655000 Y : 2052940 en Lambert 2 étendu
Avec Circé on obtient X : 703112.347 Y : 6486136.042 en LAMBERT-93
Avec sf :
Code:
library(sf) library(magrittr) data.frame(X=655000, Y=2052940) %>% st_as_sf(coords = c("X", "Y"), crs=st_crs("IGNF:LAMBE")) %>% st_transform(st_crs("IGNF:LAMB93")) %>% st_coordinates() %>% sprintf(fmt="%.3f")
X :703112.908 Y : 6486136.425
On obtient exactement le même résultat si on remplace les codes IGNF par les codes EPSG ("IGNF:LAMBE" par 27572 et/ou "IGNF:LAMB93" par 2154), alors qu'on ne devrait pas je pense ?
Merci pour votre aide.
Hors ligne
#2 Hier 13:28
Re: Projection Lambert 2 Etendu Lambert 93 avec R et sf
Bonjour,
Si justement (on est d'accord), on doit avoir des différences si on passe des codes EPSG au code IGNF pour le lambert 2 étendue. Le code IGNF prend en compte la grille et est donc plus précis.
Il faut comprendre comment fonctionne la reprojection : lambert 2 étendue -> WGS84 -> Lambert 93
WGS84 et Lambert 93 sont suffisament proche au niveau de l'ellipsoide pour que le passage de l'un à l'autre se limite à un changement d'ordonnée à l'origine.
Pour la transformation de lambert 2 étendue à WGS84, c'est complétement différent. L'ellipsoide étant incompatible, le simple décalage de l'ordonnée à l'origine provoque des imprécisions. Le fait de définir le code à IGNF:lambe implique une correction via la grille NGF.
D'où vient le fait qu'on n'a pas de différence ? Est ce que R utilise la grille pour la reprojection ?
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Hier 14:06
- A.Duranel
- Juste Inscrit !
- Date d'inscription: 28 Feb 2006
- Messages: 9
Re: Projection Lambert 2 Etendu Lambert 93 avec R et sf
Merci pour ces précisions.
"D'où vient le fait qu'on n'a pas de différence ? Est ce que R utilise la grille pour la reprojection ?"
J'ai l'impression que non vu que la conversion donne exactement le même résultat qu'on parte de IGNF:LAMBE ou de EPSG:27572. Y a-t-il un moyen de faire en sorte que sf utilise cette grille et produise le même résultat que Circé ?
Hors ligne
#4 Hier 14:30
- magr
- Participant occasionnel
- Date d'inscription: 30 Mar 2016
- Messages: 31
Re: Projection Lambert 2 Etendu Lambert 93 avec R et sf
Il faut utiliser sf_proj_pipeline() qui permet d'utiliser la grille de conversion
Code:
library(sf) sf_proj_network(TRUE) # téléchargement auto des grilles source <- data.frame(X = 655000, Y = 2052940) |> st_as_sf(coords = c("X", "Y"), crs = "EPSG:27572") source |> st_transform("EPSG:2154") |> st_coordinates() |> sprintf(fmt="%.3f") (p <- sf_proj_pipelines("EPSG:27572", "EPSG:2154")) source |> st_transform("EPSG:2154", pipeline = p[1, ]$definition) |> st_coordinates() |> sprintf(fmt="%.3f")
On retombe sur les mêmes valeurs que Circée
Dernière modification par magr (Hier 16:20)
Hors ligne
#5 Hier 16:04
- A.Duranel
- Juste Inscrit !
- Date d'inscription: 28 Feb 2006
- Messages: 9
Re: Projection Lambert 2 Etendu Lambert 93 avec R et sf
Fantastique, merci !
Hors ligne