0

有没有办法找出 a 中连续空间线的数量SpatialLinesDataFrame

EG 这将是2(外部的和内部的):

小阿尔法

这将是1

大阿尔法

(另外,有没有办法得到每个人的总长度?)

4

1 回答 1

1

您可以使用length(sln)(其中 'sln' 是您的SpatialLinesDataFrame)来获取要素的数量(例如,线)并 gLength(sln, byid = TRUE)rgeos获取单线长度。

## sample data
library(trajectories)
data(storms)

sln <- as(storms, "SpatialLinesDataFrame")

## number of features
length(sln)
# [1] 4

## length of each feature (throws warning since 'sln' is not projected)
rgeos::gLength(sln, byid = TRUE)
# 2012_TONY-ALBERTO  2011_SEAN-ARLENE   2010_TOMAS-ALEX      2009_IDA-ONE 
#      831.0649          705.1888          804.7706          355.7562 

但请注意,length在处理多行特征时不会自动返回行数。例如,如果您执行以下操作,

plot(sln[1, ])

阴谋

您会看到我们的 4 线的第一个特征SpatialLinesDataFrame是由多个子线组成的非连续空间线。要从不连续的线要素中获取子线的数量,您需要执行以下操作。

length(sln[1, ]@lines[[1]]@Lines)
# [1] 19
于 2016-03-15T10:27:33.133 回答