
做水环境、水文监测这行的朋友大概都遇到过这种场面报告要交了合作方甩过来一张表格几十个断面的经纬度加编号附带一句“把这些点落到流域水系图上明天上午要”。这时候真正难的从来不是在 ArcGIS 里点几个按钮而是这张流域站位图到底要画成什么样、数据从哪来、投影怎么定、点为什么老是偏到河沟外面去。我把这套流程用在一张东西跨度极大、支流密如蛛网的大型流域底图上反复改过七八版踩的坑攒了一堆这里完整讲一遍从 DEM 到水系、从流域边界到监测站位符号化最后到能拿去印的成品图每个环节的选择理由和参数取值我都会说清楚新手能照着抄做过几张图的人也能从里面挑到几个省时间的技巧。1. 先想清楚一张流域站位图到底要表达什么1.1 站位图的信息层级拆解很多人一上来就开 ArcMap 加载数据加载完了发现图层叠了十几层图上密密麻麻啥也看不清。我在动手前会先把这张图的信息拆成三层这个习惯是从做专题地图的朋友那里学的非常好用。第一层是底回答“这是哪儿”。包括流域面、水系线、必要时的地形晕渲或者邻接流域的浅色轮廓。这一层的职责是提供空间语境不能抢戏所以配色一律压低饱和度流域面用浅灰蓝或者浅米色填充透明度压到 20%35%水系线用中灰蓝而不是纯蓝。第二层是主体回答“站点在哪、什么性质”。监测站位的符号大小、形状、颜色编码必须一眼能分辨干流控制断面、支流汇入断面、湖库出入口断面、背景断面这几类最好用形状区分而不是只靠颜色因为拿去黑白打印的时候颜色全废了。第三层是辅助回答“怎么读”。比例尺、指北针、图例、图名、编图说明、投影与坐标系注记。这一层最容易被忽略但审图的人第一眼看的就是它缺一个比例尺就可能被打回来。把这三层想明白之后你会发现 ArcGIS 里该建几个数据框、图层顺序怎么排、哪些要素要裁剪全都有答案了。我一般会在纸上先画一个火柴盒草图五分钟的事能省掉后面两小时的返工。1.2 数据源的取舍DEM 还是现成矢量水系这条岔路口必须走对因为后面所有工作都建立在它上面。两条路各有适用场景。用 DEM 自己提取水系好处是流域边界和河网天然自洽——因为边界就是从同一个 DEM 的水文分析里出来的河网一定落在流域里不会出现“河在流域外”的尴尬。坏处是提取结果受 DEM 精度和数据质量影响很大平坦地区、湖泊区、水库区会出问题而且提取出来的河网是“理论河网”跟你手上那本水系名录对不上号。用现成的矢量水系好处是河名、等级、干支流关系都是权威的做出来的图符合行业习惯认知。坏处是它和 DEM 提取的流域边界可能不吻合尤其是不同来源、不同比例尺的数据混用的时候偏移几百米很常见。我的实际做法是两条腿走路用 DEM 走一遍水文分析拿到流域边界这是必须的边界无法靠矢量数据凑出来同时加载现成矢量水系做参考底图如果两者偏差在可接受范围内比如在 1:100 万比例尺下偏差小于 1 毫米就直接用矢量水系出图视觉效果好得多如果偏差明显说明某一份数据有问题得先查清楚再动手别硬着头皮往下做。提示混用数据源之前先确认所有图层的坐标系一致并且都做过投影转换。地理坐标系下的“看起来对”和投影坐标系下的“真的对”是两回事。1.3 坐标系与投影的选择为什么不能直接用地理坐标出图这是新手最容易翻车的地方。把一堆 WGS84 经纬度的点直接丢进数据框就出图看起来没毛病实际有三个隐患。第一面积和长度会骗人。经纬度坐标下一度经度的实际长度随纬度变化你量出来的流域面积、河长全是错的。做流域面积统计的时候用地理坐标系算出来的数字可能偏差百分之十几这种错误在正式报告里是致命的。第二形状会变形。一个东西向跨度很大的流域在地理坐标系下会被横向拉长跟实际形状对不上看图的人会产生空间误判。第三符号会失真。圆形符号在地理坐标系下会变成椭圆比例尺也没法正确显示。所以正确顺序是先把所有数据统一到同一个地理坐标系现在主流用 CGCS2000与 WGS84 在制图精度上差异可忽略再投影到一个适合该流域的投影坐标系之后所有分析、符号化、出图都在投影坐标系下做。投影怎么选流域尺度制图我强烈建议用等积圆锥投影Albers双标准纬线设置在该流域的南北跨度大约四分之一和四分之三处中央经线取流域的几何中心经度。这样做的理由是等积投影保证面积统计准确圆锥投影在中纬度带变形小双标准纬线让整个流域的变形分布均匀不会出现一头变形大一头变形小。如果图幅只覆盖一个较窄的经度带UTM 也能用但跨度大的流域会横跨两三个带跨带拼接的接缝在图上很难看还容易出现位置错位所以我一般不碰。设置完之后记得在 ArcGIS 的数据框属性 → 坐标系里也设成同一个投影坐标系别只改图层不改数据框否则导出的时候又会绕回去。2. 数据准备与预处理把“脏”数据收拾干净2.1 DEM 的获取与三项必做检查DEM 是整个流程的地基地基歪了后面全歪。拿到 DEM 之后我会做三件事一件都不能省。第一件检查拼接缝。大范围的 DEM 往往是分幅的拼接的时候如果重叠区处理不当会出现一条明显的直线状高程突变。判断方法很简单在拼接处拉一条剖面线看高程曲线正常应该是平滑过渡出现台阶就说明有问题。我遇到过两幅数据来自不同版本接缝处差了十几米直接导致流向计算在接缝附近出现平行条纹状的错误河网。第二件检查空洞和异常值。高山阴影区、水体表面经常出现 NoData 或者 -9999 这类填充值。在栅格计算器里做一次条件判断把异常值赋成邻域均值或者直接填掉。空洞不处理流向计算到那里就断了河网会凭空断掉一截。第三件检查投影和分辨率。确认 DEM 已经是投影坐标系且像元大小是方形的。如果拿到的 DEM 是经纬度坐标像元是“度”必须先投影重采样。这里有个取舍重采样方法选双线性还是最近邻高程是连续量用双线性更平滑但如果 DEM 里有水体掩膜之类的分类信息就得用最近邻别把分类值插值成小数。重采样的分辨率也要想清楚。原始 30 米数据重采样到 90 米计算量小了但小河沟全丢反过来把 90 米插值到 30 米只是看着精细信息量并没有增加反而让填洼和流向计算变慢。分辨率应该匹配你的出图比例尺1:100 万比例尺的图30 米 DEM 完全够用。2.2 水系矢量的清洗拓扑问题比你想的多矢量水系看着干干净净一查属性表全是事。我通常按这个顺序过一遍。先看几何类型。面状水体湖泊、水库、宽河段和线状水系要分开处理。如果一份数据里把水库画成面、河道画成线两者在入库口和出库口的位置必须接上否则出图的时候会出现“河断了”或者“河穿湖而过”的怪象。处理办法是用捕捉工具把端点吸附过去或者在制图时用面状水体压住线端视觉上盖掉。再查悬挂点和自相交。水系线的悬挂点一端悬空在制图时不算大问题但如果要做网络分析或者长度统计就得修。自相交线自己打了个结会在线符号化加粗之后变成一个黑疙瘩特别显眼。用拓扑检查规则跑一遍“不能有悬挂点”“不能自相交”“不能重叠”能揪出大部分问题。然后统一等级字段。不同来源的水系对干支流的分级标准不一样有的按 Strahler有的按行政习惯分一二三四级有的干脆没有等级字段只有名称。我的做法是新建一个字段按“干流—一级支流—二级支流—其他”粗分四级这个字段后面直接决定线宽是符号化的核心依据。最后处理河名。河名要单独检查重复和缺失。重名的河在不同支流上很常见图上标注的时候会误导读者建议在属性表里加个“显示名称”字段重名的在标注时补上限定词比如支流名。缺失河名的河段要么补上要么在标注时设成不显示别让它显示成“Null”出现在图上。注意属性表里如果有中文保存成 Shapefile 时容易出现编码问题导致属性乱码甚至标注显示成问号。稳妥做法是把中文放在地理数据库要素类里或者导出时确认编码字段设置正确。2.3 站位表的整理与点图层生成的四个坑这是耗时最多、也最容易出错的一步。一张几十行的 Excel看着简单坑一个接一个。坑一经纬度顺序颠倒。表格里两列数字长得差不多很容易把纬度和经度填反。判断方法该流域的纬度范围大致在十几度到三十几度之间经度范围在九十多度到一百二十度之间数值大小有明显区别。如果某一行纬度写成 110 多那一定是反了。批量检查可以在 Excel 里加个判断列超出合理范围的标红。坑二度分秒格式没转十进制。老资料常见“30°15′42″”这种写法直接当数字导入肯定错。转换公式是十进制度 度 分/60 秒/3600南纬西经取负值。如果原始数据用的是特殊符号分隔先在 Excel 里用分列或者文本函数拆开。这一步我建议在 Excel 里做完再导入别指望 GIS 里现场处理。坑三坐标系没声明。导入 XY 数据的时候ArcGIS 会问你坐标系。如果你选了“未定义”图层会出现在一个奇怪的位置跟底图怎么都对不上。这里必须明确选地理坐标系CGCS2000 或 WGS84导入之后再用投影工具转成出图用的投影坐标系别一步到位选投影坐标系那样会二次转换出错。坑四站点编号重复或缺失。编号是唯一的识别码重复了会导致后面按编号连接属性表的时候出现一对多。导入前在 Excel 里排个序看一眼五分钟的事。导入之后立刻做一件事打开属性表跟原始表格逐行核对两三个点特别是首行、末行和中间某个位置异常的点。这个核对花两分钟能避免后面整张图推倒重来。另外建议在属性表里补充几个字段后面出图会反复用到站点类型控制断面、对照断面、消减断面、湖库点位等、所在水体、监测因子、建站年份。这些字段让你后面做分类符号化和图例的时候非常轻松不用临时改数据。3. 流域边界提取水文分析工具链的完整走法3.1 填洼、流向、流量累积顺序不能乱参数要理解这条工具链的顺序是死的填洼 → 流向 → 流量累积顺序错了结果就是错的没有商量余地。填洼Fill的目的是消除 DEM 里的封闭洼地。真实地形里确实有洼地比如喀斯特洼地、冰川湖盆但在 D8 算法里任何局部低点都会让水流“困”在里面出不来导致河网断裂。填洼就是把这些洼地人为填平到一个能流出去的高程。这里有个参数叫 Z 限制意思是只填深度小于这个值的洼地超过的不填。默认是不限制全填。什么时候要设限制当研究区里有大面积的天然洼地或者水库你不想把它们填掉的时候可以设一个合理阈值。但绝大多数流域制图场景直接全填别折腾。填洼的副作用要心里有数填完之后平坦区域比如下游平原、水库水面会形成大片“平地”D8 算法在平地上不知道怎么流会生成平行直线状的假河网。解决办法有两个一是用填洼加微地形的技巧在填洼后的栅格上加一个极小的随机噪声或者坡度梯度打破平地二是直接用支持平地的流向算法。我一般用第一种栅格计算器里加一个 0.001 量级的随机值效果立竿见影。流向Flow Direction用 D8 算法每个像元的水流指向下降最陡的八个邻居之一。输出栅格的值是 1、2、4、8、16、32、64、128分别代表八个方向。这个栅格本身不能直接看但它是后面所有步骤的输入一定要保存好。流量累积Flow Accumulation统计每个像元上游汇入的像元总数。干流下游的累积值会非常大几百万源头小溪的累积值只有几十。这个数值本身没有物理单位但它的空间分布形态就是水系形态。3.2 河网提取的阈值怎么定给一个能算的方法阈值是这条链上唯一需要“拍脑袋”的参数但拍也得拍得有依据。阈值的含义是流量累积值超过这个数的像元判定为河道。阈值越小提取的河网越密阈值越大只剩干流。方法一按目标河网密度反算。河网密度 河网总长度 / 流域面积单位 km/km²。行业里常用 0.51.5 这个区间山区取高值平原取低值。先确定你要的密度比如取 0.8流域面积假设 100 万 km²那么目标河网长度是 80 万 km。用不同阈值试算几次量一下提取出的河网总长度取最接近的那次。这是最靠谱的办法虽然要试几轮但每次试算也就一两分钟。方法二用像元数估算。一个粗略的经验是阈值像元数 ≈ 目标最小河沟的汇水面积 / 单个像元面积。假设你认为汇水面积小于 50 km² 的沟不算河DEM 像元是 30 米面积 0.0009 km²那阈值大约是 50 / 0.0009 ≈ 55000。这个数偏大因为 D8 算法下流量累积值和实际汇水面积不是严格线性对应实际取值通常要往下调一个量级试算到 5000 左右往往更接近直觉。方法三直接看图。从 1000 开始1000、3000、5000、10000 各跑一遍把河网叠在 DEM 晕渲上对比。哪个阈值下的河网跟你印象中的“主要水系”最像就用哪个。这个方法最土但对制图来说最实用因为制图本来就是给人看的。我实际操作通常是方法三为主、方法一验证。定下来之后用栅格计算器把流量累积栅格二值化Con(flowacc 5000, 1)得到河网栅格再用“栅格河网矢量化”转成线要素转换时把流向栅格一起选上这样生成的线是有方向的后续可以做网络分析。3.3 流域盆地与子流域划分Strahler 分级让图面立刻高级有了河网和流向就可以划流域了。工具是分水岭Watershed输入是流向栅格和倾泻点pour point。倾泻点就是你关心的出水口位置可以是流域总出口也可以是某个监测断面。这里有个关键操作叫捕捉倾泻点Snap Pour Point。你手头的站点坐标是实测的可能因为精度问题没落在流量累积值最高的那个像元上直接拿去划流域会划出一小块莫名其妙的区域。捕捉工具会把点挪到指定半径内流量累积最大的像元上。捕捉半径设多大我的经验是13 个像元太大了会把点挪到别的支流上去那就彻底错了。设完半径之后一定要把捕捉后的点显示出来跟原始点对比一下偏移明显的要单独处理。如果要做整条大河的流域边界倾泻点就设在总出口如果要按支流划子流域倾泻点设在各支流汇入口上游一点的位置一次可以批量输入多个点工具会输出多个子流域。拿到子流域之后可以顺手做河网分级Stream Order选 Strahler 方法。Strahler 的规则是源头河流为 1 级两条 1 级汇合变成 2 级两条 2 级汇合变成 3 级不同级别汇合取高级别。这个分级出来的结果非常符合直觉用来做线宽分级再合适不过——1 级细线、2 级稍粗、3 级以上明显加粗图面层次立刻就出来了。3.4 边界平滑与制图级美化栅格边界太“锯齿”怎么办栅格转出来的流域边界全是阶梯状锯齿直接出图很难看。处理分两种情况。如果只是视觉问题用**平滑多边形Smooth Polygon**工具算法选 PAEK容差设成 23 个像元大小。容差太大会吃掉真实的边界细节太小又没效果。平滑之后记得检查面积变化一般控制在 1% 以内可以接受。如果要做精确的面积统计别用平滑后的边界算用原始栅格边界算平滑版只用于出图。这个原则要养成习惯分析和制图分开分析用原始数据制图用美化数据。还有个细节栅格转矢量的时候流域边界和河网之间会出现细小的缝隙或者重叠因为两者都是独立从栅格转出来的。制图时用流域面填充压住河网线的边缘或者干脆把河网裁剪到流域面内部视觉上就干净了。最后给流域面加一点内阴影或者渐变填充四边深中间浅能制造出立体感比纯色填充好看很多。具体做法是在符号系统里选渐变填充或者用制图表达加一个缓冲区偏移。这一步纯属锦上添花但一张图能不能“拿得出手”往往就差这点细节。4. 站位与流域的叠加表达符号化与标注的功夫4.1 分类符号设计形状优先颜色辅助站点符号的设设计原则我在 1.1 提过这里说具体实现。在图层属性 → 符号系统里选唯一值字段选“站点类型”然后逐类指定符号。符号形状的选择逻辑控制断面用实心圆最稳定、最常用对照断面用空心圆消减断面用三角形湖库点位用方形。这几类形状在缩小、黑白打印的情况下依然能分辨这是关键。颜色上同一色系不同明度比如深蓝、中蓝、浅蓝、青蓝避免用红绿搭配——色觉障碍的读者会分不清而且打印出来灰度差不多。符号大小要跟图幅和站点密度匹配。站点密集的区域符号太大就糊成一片。我的做法是按比例尺定基准1:100 万图幅上符号直径大约 46 磅1:50 万可以到 8 磅。设完之后把图缩到最终打印尺寸看一眼如果符号开始互相压盖就调小或者改用更简洁的形状。心得符号系统调好之后立刻存成图层文件.lyr或者样式.stylx。下次做同类图直接调用能省掉重新调参的时间更重要的是保证同一批报告里的图风格统一。4.2 标注引擎与避让让图面从“能看”到“好看”标注是整张图最耗时间也最能体现水平的部分。默认标注引擎基本没法用一定要切到Maplex。开启之后重点调这几个参数。标注优先级。给站点名称设高优先级给河流名设低优先级压盖的时候系统会优先保站点名。河流名我一般用“河流标注”放置方式让文字沿着河道走向弯曲排列视觉上非常专业。避让设置。开启“要素避让”权重设成高这样标注会自动躲开站点符号和彼此。标注压盖里可以设“允许压盖其他标注”的比例我一般设 05%超过这个比例就宁可不出标注。图上字压字比没字还糟。字号与字体。出一张 A1 挂图站点名 810 磅河流名 911 磅流域名 1418 磅加粗。字体选思源黑体系或者方正系别用宋体做小字笔画太细缩小后糊掉。中文标注的位置偏移要手动微调尤其是靠近图廓边缘的点。冲突处理。站点实在太密的时候用标注分类配合比例尺范围小比例尺下只显示重点站大比例尺下显示全部。或者用标注转注记把标注固化成要素然后手工挪位置。转注记之后就不能自动更新了所以这一步放在最后做前面所有数据调整都定稿了再转。4.3 分级设色与线宽让水系有“主次感”河流线宽不要统一。用分级符号字段选前面做好的等级或者 Strahler 级数设置 45 档线宽从 0.25 磅到 2 磅。加粗的干流放在最上层细支流放在下面视觉上就是从源头细线汇聚成主干粗线非常符合水系的实际形态。线符号建议用渐变色或者双线符号。干流用双线一条粗线中间夹一条浅色细线能模拟河道的“面”感虽然技术上还是线要素但看起来像有宽度的河。这个技巧在很多专业地图集里都在用。流域面填充用透明度 25%40% 的单一颜色不要用图案填充图案会跟水系打架。子流域分区的话用同一色系不同明度的纯色填充边界线用白色或者浅灰这样块与块之间靠颜色区分不靠黑色描边图面会干净很多。4.4 布局排版图廓、比例尺、图例的细节切到布局视图之后这几样东西一个都不能少顺序和位置也有讲究。图名放在正中上方字号最大下面可以跟一行副标题说明数据来源或者基准年。指北针放在右上角或左上角别放正中间挡图。比例尺用分段式黑白相间的条状放在图的底部中间或右下角同时用文字注明主比例尺数值。图例放在右侧或左下角的空白区域条目顺序要跟图面层次对应——先流域面再水系分级最后站点分类。图廓建议用双线框外框粗内框细中间留白。图廓四角可以加经纬度注记这在正式图件里是加分项。如果图幅跨度大加一个经纬网格网线用极浅的灰色虚线标注放在图廓内侧。最后是编图说明通常放在图廓外下方写清楚坐标系与投影、高程数据来源、水系数据比例尺、站点数据截止时间、制图单位与日期。这一块内容看起来枯燥但审图的人就靠它判断这张图能不能用。5. 出图与批量生产从一张图到一套图5.1 导出参数分辨率、格式与色彩模式导出这一步踩坑的人特别多最常见的是“屏幕上好好的打印出来糊成一片”。分辨率DPI印刷用图至少 300 DPI精细图件比如要放大看的挂图用 600 DPI。屏幕阅读或插入文档150200 DPI 足够太大会让文件变得巨大。计算公式很简单像素数 图幅英寸尺寸 × DPI。一张 A1 图约 33.1 × 23.4 英寸按 300 DPI 算就是 9930 × 7020 像素这个尺寸的 TIFF 文件可能有几百 MB导出前先确认硬盘空间。格式选择需要后期在矢量软件里编辑的导 PDF勾选“保留矢量要素”和“嵌入字体”要直接印刷或投稿的导 TIFF选 LZW 压缩无损压缩文件小很多只是发给同事看的导 PNG 或 JPEGJPEG 质量设 90 以上避免出现色块。色彩模式屏幕用 RGB印刷用 CMYK。ArcGIS 导出时可以在选项里选如果最终要送印务必导 CMYK否则印厂转换颜色的时候蓝色会发紫、绿色会发灰。重采样选项导出栅格比如晕渲底图时有个重采样方式选择出图用双线性或者三次卷积更平滑别用最近邻会出现马赛克。5.2 数据驱动页面一次出几十张子流域图如果报告需要给每个子流域单独出一张图手工做会疯掉。用数据驱动页面ArcGIS Pro 里叫地图系列。准备工作是建一个索引图层就是子流域面要素里面有个唯一标识字段比如子流域编码。在页面设置里启用数据驱动索引图层选它名称字段选编码。然后设置页面范围选“最佳范围”边距设 5%10%让每个子流域都能充满图幅且不贴边。接着放动态文本图名里插入“子流域名称”字段这样每翻一页图名自动变。比例尺也可以设成动态的因为不同子流域面积差很多固定比例尺会导致小流域图上一大片空白。导出时选“全部页面导出 PDF”能得到一个多页 PDF每页一张子流域图。这个功能我第一次用的时候惊了原本要两天的活半小时搞定。注意数据驱动页面切换页面时标注不会自动重新计算避让如果发现某几页标注重叠可以在该页手动调整或者干脆把标注转成注记后逐页微调。这算是这个功能的一个小遗憾。5.3 模板复用把重复劳动压缩到最低一套流程跑通之后第一件事是把成果固化成模板。保存地图文档模板.mxt 或 .mapx里面预置好图层结构、符号系统、布局元素、动态文本。下次换流域只要替换数据源、重设投影和页面范围其他全都不用动。保存符号系统文件把站点分类符号、水系分级线符号、流域面填充分别存成 .lyr 或 .stylx。跨项目复用的时候直接拖进来。写成脚本或者模型。填洼、流向、流量累积、河网提取、流域划分这一串参数固定的话完全可以用 ModelBuilder 串起来或者写几十行 Python 调用 arcpy。我写过一个脚本输入 DEM 和倾泻点输出河网、流域面、Strahler 分级全程无人值守跑一次十几分钟。虽然前期调试花了两小时但后面每接一个新流域都能省下大半天。6. 常见问题与排查清单6.1 站点不落在河上按这个顺序查这是最高频的问题十个新手九个遇到。排查顺序如下。第一步查坐标系。点图层和底图是不是同一个坐标系在图层属性里看两个都是投影坐标系且名称一致才行。如果一个是地理坐标系一个是投影坐标系ArcGIS 会做“动态投影”让它看起来对但位置可能有偏差而且在做空间分析时会出错。第二步查导入方式。是不是用了“添加 XY 数据”但坐标系选错重新导入一次明确选地理坐标系然后投影转换。第三步查经纬度顺序。在属性表里看两列数值明显超出合理范围的那一列就是填反了。用字段计算器交换两列的内容。第四步查原始数据精度。有些站点的坐标是从纸质报告上抄的只精确到分误差可能有一两公里。这种情况要么找回更精确的坐标要么在图上用引线标注说明“点位为示意”。第五步查底图本身。如果底图是从不同来源拼的接缝处可能有偏移。把点叠在影像底图上看一眼如果点落在山脊上而不是河谷里说明底图偏移了。6.2 中文乱码与标注显示异常表现是属性表里中文变成乱码或者图上标注显示成方框、问号。属性表乱码根子在 Shapefile 的编码。Shapefile 用 .dbf 存属性编码信息在一个 .cpg 文件里。如果 .cpg 缺失或者写错了ArcGIS 会按系统默认编码读中文就乱。解决办法用文本编辑器打开或新建 .cpg 文件写入UTF-8或者GBK取决于原始数据保存后重新加载。更彻底的办法是把数据导入文件地理数据库那边编码管理规范得多。标注显示成方框通常是字体问题。检查标注用的字体是不是系统里有的换个通用字体比如思源黑体、微软雅黑试试。另外导出 PDF 时如果没勾选“嵌入字体”在别人的电脑上打开也会变方框。6.3 面积统计偏差与拓扑错误算出来的子流域面积加起来跟总面积对不上或者某个子流域面积明显偏小。原因可能有三。填洼不彻底导致部分区域的水流不出去被划到相邻流域或者直接丢失。检查方法把填洼后的 DEM 减去原始 DEM差值大的区域就是被填的地方看看是不是合理。倾泻点位置不对捕捉半径设太小导致点落在支流上。重新设捕捉半径或者手动把点挪到流量累积值最大的像元上。边界像元归属规则栅格计算流域时边界上的像元只能归属一个流域会导致总面积略小于理论值。这个误差通常在 1% 以内可以接受但如果偏差大就要查上面的两条。6.4 速查表现象最可能原因处理办法站点整体偏移到图外坐标系未定义或选错重新声明地理坐标系并投影转换点落在山脊不落河谷底图偏移或经纬度反了叠影像核对检查属性表数值范围河网出现平行直线填洼后形成平地D8 算法失效填洼后加微地形噪声或换算法河网断成几截DEM 有空洞或异常值检查并填补 NoData流域边界呈锯齿状栅格转矢量未平滑用平滑多边形容差 23 像元子流域面积明显偏小倾泻点未捕捉或捕捉半径过小重设捕捉半径 13 像元人工核对中文标注显示方框字体缺失或未嵌入换通用字体导出时嵌入字体属性表中文乱码Shapefile 编码问题修正 .cpg 文件或转地理数据库导出图模糊DPI 过低或重采样用最近邻提到 300 DPI 以上改双线性重采样印刷后颜色发紫用了 RGB 模式导出时改 CMYK图例条目顺序乱图例未按图层顺序生成手动调整图例项顺序或分组标注相互压盖未启用 Maplex 或避让权重低开启 Maplex设要素避让高权重6.5 几条踩出来的经验中间产物全部保留。填洼后的 DEM、流向栅格、流量累积栅格、河网栅格这些文件占空间但别删。改阈值、改捕捉点、改投影的时候不用从头再跑一遍。我吃过一次亏把中间文件删了结果甲方要求换个阈值重出图硬生生重跑了两小时。先小范围试参数再全图跑。大流域跑一次水文分析可能要十几分钟参数不对就得重来。正确做法是裁一小块比如一个子流域做试验田参数调好了再上全图。这个习惯能省掉大量等待时间。属性表要留“备注”字段。数据来源、精度、异常情况、处理人、处理日期全记在备注里。三个月后你自己回来看这张图会感谢当时的自己。图面元素宁少勿多。新手容易在图上堆各种元素——地形晕渲、土地利用、行政区划、交通线最后主体全被淹没了。一张站位图的核心就是站点和流域其他都是配角配角的作用是衬托而不是抢戏。给图配一份文字说明。图本身不会说话配一段说明写清楚数据来源、处理方法、局限性比在图上堆注记有用得多。尤其是用了 DEM 提取的河网一定要说明“河网为基于 DEM 自动提取与实测水系可能存在偏差”这句话能挡掉很多质疑。最后分享一个我自己常用的小技巧把整张图的图层按“底图组、水系组、站点组、注记组”分组用图层组统一控制可见性和透明度。改图的时候不用一个个找图层效率提升非常明显。这个习惯一旦养成做任何专题图都会顺手很多。