从HydroSHEDS到USGS:一站式获取与ArcGIS处理全球及美国流域边界
1. 全球流域数据源HydroSHEDS与HydroBASINS详解搞水文研究的朋友们都知道获取准确的流域边界数据是开展工作的第一步。HydroSHEDSHydrological data and maps based on SHuttle Elevation Derivatives at multiple Scales是目前全球范围内最权威的水文数据集之一由世界自然基金会WWF和美国宇航局NASA联合开发。这个数据集的神奇之处在于它基于航天飞机雷达地形任务SRTM的 elevation 数据通过复杂的算法处理生成了全球统一的水文网络。我最早接触HydroSHEDS是在2015年做跨境流域研究时当时为了找一套覆盖整个东南亚的流域数据几乎跑断了腿。后来发现HydroSHEDS提供的HydroBASINS数据简直就是救命稻草。HydroBASINS是HydroSHEDS项目下的子产品专门提供矢量格式的流域边界数据它把全球划分成了12个层级level01-level12的嵌套流域就像俄罗斯套娃一样从大流域到小流域一层套一层。实际操作中我建议从官网下载时注意几个关键点分辨率选择标准版15 arc-second适合大多数研究但如果你做小尺度精细分析可以考虑30 arc-second的高分辨率版本数据格式提供了Shapefile和GeoPackage两种格式我个人更推荐GeoPackage因为它单个文件就能包含所有属性数据管理起来更方便层级选择level01-03适合大尺度分析如洲际研究level04-08适合中等尺度如国家或大河流域level09-12则适用于小流域精细研究2. 美国本土专属USGS WBD数据集解析虽然HydroBASINS覆盖全球但如果你专门研究美国地区USGS美国地质调查局的WBDWatershed Boundary Dataset会是更好的选择。这套数据的精细程度和本土化处理是HydroBASINS无法比拟的特别是在处理行政边界与水文边界的关系时表现尤为出色。WBD采用了一套独特的HUCHydrologic Unit Code编码系统把美国本土划分为2位到16位不同层级的流域单元。简单来说HUC-2代表最大的21个水资源区域如密西西比河流域是08HUC-4细分到222个子区域HUC-6进一步细分为370个流域HUC-8约2200个亚流域HUC-10约20000个集水区HUC-12最精细的划分超过100000个子集水区我在处理密西西比河项目时就深有体会当需要精确到县级行政区划内的流域边界时WBD的HUC-12数据简直是神器。下载时可以直接通过USGS的TNM Download v2平台它提供了几种很实用的筛选方式按HUC级别筛选按行政区域州、县筛选按地图交互选择按流域名称搜索3. ArcGIS数据处理全流程实战拿到原始数据只是开始真正的挑战在于如何用ArcGIS把这些数据处理成可用的格式。下面我就以密西西比河流域为例详细演示整个处理流程。3.1 数据准备与预处理首先把下载的Shapefile加载到ArcGIS中。这里有个小技巧如果数据覆盖范围太大比如整个北美的HydroBASINS可以先按属性筛选出目标流域。对于密西西比河它的HydroBASINS编码通常是712可以用属性查询语句PFAF_ID LIKE 712%对于WBD数据则可以用HUC编码筛选HUC12 LIKE 0802%3.2 坐标系转换与统一两种数据源默认的坐标系可能不同HydroBASINS通常使用WGS84地理坐标系EPSG:4326WBD数据常用NAD83投影坐标系EPSG:4269建议统一转换为适合你研究区域的投影坐标系。比如密西西比河流域我习惯用USA Contiguous Albers Equal Area ConicEPSG:102003转换方法是打开【数据管理工具】→【投影和变换】→【要素】→【投影】选择输入要素和输出位置选择目标坐标系设置地理变换参数NAD83到WGS84需要这一步3.3 边界坐标提取技巧很多模型需要的是纯文本格式的边界坐标这时就需要用到折点提取功能。我推荐使用【要素折点转点】工具而非简单的导出坐标因为它能保留原始折点的顺序可以同时提取多个多边形的边界会自动生成点ID方便后续处理具体操作打开【数据管理工具】→【要素】→【要素折点转点】选择输入要素设置输出点要素类位置勾选识别内部折点如果需要运行后使用【添加XY坐标】工具将坐标写入属性表4. 数据源对比与选择建议在实际项目中我经常需要根据研究需求选择合适的数据源。以下是两种数据源的详细对比特性HydroBASINSUSGS WBD覆盖范围全球美国本土最小流域单元约10km²level12约1km²HUC16更新频率不定期当前版本基于2019年数据持续更新部分地区每年更新拓扑关系包含上下游连接信息仅包含层级关系属性信息相对简单包含详细的水文单元元数据最佳适用场景全球或跨国研究美国本土精细研究根据我的经验选择时需要考虑几个关键因素研究尺度大尺度选HydroBASINS小尺度选WBD研究区域美国境内优先WBD境外只能用HydroBASINS模型需求如果需要上下游拓扑关系HydroBASINS更合适精度要求城市水文研究可能需要WBD HUC16级别的数据5. 常见问题排查与优化技巧在这个工作流中有几个地方特别容易出问题我把自己踩过的坑总结一下问题1坐标提取后顺序混乱解决方案在【要素折点转点】工具中一定要勾选保持折点顺序选项或者在导出后按ORIG_FID和VERTEX_INDEX字段排序。问题2超大流域处理卡顿优化方案对于像密西西比河这样的大流域可以先用【要素转线】把多边形转为线用【增密】工具适当增加节点密度再用【要素折点转点】提取坐标问题3WBD数据存在缝隙或重叠处理方法使用【拓扑检查】工具规则选择不能有缝隙和不能重叠然后使用【修复拓扑】工具自动修正。问题4HydroBASINS属性表过于简单扩展方案可以通过PFAF_ID字段关联其他HydroSHEDS数据集如flow accumulation、river network等来丰富属性信息。6. 进阶应用自动化处理脚本如果你经常需要处理这类数据建议用Python脚本实现自动化。以下是使用ArcPy的示例代码import arcpy def extract_watershed_coordinates(input_shp, output_txt): # 设置工作空间 arcpy.env.workspace in_memory # 第一步投影转换 projected projected.shp arcpy.Project_management(input_shp, projected, arcpy.SpatialReference(102003)) # 第二步提取折点 vertices vertices.shp arcpy.FeatureVerticesToPoints_management(projected, vertices, ALL) # 第三步添加XY坐标 arcpy.AddXY_management(vertices) # 第四步导出为文本 with open(output_txt, w) as f: fields [ORIG_FID, POINT_X, POINT_Y] with arcpy.da.SearchCursor(vertices, fields) as cursor: for row in cursor: f.write(f{row[0]},{row[1]},{row[2]}\n) # 清理临时数据 arcpy.Delete_management(projected) arcpy.Delete_management(vertices)这个脚本可以直接在ArcGIS的Python窗口运行也可以设置为脚本工具反复使用。我在处理批量数据时这个脚本帮我节省了至少80%的时间。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2484133.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!