【问题标题】:IDs length in map2SpatialPolygonsmap2SpatialPolygons 中的 ID 长度
【发布时间】:2015-05-13 23:56:49
【问题描述】:

我知道这个函数可以在另一种情况下工作,但它在这段代码中不起作用。

所以这里有一个 dbf 文件和一个 shapefile(county),我想将 dbf 文件链接到 shapefile(就像加入 ArcGIS 一样)。这就是county.countypf 具有与data.countyfp 相同的一组值。这一步是通过map2SpatialPolygons函数将一个字段(COUNTYFP)设置为主键。

这是我的代码。

county <- readShapeSpatial("county")
data<- read.dbf("data",as.is = FALSE)`

map.county <- map("county", plot = FALSE, fill = TRUE, res=0)
map.IDs <- sapply(county$COUNTYFP, function(x) x[1])
tail(map.IDs)

county <- map2SpatialPolygons(map.county, 
                              IDs = map.IDs,
                              proj4string = CRS("+proj=longlat +datum=WGS84"))

我将填充设置为 T 以便它可以返回多边形,但 ID 和地图的长度也不相同。 错误显示

“map2SpatialPolygons 中的错误(map.county, IDs = map.IDs, proj4string = CRS("+proj=longlat +datum=WGS84")) : map 和 IDs 的长度不同”

【问题讨论】:

  • 给出一个示例数据并写出你遇到的确切问题

标签: r dictionary geospatial


【解决方案1】:

正如它所说,“地图和 ID 的长度不同”。 IDs 应该与“map.county”相关,您首先希望将其转换为“SpatialPolygons”。在执行map("county", ...) 时,这并不是指最初创建的变量“county”,而是指 ma​​ps 包附带的 USA 数据库(参见?map 进一步阅读)。我不确切知道“县”中存储了什么,但如果我不得不猜测,我会说它的长度与“map.county”不同。因此,您的代码应该例如如下所示。

## required packages
library(maps)
library(maptools)

## geographical map of us counties
map.county <- map("county", plot = FALSE, fill = TRUE, res = 0)

## convert 'map' to 'SpatialPolygons'
county <- map2SpatialPolygons(map.county, 
                              IDs = map.county$names,
                              proj4string = CRS("+proj=longlat +datum=WGS84"))

【讨论】:

    猜你喜欢
    • 2021-10-12
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多