R 如何在PBSmapping包中对多边形集数据进行子集?

R 如何在PBSmapping包中对多边形集数据进行子集?,r,R,这是gis.stackexchange的转载。问题是,所以我不再重复了。简单的问题是,我无法找到一种方法来对PBSmapping包中使用的PolySet数据进行子集设置。一种选择是使用maptools转换为空间多边形,将其子集,然后转换回多边形集,但显然这只是一种解决方法。非常感谢您的帮助。您正在寻找attr: df[attr(df, "PolyData")$NAME_1 == 'Bumthang',] 编辑: 这样行吗 参数col表示颜色,并链接到PID值 df$Z='white' df[a

这是gis.stackexchange的转载。问题是,所以我不再重复了。简单的问题是,我无法找到一种方法来对PBSmapping包中使用的PolySet数据进行子集设置。一种选择是使用maptools转换为空间多边形,将其子集,然后转换回多边形集,但显然这只是一种解决方法。非常感谢您的帮助。

您正在寻找attr:

df[attr(df, "PolyData")$NAME_1 == 'Bumthang',]
编辑:

这样行吗

参数col表示颜色,并链接到PID值

df$Z='white'
df[attr(df, "PolyData")$NAME_1 == 'Bumthang',]$Z ="red"

plotPolys(df,col=df$Z)
您还可以使用提供边框颜色的arg边框。 如果您将其置为白色,则显示的唯一区域将是Bumthang

类似这样的方法会奏效:

df$W = 'white'
#borders of the region
df[attr(df, "PolyData")$NAME_1 == 'Bumthang',]$W ="red"
plotPolys(df,col=df$Z,border=df$W)

您正在寻找attr:

df[attr(df, "PolyData")$NAME_1 == 'Bumthang',]
编辑:

这样行吗

参数col表示颜色,并链接到PID值

df$Z='white'
df[attr(df, "PolyData")$NAME_1 == 'Bumthang',]$Z ="red"

plotPolys(df,col=df$Z)
您还可以使用提供边框颜色的arg边框。 如果您将其置为白色,则显示的唯一区域将是Bumthang

类似这样的方法会奏效:

df$W = 'white'
#borders of the region
df[attr(df, "PolyData")$NAME_1 == 'Bumthang',]$W ="red"
plotPolys(df,col=df$Z,border=df$W)

使用另一个库来子集文件怎么样?您可以使用rgdal对数据进行子集,保存到文件,导入包含子集的shapefile,并使用PBSMapping对其进行打印

library(rgdal)
library(PBSmapping)

df <-  readOGR(".","df")
subset <- df[df$NAME_1=="Bumthang",]
writeOGR(subset, ".", "bumthang", driver="ESRI Shapefile")
bum = importShapefile("bumthang.shp")
plotPolys(bum, projection=TRUE)

使用另一个库来子集文件怎么样?您可以使用rgdal对数据进行子集,保存到文件,导入包含子集的shapefile,并使用PBSMapping对其进行打印

library(rgdal)
library(PBSmapping)

df <-  readOGR(".","df")
subset <- df[df$NAME_1=="Bumthang",]
writeOGR(subset, ".", "bumthang", driver="ESRI Shapefile")
bum = importShapefile("bumthang.shp")
plotPolys(bum, projection=TRUE)

对不起,这不起作用。但我不明白为什么。运行attrdf,PolyData$NAME_1确实会给我NAME_1的值列表,包括'Bumthang'!你到底想达到什么目的?我不太清楚;它在地图上吗?你能举个例子吗?或者举个小例子?多边形集数据有许多子区域。因此,如果您使用plotPolysdf,它将绘制整个地图以及所有子区域。我想将一个特定的子区域进行子集划分,然后绘制它:plotpolysubúdf或plotLinessubúdf。我对此很好奇@user702432您找到其他解决方案了吗?没有!我自己也很惊讶。我正在使用的一种解决方法是maptools库中的PolySet2SpatialPolygons函数,然后对空间多边形数据进行子集化。但是我的系统被大数据集的00+mbs阻塞了。但是谢谢你的提示,安德烈。我的邮箱里一定没找到这个。我把它标记为解决方案。非常感谢。很抱歉,这不起作用。但我不明白为什么。运行attrdf,PolyData$NAME_1确实会给我NAME_1的值列表,包括'Bumthang'!你到底想达到什么目的?我不太清楚;它在地图上吗?你能举个例子吗?或者举个小例子?多边形集数据有许多子区域。因此,如果您使用plotPolysdf,它将绘制整个地图以及所有子区域。我想将一个特定的子区域进行子集划分,然后绘制它:plotpolysubúdf或plotLinessubúdf。我对此很好奇@user702432您找到其他解决方案了吗?没有!我自己也很惊讶。我正在使用的一种解决方法是maptools库中的PolySet2SpatialPolygons函数,然后对空间多边形数据进行子集化。但是我的系统被大数据集的00+mbs阻塞了。但是谢谢你的提示,安德烈。我的邮箱里一定没找到这个。我把它标记为解决方案。非常感谢。