Cartographie, importation avec readOGR()

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Azélie BUISSON
Messages : 2
Enregistré le : 08 Aoû 2022, 07:37

Cartographie, importation avec readOGR()

Messagepar Azélie BUISSON » 08 Aoû 2022, 09:28

Bonjour,
dans le cadre de la création d'une carte multicouche sur ggplot, Je souhaite utiliser des fonds de cartes et des réseaux de rivières au format shapefile. J'ai un problème avec readOGR(), pour le même code, avec des shapefile différents, le programme ne me donne pas le même type de données de localisation. Dans le cas où les données sont utilisables readOGR() retourne des coordonnées de type 44.25488... mais dans certains cas c'est une série de chiffres sans point. Et R renvoie un message d'erreur. De plus, ce c'est pas un "anque" de virgule puisque mêmeen les rajoutant les coordonnée ne correspondent pas.

Voici le code :

Code : Tout sélectionner

unzip("D:/Documents/Work/XXXX/map/wise_large_rivers.zip")
library(rgdal)
map_eau <- readOGR(dsn=".", layer="Large_rivers") %>%
   +   fortify()


et la répons en cas d'échec :
OGR data source with driver: ESRI Shapefile Source: "C:\Users\zouze\Documents", layer: "Large_rivers" with 20 features It has 2 fields

Warning message: In OGRSpatialRef(dsn, layer, morphFromESRI = morphFromESRI, dumpSRS = dumpSRS, : Discarded datum European_Terrestrial_Reference_System_1989 in Proj4 definition: +proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs


Je suppose que c'est un problème de CRS ou de datum, mais je me demande ce que je dois changer pour convertir mes "données étranges" en "données correctes" ? (voir images)

correcte : Image
étrange : Image

Merci pour vos réponses

Sébastien Rochette
Messages : 54
Enregistré le : 03 Juil 2020, 12:43
Contact :

Re: Cartographie, importation avec readOGR()

Messagepar Sébastien Rochette » 08 Aoû 2022, 09:45

Bonjour,

D'abord je vous recommande de plutôt utiliser le package {sf} à la place de {rgdal} qui est déprécié aujourd'hui et qui ne va plus être maintenu. En effet la gestion des systèmes de coordonnées a beaucoup changer avec _proj_ , et tout a été revu dans {sf}. {rgdal}, {sp} et {proj} ne sont plus maintenu.
Le warning que vous avez est un avertissement en ce sens: la gestion des CRS est différente maintenant, donc il y a des choses qui ne passent pas.

J'ai rédigé un article de blog en français pour s'y mettre: https://statnmap.com/fr/2018-07-14-initiation-a-la-cartographie-avec-sf-et-compagnie/

Pour votre code, cela implique de lire les données avec `read_sf()`. Et pas besoin de `fortify()`, les données sont passées en "tidy" / "simple features" directement.

Code : Tout sélectionner

map_eau <- read_sf(dsn=".", layer="Large_rivers")


Le système de coordonnée qui est lu est "European_Terrestrial_Reference_System_1989". C'est un système projeté. Alors ça ne m'étonne pas que les coordonnées soient en mètres. Avec des valeurs très élevées.
Je ne pense pas qu'il y ait de problème sur cette couche a priori.

Si vous installez le package {mapview}, vous pourrer vérifier que les coordonnées sont bonnes, si votre couche se superpose correctement à la zone de travail.

Code : Tout sélectionner

mapview::mapview(map_eau)
Sébastien
Dev, Consult, Formateur
ThinkR

Azélie BUISSON
Messages : 2
Enregistré le : 08 Aoû 2022, 07:37

Re: Cartographie, importation avec readOGR()

Messagepar Azélie BUISSON » 08 Aoû 2022, 16:09

D'accord merci, effectivement ça a marché. Et vos divers "cours" sont très instructif.
Bonne soirée


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron