news 2026/10/2 9:02:02

ArcGIS中OD图与放射状流向图制作全流程实操指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ArcGIS中OD图与放射状流向图制作全流程实操指南

做项目汇报需要展示城市之间的通勤流量,领导要求出一张“看起来专业、能讲清方向”的图。我第一反应就是OD图。所谓OD,就是Origin和Destination,起点到终点的一条有向连线。在ArcGIS里做OD图其实是很多规划、交通、物流类项目的基础操作,但网上教程要么只讲工具点击不讲数据逻辑,要么上来就让你写脚本,对新手不太友好。

这篇文章我按实际项目流程来写,从数据准备到出图,把每一步为什么要这么做讲清楚。适合刚接触ArcGIS矢量制图、需要完成课程作业或者项目汇报的读者。你不会写代码也能完全跟下来,用的都是ArcGIS自带工具,不需要额外装插件。

1. 做OD图之前,先搞明白数据长什么样

1.1 OD图的本质是什么

OD图粗暴点说就是“画线”,把每一对起终点用一条直线连起来。但这条线不是随便连的,它承载着两个关键信息:一个是起终点之间的空间关系,另一个是流量属性,也就是有多少人、多少货、多少订单在这条线上流动。

ArcGIS里做OD图最常用的是XY转线工具,在ArcToolbox里的路径是“数据管理工具-要素-XY转线”。这个工具的核心逻辑很简单:读取属性表里表示起点X、起点Y、终点X、终点Y的四个字段,生成一个线要素类。它的底层不涉及路网分析,就是纯粹的几何连线,两点之间拉一条直线。

如果你要的是沿实际道路的路径OD,那属于网络分析里的“OD成本矩阵”,另外还有一套流程,这篇文章先不展开。这里重点讲直线OD图,因为它适合展示宏观格局,比如城市群之间的经济联系强度、不同区域之间的客流交换量,视觉上干净利落。

1.2 准备OD数据的标准格式

要做图,第一步是数据。OD数据最常见的形式是一张二维表,每一行代表一条起终点记录。最核心的字段至少有四个坐标字段,再加一个权重字段,权重用来控制线的粗细。

字段名含义示例
O_X起点经度/横坐标113.26
O_Y起点纬度/纵坐标23.13
D_X终点经度/横坐标116.41
D_Y终点纬度/纵坐标39.90
FLOW流量/权重值2580

这四个坐标字段是XY转线工具能够出图的前提,缺一个都运行不了。权重字段不是必须的,但建议一定要有,否则做出来的图所有线一样粗,信息量损失一大半。

我见过很多朋友拿到Excel数据就开始在ArcGIS里找工具,结果发现XY转线根本拉不进去。原因很简单,工具要求输入的是要素类,不是表格。你需要先把Excel表格转成点要素,或者至少转成dBASE表或者地理数据库表,才能被ArcGIS识别。

2. 核心实操:用XY转线功能把OD表变成线

2.1 Excel数据导入ArcGIS的三种方法

导入数据是整个流程里最容易出问题的一步,我分开仔细说。

第一种,直接拖拽法。打开ArcMap或者ArcGIS Pro,把Excel文件直接拖到内容列表里。ArcGIS能识别xls和xlsx格式,但要求工作表结构规范,第一行是字段名,不能有合并单元格。如果Excel里有复杂的表头格式,建议先整理成一张干净的表再导入。

第二种,使用“表转要素”工具。如果OD表已经有起点的XY坐标,可以先单独把起点转成点要素,再把终点转成点要素,后面用“连接”工具把它们连起来。不过这个过程比较绕,一般不建议作为首选方案。

第三种,最推荐的方式,直接用ArcToolbox里的“添加XY坐标”或者通过“创建XY事件图层”把Excel点数据加载成临时点层。这里要注意一点:创建XY事件图层生成的是临时图层,默认不写入磁盘,做OD线之前最好用“数据导出”把它存成真正的Shapefile或者地理数据库要素类,否则关闭软件再打开就找不到了。

2.2 XY转线工具界面逐项解析

打开XY转线工具之后,界面参数看起来多,实际核心就三个部分:输入表、输出要素、字段映射。

输入表建议选择导入ArcGIS之后的表格要素,而不是原始的Excel路径。输出要素设置一个保存路径,文件名不要用中文,尽量用字母或下划线,这是ArcGIS的老传统了,虽然现在中文支持好了很多,但为了省事还是英文稳当。

