Ajouter de l'information sur une carte (points, zoom) avec rgdal

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

Céline Barrier
Messages : 14
Enregistré le : 30 Mai 2018, 11:49

Ajouter de l'information sur une carte (points, zoom) avec rgdal

Messagepar Céline Barrier » 18 Aoû 2020, 14:59

Bonjour à tous,

Je débute dans la cartographie avec R et j'aimerais solliciter votre aide afin de compléter mon script.
Ce script a pour but de créer une carte type couranto (le package ncdf4 va lire dans mes fichiers netcdf).

Je suis dans le système wgs et ce que j'aimerais faire pour compléter mon script est de pouvoir ajouter des points en fonction de leurs coordonnées (latitude, longitude), dans ce même système et les visualiser sur ma carte de courants.

J'aimerais également pouvoir "zoomer" sur une fenêtre moins large, par exemple plus proche du trait de côte.
Voici le lien vers mon fichier en input pour reproduire le code > https://drive.google.com/file/d/15zx3ZQ ... sp=sharing

Ci-dessous, mon code qui produit un plot couranto, j'aimerais votre aide/vos conseils pour pouvoir ajouter des points en fonction de leurs coordonnées (importer un .csv éventuellement?) et pouvoir zoomer sur certaines parties de cette carte.

Les packages sont nombreux et pas tous utiles pour ce que je souhaite faire là, je ne les ai pas supprimés car ce code me sert également au traitement d'autres fichiers netcdf.



Code : Tout sélectionner


#repertoire
setwd("C:/Users/cebar/Desktop/sorties_CMS")
dir()

#packages
library(raster)
library(sp)
library(rgdal)
library(dplyr)
library(ggplot2)
library(devtools)
library(rJava)
library(ncdf4)
library(reshape2)
library(spatstat)
library(maptools)
library(RColorBrewer)
library(chron)
library(lattice)
library(rasterVis)
library(RColorBrewer)
library(ggthemes)
library(viridis)

#systeme de projection
wgs<-"+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"

#lecture du fichier couranto et extraction variables
ncin<-nc_open("nest_1_20170511030000.nc")
lat <- ncvar_get(ncin,"Latitude")
nlat <- dim(lat)
lon <- ncvar_get(ncin,"Longitude")
nlon <- dim(lon)
time <- ncvar_get(ncin,"Time")
tunits <- ncatt_get(ncin,"Time","units")
nt <- dim(time)
zv_array <- ncvar_get(ncin,"zv")
dlname <- ncatt_get(ncin,"zv","long_name")
dunits <- ncatt_get(ncin,"zv","units")
fillvalue <- ncatt_get(ncin,"zv","_FillValue")
dim(zv_array)

zu_array <- ncvar_get(ncin,"zu")

dlnameU <- ncatt_get(ncin,"zu","long_name")
dunitsU <- ncatt_get(ncin,"zu","units")
fillvalue <- ncatt_get(ncin,"zu","_FillValue")
dim(zu_array)

speed_array<-sqrt((zv_array^2)+(zu_array^2))#calcule de la vitesse = sqrt(uv^2+zv^2)
dim(speed_array)
speed_array[speed_array==fillvalue$value] <- NA
length(na.omit(as.vector(speed_array[,,1])))

zv_slice <- speed_array[,,1]
zv_slice<-raster(zv_slice)

uvel<-flip(t(zv_slice), direction='y')

plot(uvel)

#add extent information
extent(uvel)<-c(min(lon), max(lon), min(lat), max(lat))
crs(uvel)<-wgs


Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: Ajouter de l'information sur une carte (points, zoom) avec rgdal

Messagepar Serge Rapenne » 18 Aoû 2020, 15:36

Bonjour,

je te conseille d'aller voir du coté du package leaflet qui fait ça et plus encore : https://rstudio.github.io/leaflet/

Serge

Facundo Muñoz
Messages : 156
Enregistré le : 04 Juil 2019, 09:58
Contact :

Re: Ajouter de l'information sur une carte (points, zoom) avec rgdal

Messagepar Facundo Muñoz » 18 Aoû 2020, 15:46

Bonjour Céline,

voici un livre en ligne (en anglais) qui peut vous intéresser pour cette question et pour plein d'autres concernant le traitement de données géo-spatiales.

https://geocompr.robinlovelace.net/

Cordialement
ƒacu.-

Céline Barrier
Messages : 14
Enregistré le : 30 Mai 2018, 11:49

Re: Ajouter de l'information sur une carte (points, zoom) avec rgdal

Messagepar Céline Barrier » 20 Aoû 2020, 07:52

Bonjour à tous,
Merci pour ces références qui sont en effet bien utiles.
Néanmoins ce qu'on me propose de faire est d'importer une carte, dans un système de projection puis de placer des points ou autre dessus.

Là ce que j'aimerais faire c'est placer des points ou importer une couche de points sur la carte pour laquelle je viens de faire un plot, et c'est là que je coince un peu.
Merci pour vos retours,

Facundo Muñoz
Messages : 156
Enregistré le : 04 Juil 2019, 09:58
Contact :

Re: Ajouter de l'information sur une carte (points, zoom) avec rgdal

Messagepar Facundo Muñoz » 20 Aoû 2020, 08:41

Bonjour,

Je ne sais pas ce que c'est une "carte type couranto". Mais si le problème se réduit juste à représenter des points sur un raster, vous pouvez faire :

Code : Tout sélectionner

pts <- spsample(as(uvel, "SpatialGrid"), n = 10, "random")  # échantillonner 10 points aléatoirement dans la région

plot(uvel)
plot(pts, pch = 19, add = TRUE)
ƒacu.-


Retourner vers « Questions en cours »

Qui est en ligne

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