理解R中的空间对象

时间:2013-11-10 06:37:37

标签: r google-maps geospatial

我正在尝试使用R在Google地图上找到一种简单的方法来绘制点(给定纬度和经度)。我一直关注http://diggdata.in/post/51396519384/plotting-geo-spatial-data-on-google-maps-in-r ...更具体地说,第二种方法已经在那里解释过,使用“meuse”数据集。

但是,我无法理解代码。究竟是什么 -

coordinates(meuse)<-~x+y # convert to SPDF
proj4string(meuse) <- CRS('+init=epsg:28992')

办?

我检查了http://rwiki.sciviews.org/doku.php?id=tips:spatial-data:change_crs,但它也没有发光。

1 个答案:

答案 0 :(得分:2)

这是怎么回事:

library(sp)
data(meuse)
str(meuse)

> str(meuse)
'data.frame':   155 obs. of  14 variables:
 $ x      : num  181072 181025 181165 181298 181307 ...
 $ y      : num  333611 333558 333537 333484 333330 ...
 $ cadmium: num  11.7 8.6 6.5 2.6 2.8 3 3.2 2.8 2.4 1.6 ...
 $ copper : num  85 81 68 81 48 61 31 29 37 24 ...

meuse是一个data.frame。

当您运行此行时

coordinates(meuse)<-~x+y

它使用x和y变量(列)构造一个SpatialPolygonsDataFrame对象,该对象具有坐标(来自你的x和y)以及各种金属和陆地特征的属性。

将曲面(我们生活在一个大球上)投射到一个平面上并非易事,因此需要进行一些计算才能实现这一目标。这是你告诉R你的数据是什么投影的地方,因此就行了

proj4string(meuse) <- CRS('+init=epsg:28992')