
简介宜昌市DEM数字高程数据以30米分辨率刻画地表起伏适合GIS专业学生、地理信息行业从业者以及使用ArcGIS、QGIS等软件进行空间分析的工程师。资源覆盖宜昌市行政边界并外扩部分周边区域可直接用于地形渲染、坡度坡向提取、流域边界划分、可视域分析以及城市规划中的三维场景构建。压缩包内共12个文件既有shp格式的市级边界矢量数据及其dbf属性表、prj投影文件也有tif格式的高程栅格、tfw地理参考文件和ovr金字塔预览文件还包含用于索引的sbn、sbx、shx及xml元数据整体约63.67MB文件组织规范便于不同软件读取。目前已有824人学习下载。借助这些数据使用者可快速完成高程建模与地形指标计算也可将边界shp与DEM叠加开展洪涝风险、光照遮挡等专题分析为教学实验、科研入门和区域评估提供可靠的基础底图与练习素材。1. 一份宜昌市30米DEM数据包从解压到坡度分析的完整落地思路做宜昌市域的地形分析时最烦人的往往不是算法而是找不到一张能把整个市完整框住的DEM。网上下来的数据要么是省域大图裁不干净要么精度低到连地名都看不出来。这份资源是一份覆盖湖北省宜昌市的DEM数字高程数据分辨率30米压缩包里还带了本市级范围的shp文件。有了这两个东西你可以在ArcGIS里直接把宜昌的地形底图拉出来做坡度、坡向、山体阴影、等高线甚至是简单的汇水分析。适合做国土空间规划、流域治理、选址评估的GIS从业者也适合想拿真实地形数据练手的测绘学生。下面按实际使用顺序把这份数据的关键用法和坑都过一遍。2. DEM和shp的组合逻辑先搞清文件构成与坐标系再动手很多人拿到zip包第一反应是找到后缀为 .tif 的主文件双击试试能不能打开这没错但很容易漏掉坐标系问题。30米DEM的数据组织比普通图片要严谨得多主文件之外配套的元数据文件、投影文件甚至shp边界的编码格式都会影响后续分析是否正确。这一章先把包内文件和坐标系讲透因为后面所有操作都建立在这两个基础上。2.1 一个标准的30米DEM压缩包里面应该有什么这类高程数据常见的主格式是GeoTIFF也可能打包成IMG或DAT但无论是哪种核心信息都在同名辅助文件里。打开zip先看文件结构不要只认tif。通常一个完整的宜昌市DEM包应该包含下面这些类别我列一个清单文件类型文件扩展名作用注意事项栅格主文件.tif / .img存储高程值像元值即海拔米值域一般为几十到两千米负大值或-9999是NoData坐标世界文件.tfw / .jpw描述栅格位置与像元大小丢失后无法定位慎删坐标系描述.prj保存投影和地理坐标系WKT文本打开前先读这个决定要不要重投影辅助统计文件.aux.xml缓存统计信息和拉伸直方图没有不影响系统会重新生成边界shp.shp .shx .dbf .prj宜昌市行政范围矢量边界四个主文件缺一不可缺少任意一个shp都无法加载在ArcGIS中读取shp时如果只是把.shp拖进地图系统也会去找同名的.shx和.dbf。缺任何文件都会报“缺少Shapefile组件”的错误。不少人栽在这个细节上以为下载不完整其实只是漏了小文件。另外包里可能有Readme.txt别删里面偶尔会写数据坐标系和采集时间等关键信息。30米DEM的栅格主文件通常是一整块覆盖全市的大tif但也可能按1:10000标准分幅切成若干小块特别是从地理空间数据云下载的分幅产品。如果看到一堆带行列号的文件比如srtm_67_05.tif那说明需要先镶嵌再裁剪。记住这个判断逻辑后面第3章的Mosaic操作会用到。2.2 30米数据算什么精度它适合哪些事不适合哪些事30米分辨率意味着一个像元在地面上对应大约30×30米的正方形区域900平方米的高程取一个平均值。这个精度在宏观分析里很香但并非所有任务都适合。做市域尺度的地形类型划分、径流方向通量计算、山体阴影渲染它完全够用要是拿它去找某个村庄附近的小冲沟那结果只能说“仅供参考”。给一个参照系方便判断手里项目该不该用这一层数据分辨率地面单元大小适合场景不适合场景5米约25平方米工程选址、小流域治理大范围数据处理慢文件体积大12.5米约156平方米乡镇规划、中小水库汇水分析单体建筑级排水设计30米约900平方米市县宏观地形、坡度分区宅基地级填挖方计算90米约8100平方米省域、气候带分析市级细部地形表达宜昌地形差异很大西部是山区东部往江汉平原过渡沿江一带地势平缓。30米的数据能把这种宏观格局表达清楚但到了平坦区域比如枝江一带地面起伏只有几米栅格化的高程噪声会掩盖真实微地形。所以后面第4章会专门讲平坦区域的处理。2.3 坐标系和投影坡度算错的最大元凶这部分必须单独说因为绝大多数坡度分析翻车都栽在坐标系上。DEM的高程值单位是米而地理坐标系也就是经纬度的水平单位是度。直接把WGS1984经纬度下的DEM扔进坡度工具ArcGIS会警告水平距离与垂直距离单位不一致实际算出来的坡度要么接近90度要么全部是0度。正确的做法是先把它变成投影坐标系。投影坐标系下的水平单位通常是米这样坡度公式里的水平距离和垂直距离才统一。宜昌市经度范围约在110°E到112°E之间UTM Zone 49N中央经线111°E或者CGCS2000 3度带高斯投影都很常用。原包里的.prj文件如果是GCS_WGS_1984那就要在分析前执行投影栅格转换。shp文件也一样。本市级范围shp可能自带投影坐标也可能是经纬度边界。在ArcGIS里用“投影”工具把shp转换到DEM所在坐标系保证两者坐标基准一致。如果原始数据是WGS84而你项目的其他数据用CGCS2000别嫌麻烦必须统一不然叠加后会有肉眼可见的偏移。我的习惯是第一步就打开.prj和shp的属性表源信息先记录两个坐标系再动手操作这能省掉后面整块重来的时间。3. 解压、加载、裁剪把宜昌DEM用起来的三个必做步骤这一章直接进入实操。从解压zip开始到生成第一张坡度图为止每步都有可复现的命令或工具参数。我会同时给出ArcGIS菜单操作和GDAL命令行两种路径日常用哪个顺手就选哪个。3.1 解压与文件检查别把路径搞出中文从Windows资源管理器里右键解压是最简单的方式但遇到数据文件名带中文或者路径层级太深时ArcGIS偶尔会不识别。更稳的办法是用命令行解压可控编码。如果数据包文件名是英文直接解压如果包含中文目录名建议用Git Bash或WSL执行unzip -O gbk 宜昌DEM30m.zip -d ./yichang_dem-O gbk指定文件名按GBK编码解压解决Windows中文文件名在Linux环境下解压乱码的问题。-d ./yichang_dem把输出目录固定为当前目录下的yichang_dem方便后面对照路径。解压完成后进入目录用ls -lh查看文件大小确保tif不是0字节或几十K的破损文件。如果你的环境没有unzip用7-Zip也可以但注意解压后把顶层文件夹名改成纯英文例如Yichang_DEM_30m。中文路径在ArcGIS的历史版本里出现过“栅格数据集无法创建”的报错英文路径能绕开这个坑。3.2 在ArcGIS中加载并检查图层先看范围再看值域打开ArcMap或ArcGIS Pro把tif拖进地图再把shp拖进去。第一件事不是缩放而是右键图层点击“属性→源”看空间参考。确认DEM和shp的坐标系是否一致。如果一致继续如果不一致先记录。然后右键DEM图层选择“缩放至图层”用目测对比shp是否在DEM范围内。如果DEM是多幅小tifArcGIS加载进来会各自为政此时需要用“镶嵌至新栅格”工具搜索该工具输入所有tif像素类型选择“16 bit Signed”SRTM类数据常见或“32 bit Float”波段数填1镶嵌运算符选BLEND。输出后用“复制栅格”工具再生成一份干净的单波段文件。这一步能消除接缝和重叠区域的颜色跳变。这种检查流程别跳过。我有一次拿到某省30米DEM加载后看起来和shp完全套合结果投影一看DEM是GCS_WGS_1984shp是CGCS2000 3度带两者在平原地区偏移了将近80米。因为屏幕缩放比例小看不出来最后在公里网格上才暴露。所以源头信息比眼睛可靠。3.3 用shp裁剪DEM提取宜昌市域范围加载无误后需要把DEM裁剪到shp边界内这样能剔除周边区域数据文件体积变小分析速度也快。在ArcGIS里搜索“按掩膜提取Extract by Mask”这是空间分析模块的标准工具。参数设置如下输入栅格宜昌DEM如果是多幅用镶嵌后的tif输入掩膜宜昌市shp输出栅格指定路径命名如Yichang_dem_cut.tif环境设置里有一个关键点在“地理处理选项”的环境页签中把“处理范围”设为“与掩膜相同”输出的像元大小设为与输入DEM一致30米。否则裁剪结果可能四边多出半个像元或者被重采样成别的分辨率。不习惯用ArcGIS工具箱的话用GDAL一行命令也能完成而且确定性更强gdalwarp -cutline Yichang.shp -crop_to_cutline -dstnodata -9999 -of GTiff Yichang_dem.tif Yichang_dem_cut.tif-cutline指定边界shp-crop_to_cutline表示仅保留边界内部-dstnodata -9999把边界外的高程设为空值-of GTiff指定输出格式。这条命令在QGIS内置终端里也能跑。注意shp的坐标系必须与DEM相同否则gdalwarp会先做投影转换可能产生偏移。3.4 生成坡度和坡向图一条标准生产流坡度是DEM最常用的派生数据。在ArcGIS中找“坡向”旁边的“坡度”工具Spatial Analyst → 表面分析 → 坡度输入前一步裁剪好的tif。输出参数里有两种单位可选度和百分比。一般分析用度水土保持计算里常用百分比。宜昌山地坡度普遍较大度更直观。Z因子保持1因为投影坐标下水平和垂直都是米不需要缩放。如果输入的是经纬度坐标系ArcGIS会提示使用0.000009左右甚至更大的Z因子看到这个提示就别继续了先重投影。生成坡度图后默认灰色符号系统很难看。点击符号系统选择“拉伸”类型色带选“高程配色”或自己搭一版黄绿棕分带。进一步把连续坡度栅格重分类成标准坡度级别≤5°、5-15°、15-25°、25-35°、35°用“重分类”工具保存成整型栅格方便后续出图或面积统计。4. 30米DEM的精度边界拿到手先做这三件验证数据能显示不等于数据可靠。30米DEM在生产过程中会有无效值、内陆凹陷、平坦区域噪声等常见瑕疵。刚拿到宜昌数据时别急着做分析先花十分钟做三件验证。4.1 高程值域检查区分无效值与真实低地用“获取栅格属性”工具查看DEM的最小值、最大值。宜昌市海拔范围大约从沿江的几十米到西部山区的两千米上下如果最小值出现-32768、-9999这类极端负值说明该区域是NoData。在后续坡度计算时NoData区域会沿边界扩散。处理方式是先把NoData统一成固定空值。ArcGIS里有“设置空值”工具可以把所有非有效值比如小于某个阈值或等于-32768改为空。也可以用栅格计算器写条件式Con(IsNull(dem) | (dem 0), -9999, dem)逻辑说明Con是ArcGIS栅格计算器里的条件函数第一段是判断条件第二段是满足该条件时输出的值第三段是其他情况沿用的原值。这里把NoData或小于0的像元统一赋成-9999便于后续统一处理。注意宜昌沿江部分地区海拔确实能低到几十米所以阈值不要设成“低于50米就置空”只处理负大值和NoData。4.2 叠加矢量边界检查位置套合度验证位置精度最直接的办法是把DEM和高分辨率影像或者已有的河流shp叠在一张图里。在ArcGIS里加载宜昌的河流水系shp很多公开地理数据平台都有叠加到DEM上放大到1:10万左右观察河流线是否沿着山谷的最低处走。如果河流线往山坡上跑或者明显偏离沟谷中线说明笛卡儿坐标基准有问题。这个偏移可能来自投影转换参数。比如WGS84测定的坐标与CGCS2000之间存在几十厘米到几米的系统差在30米分辨率下肉眼几乎不可见但沿山脊线对比时能发现。如果偏差大于一个像元30米直接把DEM和shp都转换到同一个CGCS2000投影下再重新裁剪。位置验证这步不复杂但能避免你把一套错位数据用到底。4.3 平坦区域的噪声陷阱城区和水田是30米DEM最容易出噪声的地方。宜昌主城区在现代化建设中许多地块被推平但DEM像元里还保留着改造前的起伏痕迹农田则因为灌溉季积水高程值跳跃明显。这些噪声在坡度分析中会表现为短促的、毫无规律的坡度突变比如平地上突然冒出一个20度的像元。针对这种情况我一般会先做一个“焦点统计均值滤波”把每个像元周围3×3邻域的高程平均值赋给中心格然后再算坡度。在ArcGIS里搜索焦点统计邻域设为矩形3×3统计类型MEAN输出后替代原DEM。注意不要重复多次两次以上会过度平滑陡坡的真实转角会被抹掉。另外填洼Fill也是必然步骤尤其做汇水分析时。SRTM和ASTER类数据在河谷区域经常出现伪洼地不填掉的话流向计算会出现断层。ArcGIS的“填洼”工具只需输入DEM主要参数“填充阈值”保持默认即可如果生成的流向图还有断头再手动提高阈值但要谨慎每次只加10米。5. 避坑指南DEM和shp一起用最容易翻车的五个场景这一章写我遇过的高频故障全部都是“现象→原因→解决”结构。对照排查能省下不少刷论坛的时间。5.1 现象DEM加载后一整片黑什么都看不到原因栅格图层的默认拉伸方式可能把有效高程全映射到了黑色端或者NoData值被当成有效值参与渲染。常见于原始包里的.aux.xml统计信息缺失ArcGIS临时计算了错误的直方图。解决右键图层→属性→符号系统→拉伸→拉伸类型改为“百分比截断”或“标准差”数据裁剪到10%-90%区间色带重选。如果还是黑就重新生成统计信息在目录窗口中找到tif右键→属性→源→计算统计信息。注意检查值域正常30米DEM的高程单位是米不是厘米如果tif是浮点型且值域是两三千米拉伸百分比选15%-85%一般能正常显示。5.2 现象shp拖进ArcGIS提示“没有可显示的数据源”或只显示一部分原因shp配套文件缺失或者shp里的.prj定义与内容不匹配。很多下载站打包时漏了.shx或.dbfArcGIS找不到坐标和属性索引就打不开shp。解决检查压缩包中是否有.shp、.shx、.dbf、.prj、.cpg这五个文件。缺shx用其他工具重建如QGIS里的“修复数据源”但更省事的是回到下载源重新获取或者在末端补充属性信息。另外路径中不能有中文和空格把整个目录复制到纯英文路径下重试。5.3 现象坡度图看起来全是0度和90度没有中间过渡原因这是典型的坐标系问题。直接用经纬度坐标系DEM算坡度ArcGIS内部把水平距离当作度垂直距离当米计算出的人工比值就变成极端值。解决先对DEM执行“投影栅格”工具输出坐标系选择UTM Zone 49N或CGCS2000 3度带高斯投影再跑一次坡度工具。投影栅格参数里“重采样技术”选双线性Bilinear“像元大小”保持原样30。别选最近邻虽然快但会让台阶状地形更明显。5.4 现象DEM与shp边界错位相差几十到几百米原因两个数据的坐标系基准不一致。DEM是WGS84shp是CGCS2000或者DEM是经纬度shp是投影坐标。还有一种隐蔽情况shp的.prj写的是北京54但实际坐标是西安80系如果是第三方转换过的边界文件建议复查。解决右键shp→属性→源先看坐标。然后用“投影”工具把shp转换到DEM的坐标系。如果两个都是地理坐标但基准椭球不同就需要用“创建自定义地理变换”或者直接重新下载套合过的边界shp。对30米分辨率来说WGS84和CGCS2000的差异在毫厘级肉眼看不出大幅错位一定是因为一个用了投影坐标一个用了经纬度。5.5 现象多幅DEM拼接后出现明显的接缝色差或断崖原因不同图幅之间的采集时间、传感器标定或后处理流程不一致导致接缝位置的高程坡度突变。拼好后直接做坡度分析时接缝处会出现一条带状“伪山脊”。解决“镶嵌至新栅格”工具的镶嵌运算符选BLEND系统会在重叠区域做渐变色加权平均。如果接缝还明显把拼接结果再做一次3×3中值滤波强度不要太大。更专业的做法是用“按颜色镶嵌”但这只针对色彩影像DEM按高程值混合即可。经验是先镶嵌再滤波滤波接缝区域比滤镜整个区域好得多。6. 把30米DEM榨干山体阴影、等高线与地形剖面到这章数据已经能正常用了但30米分辨率的价值不止坡度坡向那么简单。三个进阶操作能让它产出更接近成果图的素材。山体阴影Hillshade是制图里最常用的底图。ArcGIS里搜索“山体阴影”输入裁剪后的DEM方位角设为315°太阳高度角设为45°Z因子默认1。输出之后把它放在原始DEM图层上面在图层属性里把透明度调到40%60%再叠上宜昌市界shp和道路线就是一张能直接出制图效果的地形底图。投影坐标系下的山体阴影不需要改Z因子但如果你在WGS84经纬度下硬算阴影方向会错乱。等高线提取方面在ArcGIS里用3D Analyst的“等高线”工具。输入DEM后等距设置需要根据地形决定。宜昌西部山区地势陡峭设20米到50米能得到合理线间距东部平原设5米到10米但30米DEM的折线会出现大量锯齿。所以我习惯先提取原始等高线再加一个“平滑”工具方法选PAEK算法容差设30米。平滑后的等高线再裁到shp范围内导出为dxf就能在CAD里继续编辑。需要提醒的是别试图从30米DEM里提取2米等高距那是在考验数据分辨率结果只会是一团麻线。地形剖面图是检验数据是否能用的一招妙棋。在ArcGIS Pro中用“创建剖面图”工具在DEM上画一条穿越宜昌市南北的线比如从长阳山区延伸到枝江平原系统会立刻生成一条高程曲线。如果曲线平滑过渡说明数据质量尚可如果出现频繁相邻落差超50米的锯齿那就要怀疑原始数据是不是碰到了数据空洞回到前面第4章补预处理。这让我想到一个习惯每次拿到新的栅格数据我都强制走一遍“坐标系查看→值域检查→范围核对→噪声滤波”的全套流程哪怕只是用来出一张示意图也绝不跳过。等习惯成自然你会发现很多“数据坏了”的问题其实是加载顺序和数据源没理清。希望这些积累能帮你在宜昌地形数据上少走几步弯路。本文还有配套的精品资源点击获取