专栏名称: 锐多宝
遥感技术教程、资讯与前沿论文
51好读  ›  专栏  ›  锐多宝

使用gdal筛选出均匀分布的点矢量(指定个数)

锐多宝  · 公众号  ·  · 2024-04-22 23:04

正文

unset unset 使用gdal均匀筛选点矢量 unset unset

作用:

通过计算各点之间的欧式距离,筛选出指定个数的、均匀分布在空间中的N个数据点。

效果示意图

运行环境和设置

python 3.10

安装:tqdm、numpy和tqdm这三个库

通过设置n_samples来控制生成的点数量

完整代码

import numpy as np
from osgeo import ogr, osr
from tqdm import tqdm

# 代码作用:通过计算各点之间的欧式距离,筛选出符合目标的、均匀分布在空间中的N个数据点。

# 定义需要采样的个数
n_samples = 100
input_path = r"测试数据\村点.shp"
output_path = r"测试数据\samples.shp"

# 1. 读取原始点数据
driver = ogr.GetDriverByName('ESRI Shapefile')
inds = driver.Open(input_path, 0)
layer = inds.GetLayer()

# 2. 提取点坐标和属性
coords = []
attrs = []
for feature in layer:
    geom = feature.GetGeometryRef()
    coords.append((geom.GetX(), geom.GetY()))
    attrs.append([feature.GetField(i) for






请到「今天看啥」查看全文