mcpField
C
carto-routing-od-analysis

carto-routing-od-analysis

github.com/cartodb数据与数据库652 次安装1 周前更新
代码仓库

关于 carto-routing-od-analysis

面向 CARTO 空间分析工作流的技能,介绍路线、出行时间矩阵、等时圈和基于 H3 的 OD 流量分析。它区分适用于临时查询的 MCP 工具与适用于表级重复处理的工作流。

主要功能

  1. 01计算驾车或步行路线
  2. 02生成等时圈与等距圈
  3. 03构建出发地—目的地矩阵
  4. 04基于 H3 聚合 OD 流量
  5. 05提供工作流处理模式

适用场景

  1. 01比较地点的出行可达范围
  2. 02按出行时间寻找最近设施
  3. 03评估目的地可达性
  4. 04汇总并可视化通勤流向

MCP 相关

CARTO MCP 服务提供 `route`、`calculate_isolines` 和 `calculate_od_matrix` 等临时分析工具,并可用于创建、验证和运行工作流。API token 会话不开放临时分析和创作工具,可改用 CLI 或 OAuth 会话。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cartodb/agent-skills --skill carto-routing-od-analysis

安装后在 Claude Code 中输入/carto-routing-od-analysis确认已加载。

详细介绍

路径规划与起讫点分析

计算路径、行程时间/距离矩阵和等值线覆盖区域(驾车和步行模式),并通过空间索引分析 OD 流动模式。根据规模,可选择两种访问方式:

  • 单次/临时(MCP 优先):对于单条路径、某个地点的等值线或较小的 OD 矩阵,CARTO MCP 工具 route、calculate_isolines 和 calculate_od_matrix 可直接处理(每个工具也都有 capabilities 操作,用于列出支持的模式/范围类型)。无需工作流。这些工具可在任何 MCP 宿主上运行,包括无法使用 CLI 的沙盒聊天宿主。交互式请求优先使用这些工具。
  • 表级规模/可重复执行:若需对整张表进行计算或构建可复用的管道,请使用下方的工作流模式。加载 carto-create-workflow,了解开发流程、JSON 结构和验证方式——它涵盖两种路径(连接后使用 MCP create_workflow/validate_workflow/run_workflow;否则使用 carto workflows CLI;路由指引见 carto-basics/references/access-paths.md)。

在 API 令牌 MCP 会话中,临时处理/创作工具会被隐藏(仅可读取/发现)——请改用 CLI,或通过 OAuth 重新连接。


说明

主要有三种工作流模式。请根据使用场景选择:

模式组件适用场景
等值线/等时圈native.isolines需要计算地点周边的覆盖区多边形(例如“10 分钟内可到达的所有地点”)
OD 矩阵native.routesodmatrix需要计算每个起讫点对之间的行程时间/距离(分析用途,不包含几何图形)
路径创建native.routes需要生成 OD 点对之间的实际路径线几何(可视化、详细路径)

模式 A:生成等值线/等时圈

管道:

Source Points -> (Filter) -> Isolines -> (Polyfill / Enrich) -> Save
步骤 A1:加载源点

使用 native.gettablebyname 加载地点(商店、车站、设施)。

成功:表中包含几何列和唯一地点标识符。

步骤 A2:生成等值线

使用 native.isolines 并设置:

输入说明示例
mode出行模式car 或 walk
range_type范围的度量类型time 或 distance
range阈值时间用秒表示(例如 600 = 10 分钟),距离用米表示(例如 5000 = 5 公里)

成功:每个输入点都有一个关联的多边形几何,表示可到达区域。

步骤 A3:后处理(可选)

生成等值线后的常见后续操作:

  • 填充六边形网格 + 丰富数据:使用 native.h3polyfill 将等值线多边形转换为 H3,然后补充人口统计或 POI 数据(参见商圈分析技能)。
  • 重叠分析:使用 native.spatialjoin 查找相互重叠的等值线,识别由多个地点覆盖的区域。
  • 覆盖区合并:使用 native.dissolve 将所有等值线多边形合并为单个覆盖范围。
步骤 A4:保存

使用 native.saveastable 持久化等值线多边形或丰富后的结果,然后验证并上传工作流(使用 MCP create_workflow/validate_workflow,或运行 carto workflows create)。


模式 B:OD 矩阵(行程时间/距离)

管道:

Origins Table -> ┐
                 ├-> OD Matrix -> (Filter/Aggregate) -> Save
Destinations Table -> ┘
步骤 B1:加载起点和终点

使用两个 native.gettablebyname 节点——一个用于起点,一个用于终点。两者都需要几何列。

成功:得到两张表,每张表都包含点几何和唯一标识符。

步骤 B2:计算 OD 矩阵

使用 native.routesodmatrix 并设置:

输入说明
modecar 或 walk
起点输入连接至起点表节点
终点输入连接至终点表节点

输出列:origin_id、destination_id、duration_s、distance_m。

成功:每个起讫点对对应一行,包含行程时间和距离。

步骤 B3:筛选或聚合(可选)

常见的后处理:

  • 最近目的地:使用 native.groupby 查找每个起点对应的最小 duration_s,然后连接回去以获取最近的目的地。
  • 阈值筛选:使用 native.where 仅保留在时间/距离限制范围内的配对(例如,30 分钟阈值可使用 duration_s < 1800)。
  • 可达性评分:使用 native.groupby 统计每个起点在阈值范围内可到达的目的地数量。
