【问题标题】:Plotting map points in R在 R 中绘制地图点
【发布时间】:2017-02-28 15:35:09
【问题描述】:

我已使用 maptools 成功将 NYC PUMA 区域的 shapefile 加载到 R 中,我想在其上绘制 55 个点,我在另一个文件中如下所示:

X   Y   pumace10    events_2008 events_2009
-73.9092456917  40.8916125162   3701    2   0
-73.8617096298  40.8899373255   3702    0   0
-73.8010284966  40.8460832277   3703    1   1

但是,这些点不会绘制。

首先我这样做是为了绘制 shapefile:

plot(nycs)

它会绘制 shapefile

然后我尝试在顶部绘制点,但无论执行以下哪一项,它总是失败:

points(nyc_data$X,nnyc_data$Y,pch=20,col="red")

plot(nyc_data, pch=16, col='firebrick',add=TRUE)

plot(nyc_data$X,nyc_data$Y,pch=20,col="red")

(最后一个将数据绘制在一个只是 X-Y 散点图而不是覆盖在 shapefile 上的新图上)

任何想法如何做到这一点?

编辑,添加文件(希望修改为工作文件!):

形状文件信息:https://www.sendspace.com/file/wbqrpb 积分档案:https://www.sendspace.com/file/9yrrbu

【问题讨论】:

  • 上面添加的形状和点的文件。
  • ...和 ​​dbf/prj 文件。

标签: r plot gis maptools


【解决方案1】:

您是否可以发送您正在使用的文件?

我的猜测是你有两个问题之一:

1) “点”空间数据框或 NYC PUMA 文件都没有坐标参考系统。

2) 它们都有参考系统,但它们是不同的。

很可能,您的问题是这些点缺少参考系统。

编辑:

问题是这两个数据集的坐标不同,我不确定这些点的坐标系是什么。这是我的代码。问题是点的 CRS 显然既不是常规的纬度/经度,也不是 shapefile 中使用的投影。如果您有更多关于数据点来源的信息,也许我们可以看到它们使用的投影。

library(sp)
library(maptools)
library(rgdal)
library(rgeos)

Points=read.csv("nyc_data_sample.csv",stringsAsFactors=F)
shapefile=readOGR("shapefiles","nyu_2451_34512")



Points_Shape = SpatialPoints(Points[,c("X","Y")],proj4string=CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"))
#Points_Shape = SpatialPoints(Points[,c("X","Y")],proj4string=CRS(proj4string(shapefile)))

Points_Shape = SpatialPointsDataFrame(Points_Shape,Points)

【讨论】:

  • 我以为我已经这样做了,但现在你让我怀疑了......我已经上传了上面的形状和点文件^
  • 您的 shapefile 是否有 .prj 、 .dbf 文件等?此外,您的 .shp 也不起作用。
  • 是的 - 它们现在也已附加。
  • 如果您阅读了我的评论的第二部分,则不会。你的 .shp 不起作用。它不会在 R 或 Qgis 中打开
  • 它对我都有效,在 R 中我通过 nycs=readShapePoly("/home/nyc/02_project/data/acs/shapefiles/nyu_2451_34512.shp",proj4string=crswgs84,verbose=真的)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
  • 2017-09-14
  • 1970-01-01
  • 2014-09-03
  • 2012-04-19
  • 2015-04-27
相关资源
最近更新 更多