Skip to content

统计分析

本节介绍用于分析地理数据集空间模式和分布的统计函数。这些函数帮助确定点聚类、计算代表性中心,并可视化分布特征。

有关缓冲区和交集等几何操作,请参阅 Geometric Operations。有关聚类算法,请参阅 Clustering

概述

Turf.js 提供了多个统计分析函数,用于检查点数据集的空间特征:

SVG
100%

统计分析模块架构

中心计算

centerMedian() 函数计算几何中位数 - 即最小化到数据集中所有其他点距离之和的点。

|| 函数 | 输入 | 输出 | 用途 | || --- | --- | --- | --- | || centerMedian | FeatureCollection<any> | Feature<Point> | 找到需要最少总移动距离的点 |

Center Median 实现

SVG
100%

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

分析过程

SVG
100%

最近邻分析过程

分析遵循以下步骤:

  1. 使用 @turf/centroid 从输入要素中提取质心
  2. 使用 @turf/nearest-point 查找最近邻
  3. 使用 @turf/distance 计算观测平均距离
  4. 使用 @turf/area 从研究区域确定人口密度
  5. 计算预期距离和 z-score 以进行统计推断

方向分布分析

standardDeviationalEllipse() 函数创建一个椭圆多边形,显示点的方向分布,包含大约一个标准差(70%)的数据集。

函数签名和依赖

SVG
100%

Standard Deviational Ellipse 依赖

椭圆属性

返回的椭圆在其属性中包含统计元数据:

  • meanCenterCoordinates:分布的质心
  • semiMajorAxis:长轴长度(标准差)
  • semiMinorAxis:短轴长度(标准差)
  • angle:旋转角度(度)
  • numberOfFeatures:输入点计数
  • percentageWithinEllipse:实际包含的百分比

实现流程

SVG
100%

Standard Deviational Ellipse 算法

统计分析数据流

统计分析模块与核心 Turf.js 基础设施集成并共享通用依赖模式:

SVG
100%

统计分析模块依赖

所有统计分析函数遵循一致的模式:

  • 通过标准化接口接受 FeatureCollection 输入
  • 使用 @turf/helpers 进行 GeoJSON 创建和单位转换
  • 利用 @turf/meta 进行坐标迭代和遍历
  • 返回具有统计元数据的标准化 GeoJSON 输出
  • 通过要素属性支持可选加权