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