R:以特定顺序将shapefile ID保存为向量

问题描述 投票:1回答:1

样本数据

      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))

enter image description here

要保存各省的ID,我可以这样做

      province.id <- dat$ID_1

但是,我想根据某个方向(即南到北)安排这些ID

例如,我的province.id id应该从10开始(因为它是最南部的省份)一直到17,因为它是最北部省份我想的一种方式我可以生成每个省的中心并且基于质心,我可以确定哪个是最北到最北的位置。

      library(rgeos)
      trueCentroids = gCentroid(dat,byid=TRUE)
      plot(dat)
      points(coordinates(dat),pch=1)

enter image description here

但我仍然无法输出输出或在南北方向排列质心以保存为矢量

r raster shapefile rgdal
1个回答
1
投票

一种简单的方法是采用每个多边形的最小纬度,并根据以下内容对您的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
© www.soinside.com 2019 - 2024. All rights reserved.