2017-07-14 1 views
0

Je tente de tracer plusieurs couches spatiales sur une carte. Je ne peux pas travailler pour obtenir mes points sur la carte américaine. J'utilise ggplot pour cartographier ces données spatiales. avoir des problèmes avec la commande add = TRUE pour ajouter des points (coords) sur la carte "midwst". Je suis capable de tracer les deux séparément mais je pourrais utiliser de l'aide pour obtenir des coordonnées sur la carte du milieu. J'ai l'impression de ne pas utiliser les bonnes commandes de paquet entre elles, mais je ne peux pas le dire.Tracer plusieurs couches dans R

setwd("D:") 

midwst <- readOGR(dsn="/ne_50m_states", layer="us") 
fsites = read.csv(file = "/WHAT Baseflow//final_sites.csv", header=T, 
sep=",") 

#Identify pts and Change projection 

coords <- SpatialPoints(fsites[,c("Longitude", "Latitude")]) 

projection(coords) <- CRS("+init=epsg:2163") 
spTransform(coords,CRS("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 
+towgs84=0,0,0")) 

#Extract States from US Map 
plot(midwst, axes = T) 
plot(coords, pch = 21, bg = "red", cex = .5, axes = T) 
+0

Il est possible de transformer votre a mal tourné et des points ne coûtent pas au bon endroit. Que dit 'bbox (coords)'? Si vous 'plot (coords)', puis ajoutez des axes pour la référence ('axis (1); axis (2)'), les chiffres semblent-ils bien? Les colonnes Longitude et Latitude de 'fsites' sont-elles vraiment dans EPSG: 2163? – Spacedman

+0

Qu'est-ce que 'ggplot' a à voir avec ça? Je ne vous vois pas l'utiliser ici. – Spacedman

+0

Vouliez-vous dire '' add = TRUE "' dans l'appel de la deuxième fonction de traçage? Vous dites 'add = TRUE' dans votre texte mais votre code a' axis = T' et pas de paramètre 'add'. Quelque chose ne va pas ... – Spacedman

Répondre

-1

Voici un exemple de tracer plusieurs couches en utilisant des méthodes de base de R

# Import "raster" package 
library(raster) 
# Get "Vietnam" from online database called GADM 
HN<-getData(name = "GADM",country="Vietnam",level=0) 

# Plotting HN map 
par(mar=rep(2,4)) 
plot(HN,border="black",axes=T) 

# Create some sample coordinates 

df<-data.frame(x=seq(105,106,by=0.5),y=seq(20,21,by=0.5)) 

library(sp) 
# Building a spatial point object 
coordinates(df)<-~x+y 

proj4string(df)<-CRS("+proj=longlat +datum=WGS84") 

# Overlaying the spatial point object on Vietnam map 
plot(df,add=T,col=2) 
+0

Oui, je l'ai fait^mais chaque fois que j'ajoute la commande add = T aux points, ils ne tracent pas. Lorsque je supprime add = T alors je suis capable de voir les points dans l'espace –

+1

Le problème est plus profond que cela, et est susceptible d'être un problème de transformation de coordonnées, en mettant un ensemble de données au mauvais endroit. Voir mon commentaire – Spacedman

+0

Si vous ne fournissez pas de jeu de données, je pense que c'est difficile pour moi. Pourquoi avez-vous cliqué sur le bouton "pas utile"? – Tuyen