Dessiner des carrés de 0.5°*0.5° sur carte

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

Arnaud PRUVOST
Messages : 29
Enregistré le : 18 Déc 2013, 08:48

Dessiner des carrés de 0.5°*0.5° sur carte

Messagepar Arnaud PRUVOST » 29 Jan 2014, 13:13

Bonjour,

Je souhaiterai dessiner des carrés de 0.5°*0.5° sur une carte (un peu comme des pixels).

Mes données sont les suivantes

Code : Tout sélectionner

> head(F1_column_R1)
   lon  lat     x
1 44.5 38.5  3600
2 45.0 38.5 10800
3 45.5 39.0  7200
4 46.0 39.0 10800
5 53.0 39.0 10800
6 53.5 39.0 18000

lon et lat représentant respectivement les longitudes et les latitudes et x représentant un temps de résidence en seconde.

En fait, chaque coordonnée représente une aire :
par exemple pour la première ligne les coordonnées sont lon=44.5 et lat=38.5 mais cela correspond à la surface suivante :
longitude de 44.5 à 45(exclu)
latitude de 38.5 à 39(exclu).

Je ne pense pas que ce soit possible sous geom_point. La carte utilisée jusqu'à présent provient de openmap. Peut etre faut-il que je télécharge une carte shp (si oui comment?) pour plus de facilité ?

Avez-vous une idée ?

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Messagepar Mickael Canouil » 29 Jan 2014, 13:21

Bonjour,

les fonctions geom_tile() et geom_raster() ne conviennent pas?
Mickaël
mickael.canouil.fr | rlille.fr

Arnaud PRUVOST
Messages : 29
Enregistré le : 18 Déc 2013, 08:48

Messagepar Arnaud PRUVOST » 29 Jan 2014, 13:34

En supposant que je ne me trompe pas dans le code,

Code : Tout sélectionner

p<-autoplot(map2,zoom=10) +
  geom_raster(data=F1_column_R1,aes(x=lon,y=lat,col=x),cex=1.2)+
scale_color_gradient(low=c("white","violet","darkblue","skyblue","yellow","orange"),high="red",guide=guide_colorbar(barwidth=1.5,barheight=9),space="Lab",name="t (s)", limits = c(0,1200000))+
xlab("Longitude") + ylab("Latitude")


J'obtiens ça (donc impossible à voir si le résultat est celui attendu).
Image

J'ai pas modifier hjust et vjust car ils sont par défaut à 0.5
Pourquoi l'échelle de couleur ne fonctionne plus dans ce cas là ?

EDIT : en faisant cela, je me suis aperçu qu'il fallait faire du kriging. Je vais créer un nouveau topic pour celà.

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

Messagepar Renaud Lancelot » 31 Jan 2014, 05:03

Il y a bcp de manières différentes d'obtenir le résultat selon le type (classe) d'objet manipulé. Par exemple:

Code : Tout sélectionner

## Utilisation d'objets de classe map
library(maps)
library(mapdata)
library(mapproj)
## exact et fill nécessaires pour la conversion ultérieure (2e graphe)
fr <- map(region = "France", data = "worldHires", exact = TRUE, fill = TRUE, col = NA)
class(fr)
## Etendue de la grille
rg <- c(-5, 8.5, 42, 51.5)
## Trace la grille
map.grid(lim = rg,
         nx = diff(rg[3:4]) / .5,
         ny = diff(rg[1:2]) / .5,
         labels = FALSE, lty = 1, col = "grey")

## Utilisation d'objets de classe SpatialPolygons
library(sp)
library(raster)
library(maptools)
## Convertit map en SpatialPolygons
FR <- map2SpatialPolygons(fr, IDs = "France", proj4string = CRS("+proj=longlat"))
class(FR)

## crée une grille à partir de l'étendue
e <- extent(rg)
r <- raster(e,
            ncols = diff(rg[3:4]) / .5,
            nrows = diff(rg[1:2]) / .5,
            crs = CRS("+proj=longlat"))
R <- as(r, "SpatialPolygons")

## Trace
plot(FR)
plot(R, add = TRUE, border = "grey")
Renaud


Retourner vers « Questions en cours »

Qui est en ligne

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

cron