步骤 B4:保存

使用 native.saveastable,然后验证并上传(MCP create_workflow 或 carto workflows create)。


模式 C:路线几何

管道:

Origins Table -> ┐
                 ├-> Routes -> Save
Destinations Table -> ┘
步骤 C1:加载起点和目的地

与模式 B 相同——使用两个带点几何的 native.gettablebyname 节点。

步骤 C2:计算路线

使用 native.routes,参数如下:

输入说明
modecar 或 walk
起点输入连接到起点表节点
目的地输入连接到目的地表节点

输出:每个 OD 配对对应一条路线线几何(包含 duration_s、distance_m),可在地图上可视化。

步骤 C3:保存

使用 native.saveastable,然后验证并上传(MCP create_workflow 或 carto workflows create)。


模式 D:OD 流量分析(基于网格)

用于大规模分析行程/移动模式(例如出租车行程、骑行、通勤流量),无需调用路线规划 API。

管道:

Trip Data -> H3 (origin) + H3 (destination) -> Group By (origin_h3, dest_h3) -> Save
步骤 D1:加载行程数据

使用 native.gettablebyname。表中应包含起点和目的地的坐标(例如 pickup_lon/lat、dropoff_lon/lat)。

步骤 D2:将起点和目的地索引到 H3

使用 native.selectexpression 为起点和目的地点计算 H3 单元格:

  • 起点 H3:根据上车坐标生成
  • 目的地 H3:根据下车坐标生成

或者,如果数据具有单独的几何列,则分别使用 native.h3frompoint。

步骤 D3:聚合流量

使用 native.groupby 统计每个(origin_h3, destination_h3)配对的行程数量:

  • 分组依据:origin_h3, destination_h3
  • 聚合:origin_h3,count(每个 OD 配对的行程数量)

成功标志:每个唯一的 OD 单元格配对对应一行,并包含行程数量——可用于流量可视化。

步骤 D4:保存

使用 native.saveastable。


注意事项

  • 提供商的大小写规则与 SQL 方言。 此技能使用小写列名(origin_id、destination_id、duration_s、distance_m、origin_h3 等),符合 BigQuery / Databricks / Postgres / Redshift 的惯例。在 Snowflake 中,请使用大写列名(ORIGIN_ID、DURATION_S 等)。有关大小写规则和 SQL 方言对应关系,请参阅 carto-create-workflow/references/providers/<provider>.md。
  • 等时线和路径规划组件会消耗 LDS(Location Data Services)配额。批量操作前,请使用 LDS_QUOTA_INFO 检查可用配额。缓冲区(native.buffer)不消耗 LDS 配额,是简单圆形服务范围的免费替代方案。
  • OD 矩阵会按平方级增长:N 个起点 x M 个目的地 = N*M 行。请筛选或抽样输入数据,以控制矩阵规模。对于 1000 个起点 x 1000 个目的地,会得到 100 万行。
  • 步行模式的实际适用范围远小于驾车模式。超过 20-30 分钟的步行等时线,或范围超过几公里的 OD 矩阵,结果都可能不可靠或为空。
  • 路径几何数据可能很大。如果只需进行分析(仅需时间/距离),建议使用 OD 矩阵(模式 B)而非完整路径(模式 C),以减少数据量。
  • 一天中的时段会因交通拥堵影响驾车结果。如果组件支持,请指定 departure_time;否则结果将反映典型/平均状况。
  • 等时线多边形可能会相互重叠,尤其是位置彼此接近时。如果后续还要丰富数据,请将其填充到空间索引,并对单元格去重,以避免重复计数。
  • 对于 OD 流量可视化(模式 D),请使用 H3 单元格中心点,而非原始坐标,以获得更清晰的聚合和可视化效果。较粗的分辨率(例如 H3 res 7-8)比精细分辨率更能呈现有意义的流量模式。
  • LDS 路径规划组件需要启用了 LDS API 访问权限的连接。如果连接缺少此权限,验证可能会失败。

参考模板

资源描述
可扩展路径规划教程在 Workflows 中逐步进行可扩展路径规划
OD 模式教程分析起点-目的地模式(纽约市出租车示例)
路径规划模块(BQ)将路径规划模块与 BigQuery 的 Analytics Toolbox 配合使用
等时线生成模板通过 Workflow 模板生成等时圈
商圈等时线(BQ)适用于 BigQuery 的驾车/步行时间等时线商圈
商圈等时线(SF)适用于 Snowflake 的驾车/步行时间等时线商圈

常见变体

变体方法
服务区域覆盖范围等时圈(驾车,多种范围,例如 5/10/15 分钟)-> 求并集 -> 衡量覆盖的总人口
最近的设施OD 矩阵 -> 按起点分组 -> min(duration_s) -> 联接回去以获取最近的终点 ID
可达性评分OD 矩阵 -> 按阈值筛选 -> 统计每个起点的终点数量 -> 按可达数量评分
车队路线规划仓库与配送点之间的路线 -> 汇总每条路线的总距离/时间
通勤流分析行程数据 -> H3 起点 + H3 终点 -> 按 OD 对分组 -> 计数 -> 可视化主要流向
多模式对比运行两次等时圈(驾车 + 步行)-> 对比覆盖多边形 -> 找出依赖公共交通的区域

评论

支持 Markdown