字段映射部分是最关键的一步:

  • 起点X字段:选择表里起点经度那一列
  • 起点Y字段:选择表里起点纬度那一列
  • 终点X字段:选择表里终点经度那一列
  • 终点Y字段:选择表里终点纬度那一列

这四个字段选完之后,工具还会问你“线类型”用什么坐标系。这里一定要选投影坐标系,千万不要选地理坐标系。原因我下一节详细讲。

所有参数都填好后点确定,输出的线要素会直接加到图层里。这时候你已经成功了一半,屏幕上出现了一堆从起点指向终点的直线段。

2.3 为什么必须用投影坐标系,而不是经纬度

这是很多新手最容易踩的坑。直接用WGS84或者CGCS2000地理坐标系做出来的OD线,在全球尺度可能看不出问题,但一旦你的研究范围是市级、省级,线会明显偏斜,看起来方向不对。

原因是经纬度坐标系下的度不是等距单位,纬度越高,同样一度的经度对应实际距离越短。在两个不同纬度之间连直线,相当于在球面上画了一条“看起来是直线”的路径,但在平面图上展示时会被拉伸或扭曲。

要保证OD线的方向和距离在二维平面图上准确,必须把坐标转换到投影坐标系,比如常用的Albers等积投影、Gauss-Kruger投影、Web Mercator或者UTM。在实际项目中,我会根据研究区域选择坐标系。全国尺度用Albers,省级图幅常用Gauss-Kruger 3度带,市级范围直接用地方坐标或者Web Mercator都可以。

如果你还不确定用什么投影,一个简单原则:你的底图或者背景图层是什么坐标系,你的OD线就统一用什么坐标系。保持所有图层坐标系一致,这是ArcGIS制图的基本素养。

3. 放射状流向图的进阶改造

3.1 放射状图的两种典型场景

放射状流向图,本质上是以一个中心节点向外辐射的OD图。常见于分析某一座核心城市与周边城市之间的客流联系、一个港口与内陆腹地的货运关系、一个产业园区与外部供应商的空间联系。

和普通OD图相比,放射状图最大的特点是起点高度统一,通常只有一个或几个核心点。比如分析广州与珠三角城市之间的联系,起点始终是广州,终点是佛山、东莞、中山、珠海等。做出来之后,全图呈现出由一个中心向外散射的形态,所以叫放射状流向图。

放射状流向图的做法和普通OD图一模一样,工具还是那个XY转线,区别在于你给工具的输入表里,每一行的起点坐标都指向同一个点,而终点坐标各不相同。也就是说,在数据准备阶段,你需要在Excel里把起点城市的那四列坐标复制粘贴到每一行。

3.2 从OD表生成放射状流向数据的公式方法

这里分享一个非常实用的技巧。假设原始数据表里有一列是“起点城市编码”,另有一列已经通过VLOOKUP从城市坐标表里带出了每个城市的XY坐标。现在要做的是把起点城市的XY坐标赋给当前行的O_X和O_Y字段。

如果你用Excel,可以这样操作:先建一个“城市坐标对照表”,城市名加上它的XY坐标。然后在OD数据表里新增四个字段,直接用VLOOKUP公式匹配:

  • O_X = VLOOKUP(起点城市, 城市坐标表, 2, 0)
  • O_Y = VLOOKUP(起点城市, 城市坐标表, 3, 0)
  • D_X = VLOOKUP(终点城市, 城市坐标表, 2, 0)
  • D_Y = VLOOKUP(终点城市, 城市坐标表, 3, 0)

这个思路适用于任何规模的OD数据整理,比手工复制粘贴高效得多。如果OD表是长格式,也就是每一行只有一个城市对,那用VLOOKUP会非常顺手。如果数据是宽格式,先逆透视成长表再匹配。

3.3 用符号化打造层次感

数据转成线之后,默认都是一样的灰线,直接拿去汇报肯定不行。放射状流向图的视觉重点在于流量等级的表达,这里需要用到分级符号。

在图层属性里找到符号系统选项卡,选择“数量-分级符号”。这个功能按照某个数值字段,把图层里的要素分成几个等级,每个等级用不同的线宽表示。通常建议分5到7级,太多太细反而看不出规律,太少又损失信息。

分级方法我推荐用“自然间断点”。这个方法会自动寻找数据分布中的“断裂点”,让每一级内部的差异最小,级与级之间差异最大。对于大多数OD流量数据来说,自然间断点比等间距分级更符合直觉,不会出现极端大值把其他所有线都压扁的情况。

