Trait de côte avec ggplot et calcul de distance

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

Jérémie Habasque
Messages : 62
Enregistré le : 05 Oct 2011, 11:54

Trait de côte avec ggplot et calcul de distance

Messagepar Jérémie Habasque » 20 Nov 2014, 08:48

Bonjour,

A partir de mon jeu de données (points de mesures effectuées au large des côtes marocaines) je souhaiterais :
1- Cartographier les points avec des valeurs associées en ajoutant le polygone du continent, en distinguant les mesures de jour et de nuit.
2- Calculer la distance entre chaque point et le trait de côte. Ce qui induit d'avoir un polygone à haute résolution.

Voici un exemple reproductible:

Code : Tout sélectionner

library(ggplot2)
library(maptools)
library(mapdata)
library(rworldmap)
lon = c(-16.80,-16.81,-16.82,-16.83,-16.84,-16.85)
lat = c(22.93,22.91,22.90,22.89,22.87,22.86)
values = c(1.84,2.06,1.54,1.47,1.48,1.17)
day_night = c(1,1,1,3,3,3)
dataset = data.frame(lon,lat,values,day_night)
maroc.map <- data.frame(map('worldHires', c('Morocco','Western Sahara'))[c('x', 'y')])
ggplot(maroc.map,aes(x=x,y=y))+ geom_path() +
  geom_point(aes(x=lon, y=lat, color=values),inherit.aes=FALSE,data=dataset,alpha=1, size=2)+
  facet_grid(~day_night)+
  scale_x_continuous(limits = c(min(lon)-0.5,max(lon)+0.5),"Longitude") + scale_y_continuous(limits = c(min(lat)-0.5, max(lat)+0.5),"Latitude")+
  theme_bw()


Pour le moment, j'utilise la librairie ggplot et worldHires pour le polygone continent. Le résultat n'est pas très satisfaisant car le trait de côte est d'une faible résolution et il est tronqué par geom_path:
Warning messages:
1: Removed 141 rows containing missing values (geom_path).

Y a t-il des librairies / fonctions plus adaptées à mes besoins ? Et je n'ai pas encore abordé le calcul de la distance entre chaque point et le trait de côte...

Merci d'avance,

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 23 Nov 2014, 10:23

C'est probablement le trait de côte lui-même qui pose pb. Il y a pas mal de bases de données spatiales sur le sujet dispo sur Internet. J'en ai essayé plusieurs et je n'ai pas trouvé mieux (sans bcp chercher !). Vous devez en avoir à l'Ird ???
Renaud

Jérémie Habasque
Messages : 62
Enregistré le : 05 Oct 2011, 11:54

Messagepar Jérémie Habasque » 25 Nov 2014, 15:22

Finalement, je passe par la fonction Rgshhs du package maptools.
Il faut télécharger le fichier binaire ici http://www.soest.hawaii.edu/pwessel/gsh ... -2.3.0.zip puis le dézipper.

Et ensuite utiliser le code suivant :

Code : Tout sélectionner

cote<-Rgshhs("C:/Users/.../Desktop/GSHHS/gshhg-bin-2.3.0/gshhs_f.b",xlim=c(X,X),ylim=c(X,X),level=2).
plot(cote$SP,col="gray70")


Je n'ai pas trouvé comment utiliser ce trait de côte avec le package ggplot. Ensuite, pour réaliser des graphiques selon un facteur à l'image des facets de ggplot, je passe par des subset que je gère par des layouts.


Retourner vers « Questions en cours »

Qui est en ligne

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