ctc_poc2026/target_table_skills/tm_cluster_area_m.md

2.3 KiB
Raw Blame History

Skill: tm_cluster_area_m 聚类区域月表计算指导 (融合聚类版)

1. 实现目标

基于栅格级指标,通过空间聚类识别弱覆盖连片区域,并融合 OTT 规模指标与 MR 质量指标。

2. 计算拓扑 (Topology)

  • 计算执行环境PostGIS (PG)
  • 基本架构:采用“锚点聚类 + 空间回填”的两步走策略。
  • 详细流程
    1. Step A (锚点聚类):筛选 tm_grid_coverage_mindoor_flag = -1 (OTT) 的弱覆盖栅格,执行 ST_ClusterWithinWin
    2. Step B (几何生成):计算每个 Cluster 的外接矩形 (Envelope) 或凸包 (ConvexHull) 作为区域边界。
    3. Step C (空间回填):将生成的区域边界与 MR 侧栅格 (indoor_flag ∈ {0, 1}) 进行空间交集关联 (ST_Intersects)。
    4. Step D (指标聚合):在区域范围内聚合 OTT 用户数与 MR 质差采样点指标。

3. 字段映射矩阵 (The Matrix)

目标字段 类型 取值逻辑 备注
year_month VARCHAR 原始字段 -
cluster_id BIGINT ST_ClusterWithinWin(geom_3857, 30) 基于 OTT 栅格生成
data_type INTEGER 对应 OTT 数据源标识 不产出 MR 独立聚类行
grid_count INTEGER COUNT(*) 仅统计锚点栅格数
total_user_count BIGINT 基于锚点栅格 approx_count_distinct 聚合 规模指标来自 OTT
overlap_mrcount BIGINT 空间关联聚合SUM(mr.overlap_mrcount) 质量指标来自 MR 回填
avg_rsrp DECIMAL SUM(totalrsrp) / SUM(rsrpcount) 融合全源采样点计算
area_wkt TEXT ST_AsText(区域几何) EPSG:4326

4. 关键计算原语 (Primitives)

  • 空间回填关联
    SELECT cluster.*, SUM(mr.overlap_mrcount) 
    FROM tmp_clusters cluster
    LEFT JOIN dmk.tm_grid_coverage_m mr 
      ON ST_Intersects(cluster.geom, mr.grid_geom) 
     AND mr.indoor_flag IN (0, 1)
    GROUP BY ...
    
  • 规模过滤HAVING COUNT(锚点栅格) > 3

5. 存储与优化规范

  • 最终结果存入 PG tm_cluster_area_m
  • 注意:目标表结构中不包含 indoor_flag,该维度仅在中间聚类过程中作为隔离手段(若需要)。
  • 必须对生成的 area_geom 建立 GIST 空间索引。