早些年我第一次用ArcMap做出自己的第一张流域图时,盯着屏幕上那条弯曲的蓝色河网和闭合的集水区边界,说实话愣了好一会儿。从一堆原始影像和DEM数据,到最终能放进报告里、能拿去汇报的成果图,中间隔着的不是一两个工具按钮,而是一整套对地理数据、空间分析和制图表达的完整理解。这篇就复盘我当时从零开始做第一张流域图的全过程,包括数据怎么准备、流向怎么算、边界怎么提、图怎么出,以及那些文档里不会写但实测非常关键的细节。文章偏实操,用的就是ArcMap的常规工具,适合刚接触水文分析或者被项目逼着要出一张流域图的朋友。
1. 内容整体设计与思路拆解
1.1 流域图到底是什么,做出来要干什么用
在动手之前,先把“流域图”这件事想清楚。流域又叫做汇水区或者集水区,通俗地讲,就是落到地面的雨水,顺着地形往低处流,最终汇聚到同一个出水口的那一整片区域。做流域分析,核心就是模拟雨水在地表的走向,然后圈出“哪些地方的水会流到我要关注的河段或点位”。
我做第一张流域图的目标很明确:给一条山区小河流域做水文分析的前置底图,需要明确这条河在什么位置有分水岭,流域边界走到哪,河网大概是什么形态。有了这张图,后面不管是做淹没模拟、面源污染估算,还是划定生态管控范围,都有了空间上的基础框架。
ArcMap里做这件事的完整工具链其实相当成熟,核心就是Hydrology工具集,再加上前期数据的准备和后期成果的修饰。整条链路可以拆成几个环节:准备DEM数据、对DEM做填洼处理、计算水流方向、计算汇流累积量、提取河网、确定出水口、生成集水区(流域边界)、把栅格转成矢量、配准坐标系、修饰出图。每一步之间都有严格的因果关系,前面错一点,后面全白做。
1.2 为什么选ArcMap而不是其他工具
市面上能搞流域分析的工具有不少,比如QGIS里也有对应的水文分析模块,还有专门的水文模型软件如HEC-HMS、SWAT,甚至ArcGIS Pro现在也已经是主流。但为什么我当时选择了ArcMap?其实有一个很现实的原因:项目组当时已有的数据、插件和同事的经验都是基于ArcMap这套环境的,而且ArcMap的Hydrology工具集从10.x开始就非常稳定,网上教程和问题解决方案也海量,遇到问题能快速找到答案。
说实话,ArcMap确实有它“老气”的一面,界面不算现代,处理大数据时偶尔卡顿,但它做流域分析的工具链条逻辑清晰,每一步都有独立的工具入口,特别适合新手理解“水流方向是怎么来的”“累积量是怎么算的”这些底层概念。相比之下,有些一键式工具虽然快,但把中间的物理过程全封装了,出了问题根本不知道错在哪。对第一次做流域图的人来说,能把每一步打开来看中间结果,比图快更重要。这也是我后来带人做项目时始终坚持的观点:先用手动流程把原理跑通,再用模型构建器去批量化和自动化。
1.3 整体流程的技术路线设计
做流域分析的常规技术路线,可以归纳为“数据准备—地形预处理—水流模拟—河网与流域提取—成果表达”五个阶段。
数据处理这部分核心是DEM(数字高程模型),可以理解成一张记录了每个栅格单元海拔高度的网格数据,相当于把真实地形的起伏变成了数字矩阵。水往低处流的模拟,就是在这张海拔矩阵上做的。需要提前说明的是,DEM的质量直接决定了后面所有分析结果的可靠性,所以拿到数据第一件事就是检查坐标系、分辨率、高程范围和数据是否有空洞。
地形预处理阶段最重要的操作是填洼。真实世界里,地形里会有很多低洼的地方,比如坑塘、采石坑、甚至DEM本身的噪声,这些洼地会让水流模拟停在原地,没法继续往下游走。如果不处理,水流方向会乱掉,最后提取的河网和流域边界全是错误的。填洼工具就是把这些低洼区域的高程抬高,抬到和周围地形能顺畅流出去的水平。
水流模拟阶段包含流向分析和汇流累积量计算。流向分析的核心是算出每个栅格单元上的水会流向8个邻居中的哪一个,ArcMap用的算法是D8单流向法,就是找周围坡度最陡的那个方向。汇流累积量则是统计每个栅格单元上游有多少个单元的水会汇过来,这个值大的地方就是河道,小的地方就是坡面。
2. 核心细节解析与实操要点
2.1 DEM数据的获取与预处理
我用的数据是项目方提供的某机构公开影像生成的DEM,栅格分辨率是30米,坐标系是WGS84地理坐标系。这里先要吐槽一个重要的问题:很多人拿到的DEM坐标系是经纬度,也就是以度为单位,这会导致后面所有的坡度和流向计算数值怪怪的,因为1个纬度的距离和1个经度的距离在不同地方完全不一样。所以拿到数据第一步,我习惯先看看DEM的属性,确认坐标系。如果原始数据是地理坐标系,我一般会投影成适合当地的高斯-克吕格投影或者UTM投影,让每个栅格单元在X和Y方向上都对应真实的地面距离。
填洼之前还要做一步很多人忽略的操作:检查DEM有没有负值或者异常值,尤其是沿海或者河谷地区,有些DEM在河床位置会出现比周围低得特别离谱的“钉子点”。这种异常值如果直接参与填洼,会把下游的大片区域全填成平地。我处理这种数据的方法是先用栅格计算器做一个简单的筛选,把低于某个绝对高程的值替换成周边平均高程,或者用焦点统计做一个平滑。当然这个方法要谨慎用,不能把真实地形改坏了,但处理明显的异常值是必要的。
2.2 水流方向计算的原理与实操
流向分析之前要先填洼,填洼工具在ArcToolbox的Spatial Analyst Tools—Hydrology—Fill里,参数很简单,输入DEM,输出填洼后的DEM,还有一个Z limit参数。这个Z limit可以理解为填洼的最大深度限制,默认是空值,意思是所有洼地都填平。但实际地形中有些洼地是真实的,比如喀斯特地区的落水洞,如果全填掉,水流方向会失真。我当时处理的是普通山区流域,地形相对连续,就保持默认全填了。如果遇到喀斯特地形或者矿区塌陷区,建议根据实地情况设置一个合理的填洼深度上限,把过于深的、明显异常的洼地排除掉。
填洼完成后,接着用Flow Direction工具计算流向。这里需要留意一下工具输出有两种可选,一种是D8方向的整数编码(1、2、4、8、16、32、64、128),另一种是可选的输出为流向权重的浮点栅格。平时我们看流向图,用的就是整数编码。这些编码的含义需要知道:1表示东,2表示东南,4表示南,8表示西南,16表示西,32表示西北,64表示北,128表示东北。这个规则是为了用二进制位图的方式让程序快速处理方向关系,不是随便编的数字。
实操上有一个小技巧:算完流向栅格,建议拿它和填洼后的DEM叠在一起看一眼,如果流向箭头和等高线看起来是“垂直往下”的,说明地形预处理没太大问题。如果流向混乱,检查一下投影是否正确,再回头看是不是有未处理的异常值。我那次做项目时,第一次算出来的流向图在河谷段出现了大量的平行乱流,排查了半天发现是原始DEM在某河谷区域有一块横向条带状的噪声。
2.3 汇流累积量与河网提取的阈值选择
流向栅格做好之后,用Flow Accumulation工具计算汇流累积量。这个输出结果表示的是每个栅格单元上游有多少个单元的水汇入到它这里,数值越大,说明水流越集中,越像真正的河道位置。
河网提取的核心操作就是给这个累积量栅格设一个阈值。大于等于阈值的像元被认为是河道,小于阈值的像元是坡面漫流。阈值的设定没有统一标准,完全取决于你要表达什么尺度的河流。比如30米分辨率下,阈值设1000,相当于上游汇水面积约0.9平方公里,能提取出比较细的沟道;设5000,相当于上游约4.5平方公里,提取出的河网就比较精简,接近常说的常年流水河道。
我当时用了一个比较笨但有效的方法:先生成几个不同阈值的河网,叠加在影像和等高线底图上对比,看哪个阈值下的河网与影像上肉眼可见的河道最接近。最终我选了一个既能体现支流分布,又不会让图面过于破碎的阈值。这里特别提醒,不要把阈值设得太低,否则整个山体坡面都会被提取成密密麻麻的细线,图面没法看,而且在后面的流域分析中会把每一条小冲沟都当成河道,出水口选点会很痛苦。
2.4 出水口选择与集水区生成
河网生成之后,就可以确定出水口(Pour Point),然后用Watershed工具生成流域边界。出水口的意思就是流域汇水的最终出口,可以是整个河流的入河口、某个水文监测断面、或者你关心的某个具体控制点。
选出水口的操作其实最考验经验。我当时是用“捕捉”的思路:先在河网上选一个汇流累积量很大的栅格作为出水口,但手工点的位置往往和栅格中心对不齐,解决办法是用Snap Pour Point工具,把出水点捕捉到指定范围内累积量最大的像元上。这个工具参数里有一个捕捉距离,我一般设为DEM分辨率的3到5倍,比如30米分辨率就设90到150米,太小了捕捉不到,太大了可能跳到别的河道上去。
流域边界算出来之后,会得到一个栅格,每个流域赋予一个独立编号。这时候需要把栅格转成矢量,用Raster to Polygon工具。转换时会发现边界都是锯齿状的阶梯线,这是因为栅格数据本身就是网格结构。如果需要平滑的边界用于制图,可以用Simplify Polygon工具做一定的简化,但切记不要过度平滑,把真实的流域形态弄没了。我个人是不太建议在成果图里对流域边界做太强的平滑的,看起来漂亮了,但经不起专业推敲。
3. 实操过程与核心环节实现
3.1 数据加载与工作环境的搭建
正式操作前,ArcMap的工作环境设置会影响后续所有自动生成的临时文件的存放位置和坐标系。我的习惯是开工之前先做一个完整的环境配置:打开Geoprocessing—Environments,把当前工作空间和临时工作空间都指定到一个专门的工程文件夹,输出坐标系设成和DEM一致的投影坐标系,栅格分析中的像元大小保持和DEM一致。
这一步看着不起眼,但实际非常重要。如果不设置工作空间,ArcMap默认会把中间过程生成的栅格文件丢到默认的临时目录下,下次清理系统缓存或路径变化时,你的数据源就可能变成断链状态,整个地图文档里的图层全体“罢工”。我早期就吃过这个亏,做了一半关掉软件,第二天打开地图文档,所有栅格图层都因为临时路径失效而显示不出来,只能重新跑一遍流程。设置一个干净的工程文件夹,所有中间结果都写到里面,这是保证可追溯、可复盘的前提。
3.2 填洼到河网提取的完整操作序列
接下来把核心流程按顺序操作一遍。
第一步,填洼。打开ArcToolbox,定位到Spatial Analyst Tools—Hydrology—Fill,输入是预处理好的DEM,输出我命名为dem_fill。这里要注意,选的DEM必须是单波段浮点型或整型数据,如果是多波段影像,工具会直接报错。填洼的原理可以理解成用一个“水往低处流”的规则不断检查每个洼地的最低缺口高程,然后把低于这个缺口的区域整体抬升到缺口高程,让水能继续流出去。过程比较耗时,30米分辨率、面积几百平方公里的区域,通常几分钟内能完成。
第二步,流向分析。用Flow Direction工具,输入dem_fill,输出流向栅格,方向编码选择D8。D8算法是假设水流只有一个流向,即流向8个邻域中坡度最陡的方向。这种算法简单高效,在大多数地形条件下都能得到合理结果,但也有一些局限性,比如在平坦区域或者人为整平的地面上,流向计算会不稳定,容易产生平行流。如果后面发现河网在平原段特别的平直和机械,大概率就是这个问题。
第三步,汇流累积量。用Flow Accumulation工具,输入流向栅格,输出累积量栅格。如果不做任何设置,工具默认对所有流入单元做统计,权重栅格可以不填,表示每个单元贡献一份流量。如果希望考虑降雨空间分布或者不同地类的产流差异,可以准备一个权重栅格,每个像元值代表该像元的产流权重,但第一次做的话建议先用默认。
第四步,阈值提取河网。栅格计算器中输入公式:Con("flowacc" >= 4000, 1),意思是累积量大于等于4000的设置为1,其他为NoData。这个操作生成一个二值栅格,值为1的位置就是河道。随后用Stream to Feature工具把河网栅格转成矢量线,这个工具会同时考虑流向,把栅格连接成连续的多段线。这一步非常关键,因为它生成的河网线是带有正确上下游拓扑关系的,绝不是简单的像元转点连线。
第五步,生成流域。先要在河网层上选一个或者多个出水口。如果只有一个出水口,可以直接在河网最下游的位置建一个点要素,然后选择【Spatial Analyst工具—Hydrology—Snap Pour Point】进行捕捉;如果需要划分多个子流域,可以在河网上按节点均匀布点,再用Watershed工具一次性生成多个集水区。我当时是为了做整条河的完整流域边界,所以只选了一个总出水口,就选在河流流出研究区边界前的那一个栅格上。
3.3 栅格流域转矢量与制图要素的整理
Watershed工具输出的栅格,每个流域像元的值代表了该像元所属的流域编号。Raster to Polygon转矢量后,还要注意属性表里可能会多出一个grid_code字段,这是流域编号。接下来做制图前处理:把流域边界要素和河网要素套合到同一坐标系下,检查有没有细碎的、面积过小的面要素。
制图要素的整理是很多人容易忽略的重头戏。流域图不只是给一个封闭的边界线和一条蓝线,还需要补充一些基础地理要素来支撑读图。我当时加了几类要素:流域边界、河网、等高线(由DEM生成但要做抽稀)、主要居民点、道路、以及图框内的指北针和比例尺。这些要素分别来自不同数据源,必须保证投影坐标系一致,不然叠加后会错位得离谱。
等高线的生成用Contour工具,我当时设置的是每隔50米一条计曲线、10米一条首曲线。但实际制图时发现如果全部显示,线条太密会盖住河网,于是我把首曲线关掉,只显示计曲线,并且给主要河流的河谷区域做了一点透明度处理,让地形和河网的主次关系清晰起来。
3.4 出图布局与成果导出的关键设置
制图出图是在Layout View里完成的。很多人分析做得很好,一到出图就随便拉一个图框导出了事,这样出来的图既不符合专业规范,也很难放到正式报告里。我当时总结了几个必须检查的项:
数据框的坐标系必须与内容一致,比例尺要是整数倍,比如1:50000、1:100000,不要出现1:37123这种奇怪的比例。指北针放在图的右上角或左上角,但如果你出的是小比例尺的流域位置图,而且图面有经纬网或有明确的河流流向指示,指北针也可以放在图例下方。图例的内容要精简,流域边界、河网、等高线、居民点、控制点等有选择地放,不是所有打开的图层都要在图例里出现。
导出之前,还要在图面空白处放上制图信息:图名、坐标系统说明、数据来源、制图日期、制图人。这些信息是专业制图的基本素养,尤其如果图要提交给政府或业界单位,缺少这些信息容易被退回修改。导出图片时,我用的是File—Export Map,格式选PNG或TIFF,分辨率至少300dpi。有的同事图省事直接截图,打印出来全是锯齿,这个习惯一定要改。
4. 进阶延展:与空间数据库和外部数据的衔接
4.1 用PostgreSQL空间库管理流域分析成果
流域图做完之后,面临的现实问题是怎么管理这套数据。尤其当项目涉及多个流域、多期DEM、多条河网数据时,简单地把shapefile存在文件夹里很快就会乱套。我当时在项目中尝试过把成果数据统一入库到PostgreSQL+PostGIS,再通过ArcMap的ArcSDE或者直接数据库连接去读取和管理。这里提一下我踩过的坑:PostGIS的空间数据和ArcMap的兼容性要注意版本匹配,尤其是早期版本需要特别注意数据库驱动与客户端位数一致,否则连半天都连不上。
部署PostgreSQL空间库,简单来说就是先把PostgreSQL安装好,再在安装目录下找到Stack Builder选择安装PostGIS扩展,然后在数据库中启用PostGIS扩展。ArcMap连接PostGIS通常有两种路径:一是在Catalog窗口里添加数据库连接,选择PostgreSQL大小时填主机、端口、数据库名和凭据;二是通过ArcSDE技术做企业级地理数据库。对于个人项目或小团队,直接添加数据库连接就够了,不需要专门搭ArcSDE服务,成本和维护复杂度都能大幅降低。
把流域图成果导入PostGIS有个好处,就是可以用SQL空间查询直接做统计,比如快速地算出每个子流域的面积、中心点、与指定点位的距离。这些在ArcMap的属性表里也能做,但数据量一大、规则复杂了,SQL明显更高效。比如我想批量算每个子流域内大于25度坡度的面积占比,在ArcMap里要先做坡度分级再按流域区域统计,步骤繁琐,而在PostGIS里用ST_Intersection加条件统计,几秒钟就能出结果。
4.2 Excel经纬度数据导入生成点位图层
流域图里往往要标注已有的水文监测断面或者雨量站点,而这些站点坐标常常以Excel表的形式存放在项目库里。把Excel中的经纬度数据导入ArcMap并生成shp,是一个高频到不能再高频的场景。操作并不复杂,但有不少细节值得注意。
Excel数据准备好之后,要保证里面至少有两列分别是横坐标和纵坐标,而且要和你的地图坐标系统匹配。如果地图是投影坐标系,比如高斯-克吕格投影,Excel表里存的却是经纬度,那么导入后点位会跑到海里或非洲去,这是很多新手最容易犯的错误。正确做法:如果Excel里是经纬度,就先通过ArcMap的Add XY Data按地理坐标系(WGS84)生成临时事件层,然后使用Project工具转换到目标投影坐标系,再导出成shp。
如果Excel里是投影坐标,那就直接按对应的投影坐标系导入。还有一点烦人的是Excel里的坐标列格式,经常有文本型的数字带着空格或者单位后缀,比如“108.35度”这种,导入前需要在Excel里把这些清洗干净,统一转成数值型。我在实际项目中还遇到过一列坐标混有度分秒格式(112 12 33)的情况,这种必须先拆列换算成十进制度数后再导入。总而言之,坐标数据的规整和坐标系识别,是所有空间分析工作的地基,地基不正,后续全歪。
4.3 模型构建器实现流域分析流程自动化
当流域分析要做不止一次、或者要对比不同阈值下的河网方案,手动在工具面板里一次次点会非常低效。ArcMap自带的ModelBuilder是一个很好的自动化工具,可以把前面讲的填洼、流向、累积量、河网提取、流域生成这几个工具串联成一个模型。模型建好后,每次只需要输入一个新的DEM,改一下阈值参数,就能自动跑完全流程输出结果。
我当时的做法是先在ModelBuilder里把河网提取流程拖出来,把阈值参数设置为模型参数(Model Parameter),这样在模型运行时可以直接弹出输入框填写。对于子流域划分场景,还可以把出水点也做成模型参数,用循环的方式对多个出水点批处理生成流域边界。这套自动化模型我把文件保存在工程文件夹里,后续团队其他人复制过去只要数据路径没问题就能直接复用。
5. 常见问题与排查技巧实录
5.1 坐标系不匹配导致分析结果完全错位的排查
做流域分析时最常碰到的问题之一,就是各种数据坐标系不一致导致叠加错位。我接手过一个案例,河网线明明和DEM是同一个区域,但叠在一起发现河网整体向东偏了几百米。最后排查发现,DEM用的是WGS84地理坐标未投影,而河网是从另一个工程里导出的,坐标系是WGS84 UTM Zone 49N投影,两者虽然基准面一样,但坐标表现方式不同,直接叠加自然是错位的。
解决的办法不复杂:统一坐标系。建议把涉及分析的所有数据都通过Project Raster或者Project工具转换到同一个投影坐标系,不要图省事直接加载原始未投影数据。判断数据是否投影,看图层属性里的Source选项卡,如果线性单位显示是Degree就是地理坐标,如果是Meter或者Foot则已被投影。还有一个高频错误是单位看错了,两个栅格看起来坐标系一样,但一个是米,一个是英尺,导入后整个区域缩放比例就会很奇怪。
5.2 流向栅格出现大片异常或全为边界值的处理
如果计算出来的流向栅格在平坦区域出现大量“东”方向(值1)的平行直线,多半是地形过于平坦或者DEM经过了过度平滑。这时候要从原始DEM找原因。常见的是人为平整过的农田区、盐田、城市建成区等。这些区域现实中往往有专门的排水工程干预,用D8算法做自然模拟本来就不合理,但如果你必须要让分析在这些区域也能出结果,可以尝试在填洼前对DEM做一次“地形抬高微调”,比如加入一个很小的正负随机噪声(例如±0.1米),打破平地像元的绝对等高状态,让流向算法有明确的下坡方向。这个方法对长条形区域效果还可以,但使用前要明白这是人为干预,不是自然真实情况。
如果流向栅格出现大片区域全是流向边界方向(比如全是1或全是8),还有一种可能是DEM的分辨率太粗,导致整个山谷就一两个像元宽。这种情况下建议重新获取更高分辨率的DEM。网上有不少公开的高精度DEM数据源,但具体数据获取渠道和授权方式需要注意,我不在这里展开。
5.3 填洼后DEM与原始地形差异过大的判断
填洼后,一定要对比填洼前后的DEM。ArcMap里可以用Raster Calculator直接相减得到填洼厚度分布图。如果发现某个区域填洼厚度高达几十米甚至上百米,那基本可以判断这个区域可能存在DEM数据错误或者真实地形中有巨大的人工改变,比如露天矿坑、大型水库大坝。这种情况下,直接使用填洼结果是不靠谱的。
我当时的处理方式是,对于水库大坝这种人工障碍,先用ArcMap的手动编辑在DEM上“开一个口子”,把坝体位置的高程按坝下水位的平缓路径修改后再填洼。这一步操作需要谨慎,最好有实测的河道断面高程数据做参考,否则就是在拍脑袋。但如果只是做初步的流域范围圈定,把这种特定点位的问题单独处理掉,对整个流域边界的影响是可以接受的。
5.4 ArcMap崩溃或工具运行报错的常见原因
ArcMap做水文分析时,如果数据量很大,比如几十GB的高分影像或者大范围高分辨率DEM,工具运行过程中偶发崩溃是正常的,不必恐慌。我从经验中总结了几个降低崩溃概率的措施:尽量关闭其他占用内存大的程序,不要在一个地图文档里同时加载太多大数据图层,中间结果及时清理,以及定期保存地图文档(最好设置自动保存插件或用CTRL+S养成肌肉记忆)。此外,ArcMap对中文路径的支持一直不佳,工程文件夹和文件名称尽量用英文和数字,不要带中文和特殊符号。这一点真的非常重要,很多莫名其妙的工具报错最后都是中文路径惹的祸。
如果某个特定工具反复报错,比如Flow Accumulation提示“ERROR 010067”,一般是输入数据问题,先把流向栅格检查一遍,看看有没有NoData区域的混乱交错。另一个高频报错是“999999”,这种一般都不是具体算法问题,而是操作环境导致的,重启软件、清空临时目录后往往能解决。
6. 从第一张流域图到可复用成果的总结思考
6.1 数据管理和路径规范的血泪教训
做完第一张流域图,我最大的收获不是点击了多复杂的工具,而是认识到从项目一开始就建立一套规范的数据管理和路径体系有多么重要。ArcMap工程里所有数据必须放在同一个根目录下,相对路径替代绝对路径,这样即使整个工程文件夹移到另一台电脑上,也不会出现图层断链。地图文档属性里勾选“Store relative pathnames to data sources”,导出成mxd文件后团队同事打开就不会出现一排红色感叹号。
另外,所有栅格工具的中间结果,建议在命名时统一加上阶段后缀,比如原始DEM命名为dem_raw,填洼后的命名为dem_fill,流向为dir_fill,累积量为acc_fill。这样一旦流程需要重跑,能很快定位到问题出在哪个阶段。如果命名随意,比如final_dem_final_最终版这种,过两个月回头看,你自己都想不起来文件是什么内容。
6.2 制图审美与表达规范的提升路径
制图出图这一块,很多人觉得是体力活,没什么技术含量,但实际上,一张流域图能不能在汇报场合让领导或甲方一眼看懂,取决于制图者的表达能力和审美水平。我个人的经验是,出图前先问三个问题:这张图的核心信息是什么?观众是谁?图的阅读顺序应该是什么?比如面向水务部门的流域图,核心信息是流域边界和河网,那么这两个要素就必须是视觉焦点,颜色要比背景地形明显突出;其他要素如道路、居民点只能弱化,不能抢戏。
还有配色的问题,ArcMap自带很多色带,但不是所有色带都适合学术和专业制图。水体用蓝色系(从浅蓝到深蓝),流域边界用深红色或紫色粗线条,背景的DEM渲染用山体阴影加透明度,这样层次感明显强于直接把DEM用彩虹色带拉伸出来。彩虹色带虽然色彩丰富,但会让图面显得很“花”,而且不同色带之间的等高差信息不直观。
6.3 后续可扩展的方向与真实体会
做出第一张流域图,只是水文分析这条路上开了一个头。后续可以扩展的方向很多,比如在流域图的基础上继续做子流域划分、计算每个子流域的面积和坡度统计、结合土地利用数据做径流系数估算、甚至把河网和流域导出到HEC-HMS里做降雨径流模拟。
就我个人的实际经历来说,第一次做流域图最值得投入时间的地方,一是理解填洼、流向、累积量这几个核心步骤的原理,二是养成从头到尾规范操作的习惯。工具本身并不复杂,复杂的是数据质量的控制和每一步结果合理性判断。我踩过很多坑,也推倒重来过很多次,但现在回头去看,正是这些试错才把一个“会用工具的人”变成了“能判断结果对不对的人”。
最后再分享一个小技巧:定完流域出水口后,先在ArcScene里把填洼后的DEM和流域边界三维叠加一眼,你会发现流域实际是一个“碗状地形”,视觉效果非常直观。这个操作能帮你快速判断出水口是否选在真实地形的最低出口处,同时也让抽象的分析结果变得非常有说服力。做项目汇报的时候,拿出这张三维流域图,比对着平面图苦口婆心解释大半天要高效得多。