统计分析
本节介绍用于分析地理数据集空间模式和分布的统计函数。这些函数帮助确定点聚类、计算代表性中心,并可视化分布特征。
有关缓冲区和交集等几何操作,请参阅 Geometric Operations。有关聚类算法,请参阅 Clustering。
概述
Turf.js 提供了多个统计分析函数,用于检查点数据集的空间特征:
统计分析模块架构
中心计算
centerMedian() 函数计算几何中位数 - 即最小化到数据集中所有其他点距离之和的点。
|| 函数 | 输入 | 输出 | 用途 | || --- | --- | --- | --- | || centerMedian | FeatureCollection<any> | Feature<Point> | 找到需要最少总移动距离的点 |
Center Median 实现
Center Median 算法流程
该函数使用 Weiszfeld 算法迭代查找空间 median:
- 使用
@turf/centroid从输入要素中提取质心 - 使用
@turf/distance计算距离 - 通过要素属性支持加权计算
- 迭代直到达到容差阈值(默认:0.001)
空间分布分析
nearestNeighborAnalysis() 函数通过分析最近邻之间的距离来确定点是聚类、分散还是随机分布。
函数接口
nearestNeighborAnalysis(
dataset: FeatureCollection<any>,
options?: {
studyArea?: Feature<Polygon>;
units?: Units & AreaUnits;
properties?: GeoJsonProperties;
}
): NearestNeighborStudyArea分析过程
最近邻分析过程
分析遵循以下步骤:
- 使用
@turf/centroid从输入要素中提取质心 - 使用
@turf/nearest-point查找最近邻 - 使用
@turf/distance计算观测平均距离 - 使用
@turf/area从研究区域确定人口密度 - 计算预期距离和 z-score 以进行统计推断
方向分布分析
standardDeviationalEllipse() 函数创建一个椭圆多边形,显示点的方向分布,包含大约一个标准差(70%)的数据集。
函数签名和依赖
Standard Deviational Ellipse 依赖
椭圆属性
返回的椭圆在其属性中包含统计元数据:
meanCenterCoordinates:分布的质心semiMajorAxis:长轴长度(标准差)semiMinorAxis:短轴长度(标准差)angle:旋转角度(度)numberOfFeatures:输入点计数percentageWithinEllipse:实际包含的百分比
实现流程
Standard Deviational Ellipse 算法
统计分析数据流
统计分析模块与核心 Turf.js 基础设施集成并共享通用依赖模式:
统计分析模块依赖
所有统计分析函数遵循一致的模式:
- 通过标准化接口接受
FeatureCollection输入 - 使用
@turf/helpers进行 GeoJSON 创建和单位转换 - 利用
@turf/meta进行坐标迭代和遍历 - 返回具有统计元数据的标准化 GeoJSON 输出
- 通过要素属性支持可选加权