线宽的设置范围根据图幅大小定。A4幅面的图,线宽从0.4到4.0磅比较合适,太粗会糊成一团,太细打印出来根本看不见。如果导出的图分辨率是300dpi,还可以适当放大范围。

3.4 方向箭头怎么加,怎么调

OD图必须有方向信息,否则读者分不清是A到B还是B到A。在ArcGIS中给线加箭头,有几种做法。

第一种,最简单,在符号系统的线符号编辑器里,选择“制图线符号”类型,然后在线端点或中间位置添加箭头标记。具体路径:右键图层打开属性,进入符号系统,单击当前线符号打开符号选择器,选择“编辑符号”,切换成“制图线符号”,在“线属性”里可以设置箭头样式、尺寸、是否放在线的末端。

第二种,使用“箭头线”样式。有些符号库已经内置了带箭头的线型,但问题是方向可能控制不好。ArcGIS默认的箭头方向是按线的数字化方向来的,也就是从起始点指向终止点。如果你的OD线方向不对,检查一下是不是XY转线时起点终点字段填反了,这个在工具参数里一一对应就不会错。

第三种,如果追求专业效果,可以在布局视图里用“标记填充”做循环箭头符号,这个比较高级,适合做交通流专题图。但对大多数场景,前两种就足够了。

还需要强调一下箭头的视觉层级。当线数量很多时,箭头的尺寸要跟着线宽走,线越粗箭头越大,线细的用极小箭头甚至不标,否则细线上一颗大箭头非常突兀。设置分级符号的时候,每一级都要单独编辑箭头尺寸。

4. 影响出图效果的关键细节

4.1 底图选择与坐标系一致

OD图是叠加在底图上看的,底图提供了一个空间参照框架,让读者识别起终点在哪个位置。底图选择没有绝对标准,但有几个原则可以遵守。

使用在线底图时,比如天地图或者ArcGIS Online的影像底图,要注意坐标匹配。天地图默认是CGCS2000的地理坐标系或者Web Mercator投影,如果你的OD线是Albers投影,直接叠加会出现偏移。解决办法是先把OD线要素类的坐标系定义成底图的坐标系,用“投影”工具做一次坐标转换,再叠加显示。

如果不想折腾坐标系,一个取巧的办法是把OD线的坐标系直接定义成和底图一致的坐标系,然后用“投影”工具转换。ArcGIS会自动做动态投影,在正常缩放范围内视觉效果基本一致。

另一个原则是底图色彩不要太抢眼。放射状流向图的主角是那些线,底图尽量选择浅灰色行政边界、淡色水系、低饱和度的街区底色,把视觉焦点留给流向线。

4.2 透明度与压盖处理

当OD线数量很多、彼此交叉密集的时候,线之间会产生严重的压盖。这时候需要在符号系统里调透明度。

透明度设置路径:在符号系统里选中最顶层的线符号,右键打开属性,把“透明度”从0调到30到50之间。这样多条线相互叠加的部分会自然加深,单条线仍然清晰可辨。透明度配合分级线宽,能够有效解决“蜘蛛网”问题。

如果线条仍然压盖严重,还有一个思路是只用部分数据作图。先按流量从大到小排序,取前80%或者前60%的OD记录参与制图,保住核心骨架,舍弃噪声细节。很多专业专题图都不是全要素展示,而是有取舍地呈现。

4.3 标注起终点名称

OD图上没有地名标注,读者会看得很吃力。标注可以用ArcGIS的标注功能自动实现,具体做法是在OD线的属性表里建立“显示字段”,然后用Python等表达式拼接起点名称和终点名称。

举个例子,如果属性表里有“起点城市”和“终点城市”两个字段,标注表达式可以写成:

def labelText([起点城市], [终点城市]): return [起点城市] + " → " + [终点城市]

在ArcGIS的标注表达式编辑器里可以直接用Python字符串拼接。这个表达式需要修改成适合自己字段名的版本。设置完成后,在图层属性里开启标注,选择合适的字体大小和位置即可。

标注位置建议放在线段的中间点附近。如果所有标注都堆在起点和终点,图上会乱成一团。ArcGIS标注位置默认有几种策略,可以在标注管理器里调整,选择“在线的中部”附近放置。

5. 做OD图常见的坑与解决方案

5.1 坐标字段填反,线飞到了地球另一面

