首页 / 资讯中心 / 文章详情

ArcGIS全国湖泊水库面状矢量边界提取与专题图制作全流程指南

ArcGIS全国湖泊水库面状矢量边界提取与专题图制作全流程指南 ★ FEATURED ARTICLE
做国土空间规划和水利评估类的项目最容易被问的一句话就是“你有没有全国湖泊水库的边界数据”说实话我前些年也被这个需求卡过很多次。手里有湖库名称、有经纬度但没有能直接拉进ArcGIS用的面状矢量边界图层做面积统计、缓冲区分析、专题图全都无从下手。后来我把公开数据源翻了个遍整理出一套从数据获取、清洗整理到专题图制作的标准流程在这里完整分享一下。这篇文章适合的范围很广不论你是做水资源调查、生态保护红线评估、环境影响评价还是在学校做毕业论文只要需要把中国主要湖泊水库画成面状边界并且用ArcGIS出图汇报按下面的流程走基本能少踩一大半坑。我会把数据源怎么选、属性怎么筛、坐标系怎么定、拓扑问题怎么修以及最终如何做一张能拿得出手的专题图全部说清楚。1. 数据获取把全国湖泊水库面状矢量边界图层搞到手1.1 数据源选型不同来源的优缺点对比国内做面状水体数据绕不开这几个来源国家基础地理信息中心发布的公众版基础地理数据、OpenStreetMap水系数据、HydroLAKES全球湖泊数据库以及一些科研机构整理的全国湖泊水库矢量数据集。每个来源有自己的脾气我挨个说下实际使用感受。国家基础地理信息中心的1:100万公众版数据最大优势是规范性好所有图层分门别类湖泊以面状要素存在坐标系统一属性字段规范。缺点是比例尺偏小很多中小型水库在1:100万数据里根本显示不出来只适合做大区域宏观制图。OpenStreetMap的水系数据非常丰富尤其是人工勾绘的湖泊、水库边界更新快小水库小水塘也能找到。缺点是要么下载全国数据后自己用标签筛选要么用Overpass API按范围单独拉取属性字段来源杂需要二次加工。HydroLAKES是加拿大麦吉尔团队做的全球湖泊数据库总共140多万个湖泊多边形国内的大型湖泊基本都有属性里有面积、流域、岸线长度等字段做科研分析非常好用。缺点是对人工水库的覆盖没有专门优化部分水库还是以自然湖泊属性记录关键字甄别时要留意。还有一类是各高校和科研机构整理的专题数据比如国家地球系统科学数据中心、资源环境科学与数据中心能搜到不少“全国湖泊分布”“主要水库库容”之类的shp数据。这类数据最大的问题是时间参差不齐有的还是十几年前的底图使用前务必确认数据时间和属性完整性。我个人习惯的组合是宏观底图用国家基础地理信息中心公众版中微观补充用HydroLAKES和OSM叠加提取。这样既能保证大湖不错漏又能把小水库补全属性表里也能保留类型、面积等关键字段。1.2 下载后的入库操作格式、编码与字段整理数据下到手第一件事不是打开看而是先统一格式。很多开源数据下载下来是GeoJSON、CSV甚至XMLArcGIS虽然能直接拖进来但处理效率和字段支持都不如转换成GDB中的要素类。我一般会新建一个文件地理数据库命名为“ChinaLakeReservoir.gdb”把所有面状边界统一存进去。入库之前需要关注三个东西坐标系、字段类型、字段编码。比如从OSM下载的数据默认是WGS84地理坐标属性里可能有“name”“natural”等字段中文名可能显示乱码。乱码问题在Shapefile里特别常见本质是文件编码和ArcGIS默认解码不一致。我的习惯是在ArcGIS Pro里直接用“地理处理”里的“要素类转要素类”工具把源数据导入GDB导入时指定坐标系为CGCS2000或WGS84编码问题基本能在导入环节解决掉。另外要给数据补关键字段。原始数据不一定都有“类型”和“面积”字段而后续专题图制作又离不开这两个。我在入库后通常会新增两个字段Type文本型存“湖泊”或“水库”和AreaKM2双精度存面积平方千米。面积字段不要图省事用Shape_Area因为不同投影下的Shape_Area含义不一样统一用“计算几何”生成以平方千米为单位的字段最稳。2. 图层整理从原始数据到能直接出图的面状数据2.1 属性筛选与类型区分拿到手先别急着做图原始面状边界图层里往往不只湖泊水库还有河流双线、坑塘、湿地等要素。第一步是用属性筛选把水体类型区分开。如果用的是OSM数据可以在“natural”或“water”字段里筛出lake、reservoir、water等值如果用的是科研机构数据属性表里一般有“类型”或“名称”字段同样的筛选原理。筛选时我建议先选中再导出不要直接在原图层上删除其他要素否则后期想找回河流边线时就很麻烦。比如要筛水库属性查询可以这样写water reservoir OR name LIKE %水库%这个表达式是把标签字段为水库、以及名称含“水库”的要素都选出来。筛选完以后右键数据→导出数据保存到GDB里命名为“水库面状边界”。同理湖泊筛选可以配合“name LIKE %湖%”来查漏再手工确认一下大型湖泊是否都被选中。做完筛选后把两个图层叠加起来查看凡是出现重叠或者缝隙的放到后面拓扑修复环节处理。还需要注意一个细节很多数据源里小图斑特别多有些只有几十平方米的坑塘碎片也会被筛进来。这时候需要用面积阈值过滤。我在属性表里对AreaKM2字段做一次“按属性选择”把小于0.1平方千米的要素统一剔除。这样处理以后图面干净很多专题图的可读性明显提升。2.2 坐标系统一定义投影和投影转换的区别按照实践统计超过七成的数据整理问题出在坐标系统一上。这里必须先说清楚两个概念定义投影和投影栅格/矢量要素它们完全不是一回事。ArcGIS中“定义投影”工具做的是修改坐标系元数据不改变坐标数值。比如一份数据原本是WGS84经纬度坐标但文件里没有坐标系信息ArcGIS打开时显示未知单位这时候用定义投影告诉软件“这是GCS_WGS_1984”。而“投影”工具才是真正把经纬度坐标转换为平面坐标比如把WGS84转为Albers等积圆锥投影。做面积统计和专题制图时最忌讳的就是图层停留在经纬度地理坐标系直接算面积那样计算结果是平方度完全不能用。中国的全国性专题图我习惯用Albers等积投影参数可以设置为双标准纬线25°N和47°N中央经线105°E。这个投影能保证全国范围内面积变形最小画出来的湖库等压线、边界形状也比较真实。实操步骤是这样数据管理工具→投影和变换→要素→投影输入要转换的湖泊水库面图层输出坐标系选择Albers等积圆锥投影。转完以后再用计算几何重新算一遍面积确保所有面状要素的面积和实际匹配。如果你只做某个省或某个流域的项目也可以直接用CGCS2000高斯克吕格投影按所在分带选择中央经线局部形变更小。2.3 拓扑检查与修复尖锐角、压盖和缝隙怎么处理面状边界数据最让人头疼的问题就是拓扑错误。三个高频问题分别是尖锐角、要素重叠、面之间留缝隙。这些问题不修后面做叠加分析、缓冲区分析时结果完全不可信。先说要怎么发现这些问题。ArcGIS中的“拓扑”工具集可以直接建立拓扑规则比如“不能重叠”“不能有缝隙”。操作路径是目录窗口→新建拓扑→选择要素类→添加规则。针对湖泊水库数据我一般添加两条规则不能重叠、不能有缝隙。建立完拓扑以后把拓扑结果加载进地图错误要素会以红色标出。实际操作中很多小伙伴会发现拓扑检查出来的错误太多手动改到崩溃。我的经验是分两步走先用“修复几何”工具批量修复简单问题比如自相交、空几何、短线等再用拓扑编辑器手动处理压盖和缝隙。修复几何在数据管理工具→要素下能找到极其实用跑一遍能消掉七八成错误。对于尖锐角ArcGIS没直接提供“查尖锐角”按钮但可以自己做。具体思路是使用“要素折点转点”工具把面边界的所有折点转成点再给每个点计算转角然后筛选出转角过小的点。更省事的办法是采用常用第三方工具比如ET GeoWizards、ArcScan的相关工具箱原理也是算折点夹角。边界数据存在尖锐角出图中会出现很多难看的“刺”打印时甚至会被误认为是制图错误。处理完重叠和缝隙以后还有个常用的合并操作如果一个水库被多块面碎片表示可以用“融合”工具按“名称”字段融合把分散的面合并成一个完整面。如果要做更大尺度的聚合比如把整个区域的湖泊统一成湖群轮廓用“聚合面”工具更合适它能按设定距离把邻近面连接起来。如果边界锯齿严重可以用“增密”工具增加折点再用“简化”工具做平滑处理但这两个操作会改变边界形状比例尺允许的情况下再用慎用。3. 专题图制作把边界图层变成能汇报的图件3.1 符号化按面积分级、按类型分类数据清理完毕专题图制作才是让数据“说话”的关键环节。第一步是符号化。做全国湖泊水库专题图时我通常把面状边界图层按类型和面积双重渲染。如果按类型分类就打开图层属性→符号系统→类别→唯一值值字段选择Type手动给“湖泊”和“水库”设置颜色。湖泊我习惯用浅蓝色系水库用带一点紫调或者青调的颜色图例一目了然。如果按面积分级方法是符号系统→数量→分级色彩值字段选择AreaKM2。分级方法的选择很重要。ArcGIS提供了自然间断点分级法、相等间隔、分位数、几何间隔等选项。做湖库面积分级时我最常用的其实是自然间断点分级法和几何间隔。自然间断点能根据数据分布特点自动找到类别边界适合面积差距悬殊的湖库数据几何间隔适合大跨度数据能让小湖小库也有较好的色差表现。相等间隔只适合数据分布非常均匀时使用否则大部分湖泊会落在同一个颜色级别里图面非常单调。颜色方案要注意面积小的用浅色面积大的用深色但不要直接用深浅蓝色单色渐变容易和底图混淆。可以搭配“浅蓝→青绿→墨绿”或者“浅黄→橙→红”的渐变方案图面对比会更清楚。透明度也是一大利器面状图层叠加遥感影像做底图时把透明度调到30%左右既能看清湖泊边界又不遮挡影像细节。3.2 标注和文字处理乱码、重叠、避让做完符号化就是标注。把湖泊水库名称标注到图上专题图才算完整。标注设置路径是图层属性→标注勾选“标注此图层中的要素”标注字段选择名称字段。如果名称字段存在乱码先检查属性表里的值是否正常如果属性表正常但图上显示乱码多半是字体问题把标注字体改成微软雅黑或黑体基本能解决。做全国范围的湖库标注密集区域文字叠压问题很严重。解决思路有三条第一条是在标注属性里开启“放置属性”把“移除重叠标注”选项打开第二条是设置标注权重把湖泊面图层的要素权重调高让标注尽量落在边界内部第三条是给标注设置“标注优先级”大湖优先显示小湖可以适当舍弃。还有一个实用技巧就是把标注转为注记。右键图层→将标注转换为注记可以把标注变成图上的独立文本要素之后手动拖动调整位置非常方便。特别是做省级、国家级专题图时注记是配置图面的标准做法比每次刷新地图就重新排一遍标注要稳定得多。“不要压盖线”一直是被反复提到的制图要求。河流边界、道路边界和湖库边界的线要素如果被标注压住图面严谨性会大打折扣。我的建议是在标注放置属性中设置“边界权重”和“要素权重”同时把需要清晰显示的湖泊边界线符号加粗利用线图层“压盖”视觉优先级让标注避开边界。3.3 布局与出图图例、比例尺、指北针和导出细节制图阶段从数据视图切换到布局视图。在ArcGIS Pro中点击“插入→新建布局”选择合适的纸张尺寸。A4横向或者A3横向是汇报图最常见的尺寸。在布局中插入数据框以后逐项添加标题、图例、比例尺、指北针、坐标格网要素。图例设置经常出问题。默认图例会把所有图层都列一遍包括底图、边界、辅助图层非常乱。操作方法是选中图例在属性中只保留湖泊水库面图层的符号项并且把图例标题改为“图例”或“湖泊水库分布”不要用图层默认名称。如果符号化是按面积分级图例中会自动出现各级面积范围直接用即可。比例尺建议设置为图形比例尺不要用数字比例尺图形比例尺在缩放出图时不会失真。指北针用简单的正北箭头即可太花哨的样式反而影响学术图件的严肃性。导出出图时几个细节值得注意。输出EPS或AI格式做进一步美工处理时ArcGIS默认导出的矢量格式中文字可能会打散后续在AI里改字非常痛苦。我的经验是导出EPS时勾选“嵌入字体”选项如果没有这个选项就先导出带文字的PDF再在AI中打开PDF文件。导出PNG/JPG用于PPT汇报时分辨率设300dpi背景设置为白色避免默认透明背景在放映时出现灰格。如果栅格数据有nodata空洞在符号系统里给NoData值设置特定的填充色或者用湖泊边界做掩膜只显示边界内的遥感底图数据。4. 从边界到分析采样点布设与插值出图进阶用法4.1 采样点设计按面积均分、随机布点面状边界图层可以做的第一件进阶事就是采样点布设与插值分析。比如做湖泊水质监测需要在湖面上均分采样点手动布点不现实用ArcGIS工具可以自动化完成。如果是在单个湖泊边界内均匀布点可以用“创建渔网”工具生成规则格网再通过“按位置选择”把落在湖泊内的格网点筛选出来。如果是多种类型、多个湖库最简单的是用“创建随机点”工具约束范围选择湖泊水库面状图层设置最小距离来避免采样点过近。工具界面中的“点数”可以填一个固定值也可以选一个字段按要素属性控制点数比如按面积大小分配采样点数。更精准的做法是“按面积均分布点”。思路是先在属性表中按面积计算每个湖库的采样点数采样点数 Round(AreaKM2 / 10, 0)也就是每10平方千米设置1个采样点然后使用ArcGIS Pro的“生成要素类内的采样点”或“按要素创建随机点”工具字段选择采样点数。这样面积越大的湖库采样点越多符合实际监测的密集度要求。除了布点采样点数据本身也可以做成分布专题图。点图层符号化按某项水质指标比如总磷浓度分级用圆形符号大小表示浓度高低叠加湖库面状边界作为底图就能很直观地反映污染空间分布特征。4.2 插值方法选择反距离权重、克里金和样条函数有了采样点以后就可以做空间插值把点数据扩展到整个湖面的区域分布。ArcGIS里最常用的是反距离权重、克里金和样条函数三种方法。反距离权重插值的原理很简单离采样点越近的位置估值越接近采样值权重是距离倒数的幂函数。“zpower/p值”默认取2适合数据分布相对均匀、没有明显趋势的水质参数。优点是计算快、参数少缺点是对采样点密度非常敏感点密度高的区域会出现“牛眼”现象。克里金插值则基于半变异函数建模考虑空间自相关性。在ArcGIS的Geostatistical Analyst模块中可以提供多种变异函数模型球面、指数、高斯做之前先探索数据看趋势和方向性。克里金适合做科研级制图能给出预测误差结果但参数调优需要经验上手成本高。样条函数插值的优势是生成的表面非常光滑适合做地形、气温等连续变化变量。但样条函数容易在数据边缘产生过冲值比如浓度出现负数或异常高值所以在水质插值中我不是很推荐。实际做水质专题图的流程一般是空间分析工具→插值分析→反距离权重输入采样点图层Z值字段选浓度指标输出像元大小设置为500米或1000米。插值完成后用“按掩膜提取”工具以湖泊水库面状边界图层作为掩膜把插值结果裁剪到湖区范围这样做出来的专题图只显示湖面内的分布不会把陆地区域也填充上颜色。4.3 植被类型图的制作思路扩展很多做生态调查的朋友会问“ArcGIS怎么制作植被类型图”其实方法论和湖库专题图完全同源。手里如果有植被样方点数据可以先用“核密度分析”或“反距离权重插值”生成连续分布面再做“重分类”把连续值划分成植被类型等级。如果手头是土地利用分类栅格那就更直接转成面状矢量图层后按地类字段符号化再叠加湖泊水库面状边界把水体和植被类型放在同一张图上生态本底格局一目了然。做这类图时有一个通用原则矢量面状边界是骨架属性分类是灵魂符号化的意义在于让读者一眼看懂空间分布差异。无论是植被类型、土壤类型还是水质等级操作逻辑都是先分类、再配色、最后布局出图熟练一套流程以后举一反三即可。5. 常见问题与排查技巧实录5.1 安装与启动License Server没反应、Pro打不开怎么办涉及ArcGIS环境的高频问题我直接列个速查表问题现象常见原因解决思路License Server点击启动后没反应Windows服务未启动或端口被占用在服务管理器中查看“ArcGIS License Manager”状态若停止则启动检查27000-27009端口是否被其他程序占用新装的License Server无法启动.NET环境、VC运行库缺失安装对应运行库以管理员身份运行License Server AdministratorArcGIS Pro点击打开后没反应用户配置损坏、显卡驱动过于老旧删除或重置用户配置模板更新显卡驱动检查是否有多个许可服务冲突新建工程后白屏/界面卡死高分屏缩放比例导致右键程序→属性→兼容性→更改高DPI设置勾选“替代高DPI缩放行为”其中“License Server没反应”是我见到最多的绝大多数情况是Windows服务没起来或者杀毒软件把后台服务拦截了。排查第一步先打开任务管理器服务标签页确认ArcGIS License Manager服务状态。如果显示“已停止”右击启动后再打开License Server Administrator查看可用性如果启动失败立刻看Windows事件查看器里的错误日志十有八九是端口被占用。ArcGIS Pro没反应的情况相对复杂因为它默认在线登录许可服务校验失败时会卡在启动界面。这时先确认网络能正常访问授权服务器然后把“AppData\Roaming\Esri\ArcGISPro”目录改名备份让Pro重建用户配置实测能解决大部分启动即闪退的问题。5.2 数据处理高频坑字段计算、点转面、导入CAD文字乱码属性表字段计算是很多人卡壳的地方。比如想把“类型”字段的英文值批量替换成中文直接在字段计算器里写Replace([water], reservoir, 水库)前提是解析程序选为VB脚本。如果用Python解析器语法要换成!water!.replace(reservoir, 水库)两者的写法差异是新手最常踩的坑。还有一个更常见的需求判断文本字段是否为空。在字段计算器里取空值不能直接写[字段]要写IsNull([字段])这段判断在VB脚本里返回布尔值。Python写法则是!字段! is None点转面的操作也有讲究。原始点数据要转成湖泊水库面先确保点数据里有分组依据字段比如湖泊名称。然后数据管理工具→要素→点集转面在“分组字段”里选“名称”才能把同一个湖泊的所有点转换成一个完整面而不是每个点各自生成一个破碎面。实际操作中点顺序也会影响面形状建议处理前先对点数据按X坐标和Y坐标排一次序。导入CAD文字乱码的问题同样高频。CAD文件里的标注、注记导入到ArcGIS变成问号或乱码核心原因是CAD的编码方式与ArcGIS不一致。我的处理习惯是在CAD软件里先把文件另存为低版本DXF格式再在ArcGIS Pro中使用“CAD转地理数据库”工具导入坐标系选择正确后文字内容基本能正常显示。如果还是乱码用“数据互操作→Quick Import”功能在参数里手动指定编码为GB18030或UTF-8基本能解决。5.3 出图与显示NoData背景、EPS导出、在线地图导入出图阶段的显示问题也很磨人。栅格底图或者插值结果有NoData区域时默认会显示成黑色或透明网格。处理方法是右键图层→符号系统→NoData值的颜色改成白色或“无颜色”然后在导出时把背景色设为纯白这样出图才干净。关于EPS格式导出ArcGIS里如果把带中文标注的面状图层导出为EPS再用AI打开中文文字很容易变成乱码或路径。我的避坑经验是尽量不要直接从ArcGIS导出EPS而是先导PDF再用AI或者Inkscape打开PDF字体嵌入最完整。如果非要EPS可以在导出选项里取消勾选“转换为路径”保留文本对象AI里二次编辑会省很多事。导入在线地图做底图是现在出专题图的标配。ArcGIS Pro中可以直接搜索“天地图”服务国内用户配置好天地图Key以后把影像底图或矢量底图拖进地图即可。ArcMap中则通过“添加数据→来自ArcGIS Online→天地图服务”加载。底图加载进来以后先检查坐标系是否和湖泊水库面图层一致如果不一致在“地图属性”中设置数据框坐标系让底图动态投影否则面状边界会和底图发生偏移。最后再说一个“压盖线”的实操设置GIS出图经常要求道路线、河流线不能被图斑压住。在线图层的“符号系统”中把线符号的“连接属性→遮挡”设置为“从不遮挡”再在面图层的“要素权重”中把权重值调高就能有效控制压盖现象。我个人这些年做湖库专题图的体会是数据工程占了七成功夫符号化只占三成。只要把底数底图整理规范面状矢量边界图层没有拓扑错误坐标系准确出图就是水到渠成的事。我现在习惯把一套符号化方案存成ArcGIS Pro的样式文件新项目直接复用边界图层一换、名称一改专题图几分钟就能出一张。这个方法你也可以试试后面做类似项目会越来越顺手。
阅读完成 · 觉得有帮助?
咨询建站