1

单线: R 绘制 SpatialPolygonsDataFrame 的时间太长,我在网上找到的最佳答案是问题是特定于机器的。

问题:我正在尝试绘制从GADM下载的印度 SpatialPolygonsDataFrame(级别 = 1),但没有绘图函数(spplot、plot、tm_shape)在任何给定时间生成绘图;相反,R 似乎在后台工作,但 5 分钟后仍然没有情节。按下控制台上方出现的停止按钮没有任何作用,最终为了重试其他方法,我必须强制退出应用程序。我的问题与此问题类似,但对该问题的共识是该问题出现在机器特定的情况下,此后没有解决方案。

以下是有关我的机器/R Studio 版本的一些信息:R 版本 3.3.2 (2016-10-31) / R Studio 版本 1.0.136 / 操作系统:MacOS Sierra 版本 10.12.6。

文件下载自:RDS 格式的GADM

(1.) 我尝试了不同的绘图机制

setwd("~/Data/Reference/")
india <- readRDS("IND_adm1.rds")

library(sp)
library(tmap)

# Plot method #1 
plot(india)

# Plot method #2
spplot(india, "NAME_1")

# Plot method #3
tm_shape(india) + tm_borders()

(2.) 我尝试从 shapefile 而不是 RDS 重新创建 SpatialPolygonsDataFrame

india <- readOGR(dsn = "~/Data/Reference/" , layer = "IND_adm1")

(3.) 我已经更新了机器上的所有包,并卸载并重新安装了 sp 包和 tmap 包。

(4.) 我试过其他国家的文件,也有同样的问题。

(5.) 我检查了 SpatialPolygonsDataFrame 的结构,并没有发现任何问题——一切似乎都已到位且方式正确。

(6.) 使用 maps 包来绘制他们的数据工作正常。由于某种原因,SpatialPolygonsDataFrame 类没有绘制。我现在还尝试从DIVA-GIS绘制形状文件。

library(maps)
tx <- map("county", "texas", plot = FALSE, fill = TRUE)
plot(tx) # this plots fine and immediately

要求我基本上需要一张印度的州边界图,我可以将其放入闪亮的交互式 RMarkdown 报告中,并根据因子变量填充州颜色。我可以使用的数据有一些解决方法吗?

问:我不确定该怎么做或如何进一步诊断。如果有帮助,我将不胜感激,并乐于提供更多信息。我还链接了我正在使用的确切 RDS 文件,以便您在您的机器上加载和试用。

更新 建议的解决方案都不适用于我的系统,但我认为我遇到的这个挑战是特定于系统的。我最终尝试在 Amazon Web 服务上的远程 Windows 实例上运行相同的代码,并且代码运行良好。所以我不确定这是 Mac 问题还是硬件问题,但我希望此更新对您有所帮助。

4

1 回答 1

0

我在我的 Mac 上遇到这个问题已经有一段时间了,在寻找解决方案时,在 R Bloggers 上找到了这个问题。该代码简化了 shapefile,使其能够更轻松地绘制:

library("shapefiles")

map = readOGR(dsn = "shp", layer = "shp")

for(i in 1:length(map@polygons)){
  for(j in 1:length(map@polygons[[i]]@Polygons)){
    temp <- as.data.frame(map@polygons[[i]]@Polygons[[j]]@coords)
    names(temp) <- c("x", "y")
    temp2 <- dp(temp, 0.01)
    map@polygons[[i]]@Polygons[[j]]@coords <- as.matrix(cbind(temp2$x, temp2$y))
  }
}

plot(map, col = "black")

http://www.r-bloggers.com/simplifying-polygon-shapefiles-in-r/)。

然而,虽然这有助于绘图过程,但由于其简化的形式,尝试对新 shapefile 执行 GIS 操作变得很麻烦。

值得从 GADM 以外的网站寻找国家 shapefile。例如,我从这个站点使用的所有 shapefile 都可以毫不费力地立即在我的 Mac 上绘制:http: //mapeastafrica.com/countries/east-africa-shapefiles/

于 2018-05-10T11:08:11.170 回答