这个问题出现频率极高。Excel表里如果字段名不够清晰,比如只有CoordinateA、CoordinateB,没写清楚哪个是经度哪个是纬度,XY转线工具导出的数据可能全部跑到莫名其妙的位置。

解决办法是在导入前就把字段重命名成容易识别的名字,比如O_LON、O_LAT、D_LON、D_LAT。同时在XY转线界面里要明确,X字段对应经度或横坐标,Y字段对应纬度或纵坐标,这个对应关系不要搞反。

一个快速自检方法:生成线之后随手加载一个在线底图,看线是否落在预期区域。如果落在海洋或者别的国家,基本就是坐标填反。

5.2 投影坐标系选错,看起来线是歪的

这一点在2.3小节里说过,再补充一个常见场景。如果是全国范围数据,直接用WGS1984地理坐标系的经纬度连线,画出来的是球面大圆线,在平面展示时线条会呈弧形。很多做省际联系图的同学用这个方法,结果线全部弯了,看起来很不专业。

正确做法是使用Albers等积投影或者Lambert等角投影作为输出线要素的坐标系。高版本ArcGIS的XY转线工具在输出时会自动根据输入表的坐标系做转换,但如果输入表本身没定义坐标系,工具可能默认存成GCS_WGS_1984,这时候就需要手动指定输出坐标系。

5.3 OD表太大,工具运行卡死

几千条OD线对ArcGIS来说其实不算大,但如果数据到了几万条甚至几十万条,XY转线工具会变得很慢,代码层面的优化不在这次讨论范围内,但可以用下面的方法缓解。

先简化表,把不需要的字段删除,只保留坐标字段、权重字段和名称字段。然后通过定义查询或者属性选择,过滤掉流量过小的OD对。最后再跑工具,效率会明显提升。

还有一个容易忽略的点:输出路径不要放到C盘系统盘里,最好放在项目的数据库或者单独文件夹。ArcGIS在写入较大的矢量数据时需要消耗临时空间,C盘空间不足也会导致工具异常退出。

5.4 线的数字化方向与期望相反

做放射状图时,如果所有箭头都指向了中心点而不是从中心向外,说明起点和终点字段填反了。

这个问题的排查方式:在属性表里随机挑一条线,浏览它的起点坐标和终点坐标,跟原始Excel表对比。如果每行的起点都对应了中心节点,那肯定是起点坐标匹配错了。修正方式有两种,重新跑一次XY转线工具,或者在属性表里新增字段、用字段计算器交换四列坐标,再生成新线。

字段计算器交换坐标的表达式很简单,新建四个字段,把D_X赋给临时字段,再把O_X赋给D_X,最后把临时字段赋给O_X。四列坐标全部交换即可。这个方法适合已经处理了一半、不想重新整理表格的情况。

5.5 无法在ArcMap中直接编辑带箭头的线符号

我在ArcMap 10.x版本里踩过一个很实际的坑:普通线符号和制图线符号的箭头设置入口差异很大,高版本和低版本界面还不一样。

ArcMap 10.2或10.3,要进入符号系统,选择线符号,然后双击打开“符号选择器”,点击“编辑符号”,在“类型”下拉框里选“制图线符号”,这里才有箭头端点设置选项。如果你选的是标准线符号,就找不到箭头配置。

ArcGIS Pro的逻辑类似,但界面在“符号系统”面板的“图层”选项卡里,选择一个线符号后点击“属性”往下拉,找到“样式”里的端点选项卡,里面有箭头可选项。如果你用的是Pro 3.x,路径基本一致。

6. 我自己的出图流程参考

项目不同需求也不同,但有一个相对通用的出图顺序可以作为参考。

第一步,整理OD数据表。在Excel里把坐标字段补全,格式统一成数值类型,千万不能是文本格式,否则坐标读取会出现问题。

第二步,导入ArcGIS。把Excel拖入内容列表,右键打开属性表,确认字段类型。打开XY转线工具,按映射关系填写参数,选择投影坐标系作为输出坐标系。

第三步,结果检查。加载在线底图,目视判断线是否落位合理,方向是否正确。发现有异常线后回到原始表排查。

第四步,符号化。进入符号系统,选择“数量-分级符号”,设置自然间断点和5到7级线宽。再调整透明度到30到40左右。

第五步,添加方向箭头。在编辑符号面板里选择制图线符号,按分级设置对应的箭头大小。

