R:以特定顺序将shapefile ID保存为向量
样本数据R:以特定顺序将shapefile ID保存为向量,r,raster,shapefile,rgdal,R,Raster,Shapefile,Rgdal,样本数据 library(raster) dat <- getData('GADM', country='FRA', level=1) plot(dat) text(dat, labels=as.character(dat$ID_1), col="darkred", font=2, offset=0.5, adj=c(0,2)) 但我仍然无法导出输出或在南北方向排列质心 要保存为矢量,一种简单的方法是获取每个多边形的最小纬度,并根据该纬度
library(raster)
dat <- getData('GADM', country='FRA', level=1)
plot(dat)
text(dat, labels=as.character(dat$ID_1), col="darkred", font=2, offset=0.5, adj=c(0,2))
但我仍然无法导出输出或在南北方向排列质心
要保存为矢量,一种简单的方法是获取每个多边形的最小纬度,并根据该纬度对ID进行排序:
# data
library(raster)
dat <- getData('GADM', country='FRA', level=1)
# create south to north index
sn_index <- unlist(lapply(dat@polygons, function(x) min(x@Polygons[[1]]@coords[,2])))
#sort IDs
dat$ID_1[order(sn_index)]
# [1] 10 13 21 16 22 3 2 14 20 6 18 8 11 7 1 9 15 4 5 19 12 17
#数据
图书馆(光栅)
dat那dat$ID_1[顺序(坐标(dat)[,2])]呢。这很简单。谢谢,这与Michael在评论中使用的dat$ID_1[顺序(坐标(dat)[,2])]给出的顺序稍有不同。
我想知道这两种方法之间的差异是什么?Michael使用质心。。。我的方法使用多边形的最小纬度。我想这两种方法都适合我的需要。非常感谢。
library(rgeos)
trueCentroids = gCentroid(dat,byid=TRUE)
plot(dat)
points(coordinates(dat),pch=1)
# data
library(raster)
dat <- getData('GADM', country='FRA', level=1)
# create south to north index
sn_index <- unlist(lapply(dat@polygons, function(x) min(x@Polygons[[1]]@coords[,2])))
#sort IDs
dat$ID_1[order(sn_index)]
# [1] 10 13 21 16 22 3 2 14 20 6 18 8 11 7 1 9 15 4 5 19 12 17