
简介这是一套面向GIS学习者、城乡规划与地理数据分析人员的南宁市数字高程模型数据包。数据采用三十米分辨率的高程栅格反映南宁市地表起伏配套的矢量文件涵盖市域行政边界两类数据叠加后可开展地形渲染、坡度坡向分析、淹没模拟及用地适宜性评价等应用为城市规划、地质灾害评估与环境研究提供基础数据。压缩包共十二个文件总大小约七十七兆字节除核心高程栅格与行政边界外还包含投影定义文件、金字塔加速文件、属性表及索引文件可完整导入ArcGIS、QGIS等主流平台直接使用无需额外转换。目前已有千二百一十八人学习下载数据完整度较高打开即可基于南宁市范围进行空间分析适合考证练习、课程设计或科研底图引用也可作为区域地形制图与三维展示的原始素材。 搞GIS的同行应该都有这种体会真正花时间的往往不是分析本身而是找数据、清数据。最近我在做南宁市的地形分析项目用的就是这套广西南宁市dem数字高程tif数据含市范围shp文件。一个压缩包把南宁市范围的数字高程模型TIFF栅格数据、市域边界SHP矢量文件全部装好解压后直接拖进ArcGIS或QGIS就能开工。这篇文章我就从数据格式、获取途径、处理流程、常见坑位四个维度把它聊透给想用DEM做地形分析但还没入门的同学一条完整路径。1. 数据三件套拆解DEM、TIF、SHP到底分别是什么1.1 DEM数字高程模型地形分析的地基DEM全称Digital Elevation Model简单说就是用一张栅格图去描述地表的起伏情况每个像元里存的是一个海拔高度值。它不是卫星拍的照片而是经过雷达测高、光学立体像对或激光点云插值得到的定量数据。以南宁市来说地处桂南丘陵盆地整体地势东北高、西南低市区海拔大概在70到200米之间北面的高峰岭一带可以到400米以上而马山、上林方向的山地更高一些。这样中等起伏、喀斯特地貌混杂的地形恰恰是DEM最典型的应用场景。有了DEM之后你可以做的事情非常多生成坡度、坡向判断哪些区域适合建设或耕种。做水文分析提取河网、汇水区和分水岭南宁市区内涝分析经常会用到。生成等高线替代传统的人工测绘或纸质地形图。做通视分析比如设计城市观景塔或者基站选址。没有DEM这些分析都需要手动数字化等高线工作量成倍增加。所以拿到一份覆盖南宁市全境、分辨率足够高的DEM等于给后续所有地形分析打好了地基。1.2 GeoTIFF自带坐标的栅格格式很多刚接触GIS的朋友拿到一个.tif文件就以为是普通图片双击打开也能显示但一拖进ArcGIS发现它自带位置信息这才反应过来它和JPG、PNG有本质区别。TIF在GIS领域通常指的是GeoTIFF它是在标准TIFF图像格式的基础上内嵌了地理参考信息。这套参考信息通常包含几个核心部分地图投影和坐标系比如WGS84经纬度、UTM投影、国家2000坐标系。像元大小也就是每个格网代表地面多少米。数据范围即该栅格覆盖的经纬度或平面坐标边界。举个实际例子一份ALOS 12.5米分辨率的南宁DEM如果它的坐标系是WGS84那么它的像元大小不是12.5米而是对应的度数大概0.000112度左右X方向约相当于12.5米Y方向也差不了多少。很多人在这一步栽了跟头拿着度分辨率的栅格直接去算面积或距离结果全部出错。所以拿到TIF文件的第一件事不是急着打开看而是确认它的空间参考有没有定义、是投影坐标还是地理坐标。如果像元单位是度你后续做缓冲区、算坡向时一定要先投影到合适的坐标系比如WGS84 UTM 49N南宁市跨北纬约22-24度对应UTM 49N带。1.3 SHP矢量边界与ZIP打包规范和效率一个都不能少SHP是Shapefile矢量格式由ESRI在90年代推出。注意它不是一个单独文件而是一个文件族至少要包含.shp几何数据、.shx几何索引、.dbf属性数据这三个基础文件理想情况下还要有.prj坐标系、.cpg字符编码等辅助文件。所以你在拷贝SHP数据时千万别只复制一个.shp而是要整个文件族一起拷贝否则打开时会报错或者属性表变乱码。标题里的“市范围shp”指的就是南宁市行政边界矢量。它的作用非常大拿到它之后就可以把原始的DEM数据裁剪成南宁市的形状去掉周边来宾、崇左、贵港等市的多余区域这样后续任何统计计算比如算平均海拔、坡度分级面积都不会把外面不属于南宁的区域算进去。同时在做专题图时这个边界也是天然的出图范围。最后说ZIP这个压缩包。GIS数据动辄几百MB甚至几个GB用ZIP打包传输是再正常不过的事情。但这里必须提醒一句如果你用的是低版本WinRAR或某些在线解压工具遇到包含中文文件名的大数据包时容易出现解压后文件损坏或乱码的问题。建议优先用7-Zip或者Bandizip解压时选择“解压到当前文件夹”保持目录结构完整。2. 南宁市DEM数据从哪来主流数据源与精度怎么选2.1 主流DEM数据源横向对比很多人在热搜里找“12.5米DEM下载”和“opentopography下载DEM教程”说明对现有免费DEM资源的了解还不够系统。我把目前能免费获取的、覆盖南宁市且精度靠谱的几类数据做了个对比大家可以直接按需选取数据源分辨率覆盖情况优点缺点SRTM 30米约30米全球覆盖最成熟、资料多、无缝拼接部分地区有空洞城区细节一般ALOS AW3D30约12.5米全球覆盖分辨率高、细节丰富文件较大下载分块多ASTER GDEM约30米全球覆盖覆盖完整、免费噪声相对明显局部有条带COP30 / Copernicus GLO-30约30米全球覆盖精度好、CEOS认证部分区域有云遮挡痕迹地理空间数据云中国区域多源数据国内下载快需要注册数据版本较多下载流程对新手不太友好对南宁市这种地级市规模的项目我个人最推荐的是ALOS 12.5米。理由很简单南宁属于丘陵与盆地交接地带30米分辨率的SRTM能看出大趋势但到了城中村改造、地块平整度评估这种稍微精细一点的需求12.5米能把山脊线、沟谷、低洼积水点的形态看得清楚得多。12.5米数据通常以经纬度1度乘以1度的分幅方式提供南宁市大约会落到两三个分幅里需要分别下载后拼接。2.2 OpenTopography下载流程要点OpenTopography是非常好用的DEM下载平台支持ALOS、SRTM、COP30等多种数据源。以ALOS为例流程大致是这样注册账号这个平台使用免费数据集也需要登录。在主页地图上拖动框选南宁市范围或者直接输入经纬度边界。选择数据源一般填ALOS World 3D - 30m实际输出为12.5米采样。设置输出格式为GeoTIFF坐标系选WGS 84或UTM 49N。提交任务等待邮件通知然后下载ZIP压缩包。这里有个很实用的技巧如果你只是做南宁市主城区分析不建议框选整个南宁市的行政范围因为整个南宁市面积超过2.2万平方公里整幅下载下来动辄几百MB处理起来也慢。正确做法是先下载市范围SHP然后在OpenTopography里只框选你真正要研究的区域比如青秀区加良庆区或者某一条流域范围这样数据量可以小很多。还有一个基于常见实践的补充OpenTopography也支持按自定义的上传多边形范围下载如果你已经有一个小流域边界的SHP可以传上去按这个形状裁剪下载省去了后处理裁剪的步骤。2.3 国内数据下载的补充渠道除了国外平台国内也有很多高质量DEM数据源。地理空间数据云gscloud是科学院系统的平台提供SRTM、ASTER GDEM等数据国内服务器下载速度快但注册审核比较严格。此外全国地理信息资源目录服务系统提供1:5万、1:25万比例尺的DEM成果数据服务适合对精度有官方要求的项目。使用国内平台时通常需要先画范围、选择数据集、加入下载列表最后统一打包下载。需要特别说明的是国内平台的数据分幅标准和坐标系可能与国外平台不同下载后务必确认投影信息。国家级的DEM成果常用CGCS2000坐标系或高斯-克吕格投影而OpenTopography给的是WGS84。两个坐标系在南宁这个纬度上平面差很小但对于超过一定范围的工程应用还是建议统一用同一个坐标系避免后期叠加其他数据时出现偏移。3. 拿到数据后的完整处理流程从解压到出图3.1 第一步加载数据与坐标系检查把ZIP解压之后你会得到一个.tif文件和一个.shp文件族。先用ArcGIS或QGIS新建一个空白工程然后把这两个文件拖进去。第一件事不是看着图层感叹“诶地形出来了”而是分别打开属性查看空间参考信息。如果TIF和SHP的坐标系不一致比如TIF是WGS84地理坐标系SHP是CGCS2000投影坐标系那么两者叠加后边界和地形会错位几百米后面做裁剪就是全错。统一坐标系的标准操作是使用“投影栅格”工具或“定义投影”工具把它们转成同一个坐标系。我的习惯是把所有数据统一到WGS 84 / UTM zone 49N。原因很简单投影坐标系下的单位是米后续做坡度、面积、缓冲区等分析时结果可以直接读成米而地理坐标系下单位是度很多工具要么不能直接运行要么需要内部临时转换容易出错。3.2 第二步按南宁市范围裁剪DEM坐标系确认无误后接下来最关键的一步是裁剪。ArcGIS里的工具叫“按掩膜提取”Extract by MaskQGIS里对应的是Clip Raster by Mask LayerGDAL命令行则是gdalwarp。操作步骤上我建议用上述工具而不是简单的矩形裁剪Clip Raster by Extent。原因是矩形裁剪只会把数据切成一个方方正正的区域南宁市那种不规则边界的外面部分仍然会保留等做一个统计图表时你会发现一堆无用的值混在里面。具体参数设置为输入栅格选DEM输入掩膜数据选南宁市SHP输出路径放在一个空间足够大的盘里。这里有一点容易被忽视如果SHP里面有多个面要素比如由不同城区组成的多部件面请先做一个Dissolve融合把整个南宁市合成一个面之后再去裁剪。否则裁剪结果可能只保留第一个要素的范围或者输出多个碎裂的栅格。3.3 第三步坡度、坡向、等高线这些核心分析怎么做拿到裁剪后的南宁市DEM地形分析的大幕才算真正拉开。我列举三个最常用的操作。坡度提取ArcGIS中的Slope工具Z Factor参数在南宁这种纬度上一般设为1即可除非你的数据是经纬度坐标系那需要根据纬度计算一个转换系数。输出单位选度Degrees这样等会做坡度分级时会比较直观。南宁市区坡度在5度以下区域较多而北侧山地常有超过25度的陡坡这些在结果里一眼就能分辨出来。坡向提取Aspect工具输出0到360度的坡向值代表坡面朝向。这个数据在做阳坡阴坡分析、农业种植区划时很关键。南宁的柑橘园很多分布在向阳坡你拿到坡向数据后叠加一个果园分布点就能验证选址逻辑是否正确。等高线生成使用Contour工具设置等高距为10米或20米。南宁地形相对平缓10米等高线比较合适如果只做大区域概览可以设50米。生成的等高线是一个矢量图层后续叠加到影像图或者专题图上非常有用。这三个分析做完之后建议再加一个Hillshade山体阴影图层Alpha参数选0.5左右这样叠加DEM彩色渲染后出来的地图能同时看到颜色和立体感非常适合出汇报图。3.4 批量压缩与存储的小技巧处理完的数据经常需要共享给同事或上传至网盘但原始的TIF文件往往很大。这里分享一个实际项目中验证过的压缩方式如果不再修改栅格像素就把TIF转成Cloud Optimized GeoTIFFCOG使用LZW或DEFLATE压缩通常可以把文件缩小到原来的三分之一甚至更小。同时COG格式内置了金字塔ArcGIS和QGIS打开速度会明显提升。做这一步用GDAL最方便gdal_translate -co COMPRESSLZW -co TILEDYES input.tif output_cog.tif gdaladdo -r average output_cog.tif 2 4 8 16 32这里LZW是无损压缩适合DEM这种精度敏感的栅格数据。TILEDYES表示内部使用分块存储读取时不用加载整幅图这也是为什么COG格式在浏览大影像时更流畅的原因。4. 常见问题与排查技巧实录4.1 TIF文件太大电脑卡成幻灯片怎么办很多人的电脑配置不错但一加载几百MB的DEM就卡顿。这通常不是因为机器不行而是数据没有建立金字塔。金字塔说白了就是预先生成的一系列缩小版影像软件在缩放显示时只加载当前视图对应层级的缩小版而不是加载原始全分辨率数据。解决方式有两个一是在ArcGIS中右键栅格图层选择“构建金字塔”二是用GDAL执行上面提到的gdaladdo命令。构建一次之后再次加载会流畅很多。另外在ArcGIS显示栅格时把“显示分辨率”设置为合适的粗细也能有效减轻GPU和内存压力。4.2 SHP转TXT、批量转KML这类格式问题怎么处理很多做开发或外业采集的朋友经常用到SHP转TXT简单说就是把Shapefile属性表里的坐标和属性导成文本文件。ArcGIS里可以用“Table To Excel”先导出成表格再用Excel另存为TXT。Python的话可以直接用pyshp读写import shapefile import csv with shapefile.Reader(nanning.shp) as sf: with open(nanning.txt, w, encodingutf-8) as f: writer csv.writer(f, delimiter\t) writer.writerow(sf.fields[1:]) # 跳过DeletionFlag字段 for sr in sf.shapeRecords(): lon, lat sr.shape.points[0] writer.writerow([lon, lat] list(sr.record))批量转KML也属于高频需求QGIS里的MMQGIS插件可以一键批量导出多个SHP到KML比在ArcGIS里一个个右键导出效率高很多。注意KML默认使用WGS84坐标系如果原来的SHP是投影坐标导出前要先做一次矢量重投影。4.3 ZIP解压报错Invalid ZIP Archive: could not find EOCD这个报错在解压较大或从网络传输过来的ZIP包时经常出现核心原因是ZIP文件末尾的中央目录记录EOCDEnd of Central Directory读取不到。说白了就是压缩包不完整通常由下载中断、网盘客户端提前判定完成、传输过程中字节丢失导致。按照我踩过的坑处理步骤依次是用7-Zip打开ZIP看是能列出文件列表还是直接报错。如果7-Zip能列出文件但解压时部分文件失败先把能解压的部分解出来。如果打开就报错只能重新下载优先使用浏览器直接下载而不是某些下载工具。若多次下载都报同样的错尝试换一个网络环境或使用压缩包修复工具比如DiskInternel ZIP Repair但修复成功率并不高。最关键的一招是从源头避免下载完ZIP后第一时间用7-Zip的“测试压缩文件”功能做完整性校验。如果测试结果提示错误立即重新下载不要等到解压时才发现。4.4 坐标系不一致导致的错位问题前面提到过坐标系统一但具体怎么做这里再补充一个实际案例。假设你在OpenTopography下载的DEM是WGS84经纬度而某份南宁市边界SHP是CGCS2000_3_Degree_GK_CM_108E投影坐标直接裁剪时边界会相差几十米甚至上百米。正确的处理是先将SHP用ArcGIS的Project工具转为WGS84 UTM 49N同时将DEM用“投影栅格”工具也转成WGS84 UTM 49N。特别注意“投影栅格”在重采样时选择双线性插值或三次卷积插值不要选最近邻因为DEM是连续表面最近邻会让地形出现台阶状断层。如果只是做边界叠图和裁剪不涉及高程精度也可以只转换SHP到DEM的坐标系省一次重采样。4.5 导入资源包失败、插件加载问题顺便说一下热门搜索里出现的“导入资源包失败 caused by invalid zip archive”在很多软件里都有比如SolidWorks安装时报Failed to copy spatial iop zip或者GIS插件安装时报Invalid ZIP Archive本质和解压失败是同一个问题。解决方案除了重新下载之外还有一个思路直接把ZIP用7-Zip解压成文件夹然后在软件里选择“从文件夹安装”绕开ZIP解析这一步。这个方法在QGIS插件安装、ArcGIS Toolbox导入里都验证过非常好使。5. 从DEM数据到区域分析的一点个人感想最后结合我自己的实际项目说点感性认识。我早期做地形分析犯过一个低级错误拿到一份覆盖广西全境的DEM没做裁剪直接对整个广西算坡度然后统计南宁区域的坡度均值结果出来的数值偏低后来才发现边界外大片平坦的盆地地形把均值拉低了。这个教训让我从此养成一个习惯任何区域统计之前先确认矢量边界是否精确覆盖目标区域再做按掩膜提取。另外DEM数据虽然看起来只是一个栅格文件但它反映的其实是一整套地理参考、采样策略和处理流程。同一个南宁市用SRTM 30米和ALOS 12.5米做出的坡度分级图细节差异会非常明显。所以建议有条件的话关键项目尽量用12.5米或更高精度数据前期的数据获取工作量多一点后期分析的可靠性会高很多。还有一个小技巧分享给你拿到DEM后花半小时生成一张山体阴影图并叠加到彩色高程渲染上视觉效果比裸奔的色带图好太多了。无论是写报告还是跟领导汇报这张图一摆出来专业度直接上了一个档次。数据从来不是项目的终点而是分析的起点。把DEM、SHP这类基础数据整理好、坐标系理清楚、流程跑顺了后面的分析才有底气。希望这篇文章能帮你在南宁市DEM数据处理上少踩几个坑早日把精力放到真正有价值和思考深度的分析环节去。本文还有配套的精品资源点击获取