如何详细解析网络分析的第十一章步骤?

摘要:layout: default title: "第十一章:网络分析步骤详解" 第十一章:网络分析步骤详解 网络分析步骤(network.*)提供基于图论的路网分析和地理编码功能,共 3 个
第十一章:网络分析步骤详解 网络分析步骤(network.*)提供基于图论的路网分析和地理编码功能,共 3 个步骤,需要安装 [network] 可选依赖(networkx、geopy)。 11.1 安装依赖 pip install -e ".[network]" 11.2 步骤总览 步骤 ID 名称 功能 依赖 network.shortest_path 最短路径 计算两点间最短路径 networkx network.service_area 服务区分析 计算可达服务区 networkx network.geocode 地理编码 地址列表→坐标点 geopy 11.3 network.shortest_path:最短路径 在线矢量网络(道路、管线等)中计算两点之间的最短路径,使用 networkx 构建图论模型。 参数 参数 类型 必填 默认值 说明 input geodataframe ✅ — 输入线矢量网络(道路、管线等) origin list ✅ — 起点坐标 [x, y] destination list ✅ — 终点坐标 [x, y] weight string ❌ — 权重字段名(如 "travel_time", "length");不指定则使用几何长度 输出 属性 类型 说明 output GeoDataFrame 最短路径线(LineString),含 path_cost、node_count 属性 stats.path_cost float 路径总代价(权重之和或几何长度) stats.node_count int 路径经过的节点数量 stats.path_length float 路径几何长度 实现原理 将线矢量网络的每条线段端点作为图节点,线段作为边 边权重默认为几何长度,也可使用指定属性字段 找到最近的图节点作为起终点 使用 networkx.shortest_path(Dijkstra 算法)计算最短路径 将路径节点序列构建为 LineString 示例 pipeline: name: "最短路径分析" steps: - id: load-network use: io.read_vector params: { path: "data/road_network.shp" } - id: reproject use: vector.reproject params: input: "$load-network" target_crs: "EPSG:3857" - id: find-path use: network.shortest_path params: input: "$reproject" origin: [12952000, 4835000] # EPSG:3857 坐标 destination: [12960000, 4840000] weight: "travel_time" # 按行驶时间最短 on_error: fail - id: save-path use: io.write_vector params: input: "$find-path" path: "output/shortest_path.geojson" format: "GeoJSON" outputs: path_cost: "$find-path.path_cost" path_length: "$find-path.path_length" 注意:若起终点之间没有连通路径,步骤会抛出 ValueError: No path found。建议配合 on_error: fail 快速发现网络连通性问题。 11.4 network.service_area:服务区分析 从指定起点出发,计算在给定代价限制内能到达的所有节点,并构建服务区多边形(等时圈或等距圈)。
阅读全文