gpt4 book ai didi

r - 将 "map"对象转换为 "SpatialPolygon"对象

转载 作者:行者123 更新时间:2023-12-03 20:18:09 25 4
gpt4 key购买 nike

我猜我遇到的问题有一个简单的解决方案,但我遇到了一些麻烦。

我正在尝试转换以下 map目的:

require(maps)
usa <- map("state")

SpatialPolygon对象使用 map2SpatialPolygons功能:
require(maptools)
usa.sp <- map2SpatialPolygons(usa, IDs=usa$names,proj4string=CRS("+proj=longlat"))

我不断收到以下错误:
Error in map2SpatialPolygons(usa, IDs = usa$names, proj4string = CRS("+proj=longlat")) : 
map and IDs differ in length

经过一些研究,看起来 ID 的长度为 63,而 map应用函数后,对象的长度为 169 .NAmat2xyList(cbind(map$x, map$y)) (为此我找不到来源)。

谁有想法?这是 usa的结构 map 对象:
> str(usa)
List of 4
$ x : num [1:1705] -88.4 -88.1 -88 -87.9 -87.8 ...
$ y : num [1:1705] 30.4 30.4 30.8 30.6 30.3 ...
$ range: num [1:4] -124.7 -67 25.1 49.4
$ names: chr [1:63] "alabama" "arizona" "arkansas" "california" ...
- attr(*, "class")= chr "map"

最佳答案

刚刚在“Applied Spatial Data Analysis with R”一文中找到了一些代码。它工作得很好!

require(maps)
usa <- map("state", fill = TRUE)

require(sp)
require(maptools)
IDs <- sapply(strsplit(usa$names, ":"), function(x) x[1])
usa <- map2SpatialPolygons(usa, IDs=IDs, proj4string=CRS("+proj=longlat +datum=WGS84"))

关于r - 将 "map"对象转换为 "SpatialPolygon"对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26062280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com