You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:在R语言中基于SpatVector线要素生成随机点的方法

问题:在MULTILINESTRING路网几何上批量生成随机点(R语言)

问题背景

  • 拥有包含研究区完整路网的单一线几何SpatVector,需在该几何上生成指定数量的随机点,且需循环执行1000次,使用R语言实现。

尝试的操作及问题

1. 数据读取与转换

先读取线shapefile并转为SF对象:

Road_network <- vect("path/to/file.shp")
Road_network_SF <- st_as_sf(Road_network)

该SF对象的信息如下:

Road_network_SF
Simple feature collection with 1 feature and 2 fields
Geometry type: MULTILINESTRING
Dimension:     XY
Bounding box:  xmin: 4500176 ymin: 2504157 xmax: 4626207 ymax: 2616041
Projected CRS: ETRS89-extended / LAEA Europe

2. st_sample生成点的异常

执行st_sample生成随机点:

Random_points <- st_sample(Road_network_SF, size = 1799)

返回结果包含大量空几何:

Geometry set for 46350 features  (with 44694 geometries empty)
Geometry type: MULTIPOINT
Dimension:     XY
Bounding box:  xmin: 4503139 ymin: 2504751 xmax: 4622797 ymax: 2613276
Projected CRS: ETRS89-extended / LAEA Europe
First 5 geometries:
MULTIPOINT EMPTY
MULTIPOINT EMPTY
MULTIPOINT EMPTY
MULTIPOINT ((4503139 2574957))
MULTIPOINT EMPTY

3. st_line_sample执行报错

尝试st_line_sample时触发错误:

Random_points <- st_line_sample(Road_network_SF, n = 1799)

错误信息:

Error in st_line_sample(Road_network_SF, n = 1799) : 
inherits(x, "sfc_LINESTRING") non è TRUE

问题解决

后续更新:采用@Gregory提供的实现流程后效果符合预期,经排查问题根源在于原始路网shapefile本身存在异常,更换正常的路网文件后所有问题均得到解决。

内容的提问来源于stack exchange,提问作者Lore_Bernicchi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 06:45:36