第六步,添加标注。设置SQL查询,只标注核心节点名称,避免标签拥挤。

第七步,切换到布局视图,插入图例、比例尺、指北针、标题。导出图片时选择300dpi以上的分辨率。

这套流程从数据到成图,大概需要15到20分钟。熟练之后会快很多,主要时间都花在数据整理和符号调整上。

7. 实操过程中的几条重要注意事项

第一,不要把Excel直接当要素类用。坐标字段虽然Excel里能看出来,但ArcGIS不会自动把它当空间数据对待。你需要先用“创建XY事件图层”或者“添加XY坐标”把表格变成带坐标的点。

第二,图层的坐标系一定要设置正确。如果你不确定,就在内容列表里右键图层属性,看“源”选项卡里显示的坐标系信息。如果显示的是Unknown,后面所有叠加、投影操作都会出问题。

第三,做放射状流向图时,中心点的选取要符合业务逻辑。不是说随手选一个城市,而是根据实际OD数据里的高频起点来确定,通常是数据中出现次数最多、流量汇聚最集中的那个点。这个点选对了,图才真正有解释力。

第四,图例一定要和分级符号对应。很多同学做完图忘记更新图例,导致图例还是默认的单一符号,读者根本看不懂线宽的含义。

第五,输出图片格式方面,如果是在ArcMap里使用布局视图导出,TIFF和JPG都行,但推荐用PNG,支持透明背景且没有压缩痕迹,放到PPT和Word里更清晰。

这些注意事项都是从实际项目中摔出来的经验,写在这里给后来者避坑。尤其是坐标系和字段映射,这两关过了,OD图基本就成功了一大半。

我在实际做图的过程中,最深的体会是:做OD图不难,真正花时间的是前期数据清洗和后期符号调整。数据不干净,工具再熟悉也白搭。而符号化调整得是否细致,直接决定了这张图是“作业水平”还是“汇报水平”。每次做完图我都会问自己一句:这张图不看图例,别人能看懂吗?如果能,说明信息传达是成功的;如果不能,再回去改符号和标注。按照上文这条路子走下来,你会发现放射状流向图其实一点都不神秘,它就是在合适的坐标系下,把OD表变成可视化语言的过程。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 9:01:12

二代AI工具链Pulsar2:从PyTorch/ONNX到NPU的部署避坑实战

简介:AXera第二代AI工具链Pulsar2的官方文档库,面向使用AX650A、AX650N、AX630C、AX620Q等SoC进行AI应用开发的嵌入式工程师与算法开发者。这套资料共28个文件、约279KB,以13个rst格式的Sphinx文档源文件为主体,配合7张png架构示意…

作者头像 李华
网站建设 2026/10/2 9:00:57

sed -i 原理与跨平台安全实践:从原子替换到生产避坑指南

1. 为什么你今天必须真正搞懂sed -i——它不是“替换文件”的快捷键,而是文本处理的手术刀我带过十几期 Linux 运维训练营,每次讲到sed -i,总有学员在课后追着问:“老师,我写sed -i s/old/new/ file.txt,结…

作者头像 李华
网站建设 2026/10/2 9:00:17

乌鲁木齐实力之选:安平县宏友森丝网制品有限公司刀片刺绳制造厂家用户力荐,价格公道不玩套路

安平县宏友森丝网制品有限公司是国内专注周界安防防护产品的源头实体厂家,核心业务涵盖刺绳、刀片刺绳、刺绳立柱的研发、生产与定制配套服务,业务覆盖全国各省市,可提供从产品选型、方案设计到安装落地的全链条周界防护解决方案。企业基础概…

作者头像 李华
网站建设 2026/10/2 8:59:36

Debian apt-get update报错盘片提示的根源与修复

1. 这不是网络问题,是 Debian 包管理系统的“身份识别”机制在报警 你刚装好一台 Debian Bullseye(11)或 Bookworm(12),连上网络,兴冲冲敲下 sudo apt-get update ,结果终端突然跳…

作者头像 李华
网站建设 2026/10/2 8:58:48

JSC解密工具使用指南:从解压到反编译的完整流程

简介:这份新版JSC解密工具面向需要处理JavaScript混淆代码的开发者与逆向分析爱好者,尤其适合在调试、安全审计或学习加密逻辑时遇到JSC格式文件却无从下手的场景。压缩包共112个文件,以103个dll动态链接库为核心运行依赖,辅以5个…

作者头像 李华