1

我已经使用 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")

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

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

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

形状文件信息:https ://www.sendspace.com/file/wbqrpb 点文件:https ://www.sendspace.com/file/9yrrbu

4

1 回答 1

0

无论如何,您可以发送您正在使用的文件吗?

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

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)
于 2017-02-28T17:19:33.030 回答