ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

黔南州12.5米DEM数据处理全流程:从7z解压到坡度与流域提取

黔南州12.5米DEM数据处理全流程:从7z解压到坡度与流域提取 简介这份资源面向GIS从业者、地理信息专业师生及区域规划研究人员提供贵州省黔南布依族苗族自治州12.5米分辨率数字高程模型并附带市级行政范围矢量边界可用于地形分析、环境模拟、城市规划与灾害评估等场景。压缩包共12个文件约219.69MB以tif栅格数据为核心配合dbf属性表、prj坐标系统、tfw世界文件、ovr与sbn/sbx金字塔缓存以及shp、shx等Shapefile组件兼顾高程读取、坐标定位与快速浏览。相比常见30米DEM12.5米精度能更细致刻画山脊、山谷与坡度变化行政边界则便于按区域裁剪统计。目前已有244人学习下载适合需要高精度地形底图与边界数据的中高级GIS用户直接加载分析。1. 黔南州 12.5 米 DEM 拿到手之后先搞清楚这套数据能干什么黔南布依族苗族自治州位于贵州南部喀斯特地貌发育峰丛、洼地、河谷交错海拔落差从四百多米一直拉到近两千米。这种地形条件下做水文分析、坡度坡向提取、工程选址或者三维场景搭建第一步都绕不开一份靠谱的 DEM。12.5 米分辨率意味着每个栅格像元对应地面约 156 平方米比常见的 30 米 DEM 精细一倍多能看清中小尺度的山脊线和沟谷走向又不像 5 米、2 米那样动辄几十 GB 让人望而却步。标题里这份数据是 7z 压缩包里面除了 DEM 栅格还附带了市级范围的 shp 文件——这个组合很实用栅格管高程矢量管边界裁剪拿到就能直接进 ArcGIS 或 QGIS 干活。适合做流域分析的水利从业者、做地形可视化的 GIS 工程师以及需要黔南州地形底图做规划或科研的人。但 7z 解压、坐标系确认、DEM 与 shp 对齐这几步每年都有大量人翻车下面把整条链路拆开讲。2. 7z 包解压与数据完整性校验别让第一步就卡住2.1 为什么这类地理数据偏爱 7z 而不是 zip地理空间数据有个特点单个 GeoTIFF 动辄几百 MB 到几个 GBshp 虽然小但往往配套 dbf、shx、prj 一堆文件。用 zip 压缩压缩率一般传起来慢7z 用的是 LZMA2 算法对栅格这种有大量连续相同值的数据压缩率能高出 30% 到 50%。所以国内做数据分发的尤其是 DEM 这类大栅格普遍选 7z。代价就是 Windows 自带解压不支持得装 7-Zip 或者用支持 7z 的工具。另一个常见场景是分卷压缩。黔南州全域 12.5 米 DEM 如果按整州拼一张体量不小分发时经常切成.7z.001、.7z.002这种分卷。分卷包必须全部下载齐缺一个都解不开而且要用 7-Zip 右键第一个分卷选「提取到当前位置」不能单独解压中间某个卷。2.2 Windows 和 Linux 下的解压命令Windows 图形界面操作简单但做批量处理或者跑在服务器上命令行更靠谱。7-Zip 安装后会把7z.exe加到路径直接调用# Windows解压到指定目录-o 后面不能有空格 7z x 黔南州12.5米DEM.7z -oD:\qiannan_dem -y # 查看压缩包内容但不解压先确认里面有什么 7z l 黔南州12.5米DEM.7zLinux 下多数发行版仓库里有 p7zip装完命令是7z或7za# Debian/Ubuntu 安装 sudo apt install p7zip-full # 解压-p 指定密码如果有无密码可省略 7z x qiannan_dem.7z -o./qiannan_dem -y # 分卷包只对第一个卷操作7z 会自动找后续卷 7z x qiannan_dem.7z.001 -o./qiannan_dem参数说明x是保留目录结构解压e是把所有文件平铺到当前目录地理数据千万别用e会把 tif 和 shp 混在一起-o指定输出目录注意-o和路径之间没有空格这是 7z 命令行的经典坑-y表示全部确认避免交互卡住脚本。2.3 解压后先做三件事解压完别急着往 GIS 里拖先确认三件事。第一看文件清单里 DEM 是什么格式常见是.tif也可能是.img或.asc。第二看 shp 文件是否成套——一个完整的 shapefile 至少要有.shp、.shx、.dbf、.prj四个同名文件少一个都打不开或者丢失坐标系。第三看有没有.prj文件它决定了坐标系没有它后面裁剪必然对不上。# 列出解压目录确认 shp 配套文件齐全 ls -lh ./qiannan_dem/ # 重点看有没有 .shp .shx .dbf .prj 四件套如果 shp 缺了.prj可以用 ArcGIS 的「定义投影」补但前提是你知道原始坐标系。国内这类行政边界 shp 常见的是 CGCS2000 或 WGS84 地理坐标系DEM 则可能是投影坐标系比如 UTM 或高斯克吕格。两者不一致时裁剪会直接报错或者结果错位这是后面避坑章要重点讲的。3. DEM 与 shp 的坐标系对齐裁剪能不能成全看这一步3.1 地理坐标系和投影坐标系到底差在哪很多人栽在坐标系上是因为没分清「地理坐标系」和「投影坐标系」。地理坐标系GCS用经纬度表示位置单位是度比如 CGCS2000、WGS84投影坐标系PCS是把球面展平到平面上单位是米比如 UTM Zone 49N、CGCS2000 3 Degree GK Zone 35。DEM 做坡度、坡长、汇流这些分析时必须用投影坐标系因为「度」没法直接算距离和面积。而行政边界 shp 经常是地理坐标系。判断方法很简单打开属性看单位。如果显示 Degree 就是地理坐标系显示 Meter 就是投影坐标系。两者不一致先统一再裁剪。3.2 用 QGIS 做坐标系转换和裁剪的最小流程QGIS 免费、跨平台处理这套数据足够。假设 DEM 是投影坐标系shp 是地理坐标系流程是先把 shp 转成和 DEM 一致的投影再裁剪。# 用 GDAL 命令行做坐标系转换比开图形界面快 # 第一步查看 DEM 的坐标系 gdalinfo qiannan_dem.tif | findstr AUTHORITY # 第二步把 shp 重投影到 DEM 的坐标系 ogr2ogr -t_srs EPSG:32649 qiannan_boundary_proj.shp qiannan_boundary.shp # 第三步用重投影后的 shp 裁剪 DEM gdalwarp -cutline qiannan_boundary_proj.shp -crop_to_cutline \ -dstnodata -9999 qiannan_dem.tif qiannan_dem_clip.tif逻辑说明ogr2ogr的-t_srs指定目标坐标系EPSG:32649 对应 UTM 49N覆盖贵州南部gdalwarp的-cutline指定裁剪边界-crop_to_cutline让输出范围紧贴边界而不是保留原图幅-dstnodata把边界外区域设为 -9999方便后续分析时排除。参数上-dstnodata的值要和 DEM 本身的无效值区分开很多 DEM 默认无效值是 -32768 或 -9999设重复了会混淆。3.3 裁剪后必须验证的两件事裁剪完不是就完事了。第一检查输出范围是否和 shp 边界吻合可以在 QGIS 里叠加看也可以用gdalinfo看角点坐标。第二检查像元值有没有异常比如边界处出现 0 或者极大值那通常是 nodata 没设对。# 查看裁剪结果的统计信息重点看最小最大值和 nodata gdalinfo -stats qiannan_dem_clip.tif如果最小最大值出现 -9999 以外的异常值比如 0 或 65535说明原始 DEM 的 nodata 定义和裁剪时设的不一致需要回去用gdal_translate -a_nodata重新指定。这一步不做后面做水文分析时洼地填充会把异常值当真实高程结果全错。4. 避坑与排查黔南 DEM 处理里最容易翻车的 5 个点4.1 7z 解压报错「文件损坏」但压缩包明明没问题现象解压到一半提示 CRC 校验失败或者「不可预料的压缩文件末端」。原因通常不是包坏了而是分卷没下全或者下载过程中某个分卷字节数不对。黔南这种整州数据分卷常见少一个.7z.00X就解不开。解决核对分卷数量和文件大小重新下载缺失或异常的那个卷确保所有分卷在同一目录下再对第一个卷操作。4.2 shp 拖进 ArcGIS 提示「缺少空间参考」现象shp 能打开但坐标系显示 Unknown裁剪时提示无法投影。原因压缩包里 shp 的.prj文件丢失或者分发时被过滤掉了。解决先确认原始坐标系——国内行政边界多为 CGCS2000 或 WGS84用 ArcGIS「定义投影」工具补上再和 DEM 统一。注意「定义投影」是给没有坐标系的数据贴标签「投影变换」才是真正转换坐标两者别搞混。4.3 DEM 和 shp 叠加后边界错位几百米现象裁剪出来的 DEM 边界和 shp 对不上整体偏移。原因两者坐标系不一致且偏移量正好是地理坐标系和投影坐标系之间的差异。解决用gdalinfo和ogrinfo分别查两者坐标系统一到同一个投影坐标系再裁剪。如果偏移是几十米级别可能是基准面差异比如 WGS84 和 CGCS2000 之间需要做基准面转换而不是简单重投影。4.4 裁剪后 DEM 出现大片 0 值现象边界内出现成片 0 值看起来像空洞。原因原始 DEM 的 nodata 值被设成了 0裁剪时边界外区域也用了 0两者混在一起。解决用gdal_translate -a_nodata 0先把原始 DEM 的 nodata 改成 -9999再裁剪。或者裁剪时显式指定-dstnodata -9999确保边界外和原始无效值区分开。4.5 Linux 下 7z 命令找不到现象7z: command not found。原因只装了p7zip没装p7zip-full前者只有 7za 基础功能不支持某些 7z 特性。解决sudo apt install p7zip-full装完用7z而不是7za。如果还是找不到检查 PATH或者用绝对路径/usr/bin/7z。5. 从 DEM 到可用地形产品坡度、晕渲和流域提取的实操参数拿到裁剪好的黔南 DEM真正值钱的是从它派生出来的地形产品。这里挑三个最常用的坡度、山体晕渲、流域边界把参数和验证方法讲透。坡度提取在 ArcGIS 里用「坡度」工具输出单位选 DegreeZ 因子是关键参数。黔南 DEM 如果是投影坐标系单位是米Z 因子设 1如果是地理坐标系单位是度Z 因子要设约 111320赤道处一度对应的米数不设这个坡度会严重偏小。QGIS 里用「坡度」工具同理Z 因子在高级参数里。# 用 GDAL 生成坡度-p 表示输出坡度而非坡向 gdaldem slope qiannan_dem_clip.tif qiannan_slope.tif -p -s 1.0 # 生成山体晕渲-az 方位角 -alt 高度角常用 315/45 gdaldem hillshade qiannan_dem_clip.tif qiannan_hillshade.tif \ -az 315 -alt 45 -z 1.0参数说明-s 1.0是垂直 exaggeration 因子投影坐标系下保持 1.0-az 315是光源方位角315 度西北方向是制图惯例能让山脊阴影自然-alt 45是光源高度角45 度适合大多数地形太低阴影过长太高立体感弱。流域提取用 ArcGIS 的水文分析工具链填洼、流向、流量累积、栅格计算器提取河网、河流链接、流域分割。填洼阈值默认就行黔南喀斯特地区洼地多填洼后能消除大量伪洼地。流量累积阈值决定河网密度12.5 米 DEM 建议从 500 开始试太小河网碎太大主干河都提不出来。提取完用 shp 边界裁剪流域再和实际水系图对比验证。验证方法坡度图叠加晕渲看纹理是否合理流域边界叠加 DEM 看是否沿山脊线走。如果流域边界横切山脊说明流向计算有问题多半是填洼没做或者 DEM 有异常值。我一般会先在小范围试参数确认无误再跑全州避免跑几小时出来发现参数错了。这套流程走通一次以后换任何地区的 DEM 都能复用希望帮到你。本文还有配套的精品资源点击获取
返回列表