资讯动态

全中国DEM数据下载与处理:数据源选择到Python等高线叠加

发布时间:2026/9/9 22:37:38 来源:尧图企业网站定制
简介这份资源是覆盖全中国范围的DEM数字高程模型数据主要面向GIS从业者、测绘人员以及城乡规划、环境分析等需借助地形数据的用户可用于坡度提取、流域分析、三维地形可视化等常见工作。资源包共7个文件包含tif高程栅格、prj投影参数、tfw配准信息、dbf属性表与ovr金字塔等可被ArcGIS、QGIS等主流GIS软件直接读取使用压缩包大小约28.9MB。数据显示全国范围分辨率为0.01度能较细致地反映地表起伏变化。目前已有超过1.3万人学习浏览数据适合学术研究、教学演示或工程前期分析时快速调用附带的文件结构也便于导入、裁剪与进一步预处理对新接触DEM数据处理的用户较为友好。 你要是最近在地图、GIS或者土木工程相关的社区里泡过大概率见过这类提问“全中国dem数据去哪里下载”“有没有人整理过全国12.5米DEM的打包分享”我每次看到这种问题都挺替提问者着急软件已经装好了、需求也想清楚了偏偏卡在最不该卡的地方——找数据。DEMDigital Elevation Model数字高程模型通俗讲就是把地表高低起伏变成一张带海拔值的栅格图坡度坡向分析、洪水淹没模拟、选址日照、道路选线、城市三维建模全绕不开它。这篇文章不打算讲教科书就围绕“全中国dem数据”这个词把这个圈子里大家真正会搜的东西串一遍到哪下、怎么下、下来怎么处理才能落到项目里。刚入门的学生、转行做数据分析和被交付日期逼着出图的地信从业者都可以照着走。1. 全网找“全中国dem数据”多数人卡在了同一个误区1.1 “全中国DEM”不是一个现成文件很多人默认既然叫“全中国dem数据”那肯定有个官方打包好的文件点一下下载就完事。实际不是这样。主流公开DEM产品都是按规则格网切片发布的。ALOS AW3D30按1°×1°瓦片组织SRTM按1°×1°瓦片组织ASTER GDEM同样是1°×1°瓦片。按中国的经纬度跨度粗略估算陆域范围内的1°瓦片就有2000多张再算上沿海岛屿和外海区域数量还要更多。所以社区里出现“全国DEM打包”要么是有人花力气拼接整理过的要么是拿30米重采样冒充12.5米的再要么就是压缩包里缺了关键瓦片。先认清这个现实你才不会到处求一个万能网盘链接而是老老实实按自己的研究范围去组织数据。1.2 DEM还是DSM这个坑比想象中深热词里有一条“dsm生成dem”说明不少人在真实项目里被这个概念绊过。DSMDigital Surface Model记录的是地表“表面”树冠、房顶都算DEM强调去掉地物之后的裸地高程。ALOS World 3D虽然经常被当作DEM下载但它本质上是一套DSM在城区和密集林区会整体偏高几米。网上传的“ALOS 12.5米DEM”绝大多数是AW3D30 30米产品重采样到12.5米不是真的原生12.5米立体像对。如果做水文分析、淹没区计算这种系统性偏差会被放大如果只是想出张能看的山体阴影图问题不大。想从DSM用普通滤波“生成”DEM基本不现实建筑物和树冠不是规则噪声专业做法是原始点云做地面点分类或者借助多源数据做融合。2. 全国尺度DEM数据源怎么选12.5米、30米、90米不是越大越好2.1 主流公开数据源对比先给一张我平时选型的对照表方便直接抄作业数据源名义分辨率覆盖范围典型精度备注SRTM V4.190米北纬60°到南纬56°垂直误差约10-16米高山有空洞完全公开适合全国概览SRTM 1弧秒30米同上细节优于90米局部仍有空洞公开USGS EarthExplorer可下ALOS AW3D3030米社区常见12.5米重采样版全球垂直精度约4-5米山区表现好空洞少JAXA公开12.5米版要看来源ASTER GDEM V330米南北纬83°覆盖全但噪声明显公开适合填洞参考Copernicus GLO-3030米/90米全球基于TanDEM-X质量稳定公开商用注意查阅许可2.2 为什么“12.5米”这个热词这么吸引人12.5米这个数字在规划、水利和自然灾害领域确实卡在一个很舒服的位置比30米更能看清沟谷、断层和微小地形起伏又不像2米、0.5米那样数据量吓人、价格高昂。所以很多教程默认推荐“ALOS 12.5米”久而久之就成了一个被传播的标准答案。但你要明白市面上绝大多数12.5米数据是从30米重采样得到的真实信息量还是30米。这不代表不能用只是别指望它能分辨独立房屋或小土坎。判断一个数据是不是“原生分辨率”有个土办法看文件名或元数据里有没有“AW3D30”“ALOS World 3D”字样再看发布机构是JAXA还是第三方下载站。2.3 全国范围选数据我的判断标准如果我算全国尺度的宏观指标比如整个流域的地形起伏度、全国坡度分级直接用90米或30米就够了分辨率再高边际收益很低。如果是省级、市级或者单个流域级项目再上12.5米重采样版它能提供更好的沟道细节。如果项目点位小到一座镇、一个矿区那就别再纠结公开免费数据直接去找商业高精度数或无人机航测。一句话先定比例尺和工作范围再选分辨率这个顺序不能反。再补充一个判断如果项目涉及国家基本比例尺制图公开全球数据未必满足规范里的精度要求但如果只是科研分析、可行性研究、初设阶段的地形理解90米、30米、12.5米完全够用。不要被甲方一句“要全国最新DEM”吓住先问清楚“用在哪、出什么图、什么比例尺”再决定要不要上高精度商业数据。3. OpenTopography下载ALOS 12.5米DEM一条能跑通的完整链路3.1 实操步骤从圈定范围到拿到GeoTIFF社区里关于下载的教程不少但很多都是截图堆出来的老教程界面一改就对不上。我按当前能用通的流程写一遍打开OpenTopography官网并注册登录。这个站点目前是学术界下载全球DEM最友好的入口。顶部选择Dataset在Global Dataset里找“ALOS World 3D - 30m”。这里说明一下页面上写30m提交后部分区域会提供12.5m的重采样选项或者你事后自己用GDAL重采样为12.5m。用鼠标在地图框选取范围或者上传GeoJSON、Shapefile、KML作为研究边界。如果要做严格的研究区裁剪建议直接上传边界的Shapefile避免手动画框时多选或少选。在Output Settings里选择输出GeoTIFF坐标系可以选WGS84地理坐标系也可以按项目需求选UTM带号。提交任务系统计算后会把下载链接发到注册邮箱。大范围区域需要排队我试过从几分钟到几小时不等。拿到压缩包之后先别急着解压对照文件清单看一眼瓦片命名确认覆盖范围完整。3.2 全国大范围下载分块比一把梭更可靠OpenTopography对单次任务的面积和像素量都有限制所以别想着一次把全中国拉下来。我习惯的做法是先把研究区域划分成1°×1°或0.5°×0.5°的格网然后用格网边界批量往OpenTopography里丢。这个过程看着笨但好处是单任务失败不会拖垮全局哪个瓦片下载失败就重提哪个每个瓦片自带地理坐标信息后面拼接时方便检查压缩包体积小解压和缓存都能用普通电脑完成。如果你要的是省级以上范围还有个替代路径上USGS EarthExplorer下载SRTM 1弧秒按航带批量挑选文件或者去JAXA的AW3D30官网按经纬度框选。两个渠道的文件后续处理逻辑是一样的。无论从哪个平台下载第一时间记下数据集的版本号和发布日期。DEM数据版本更新很频繁不同版本之间部分山区高程差异可能超过10米。记录来源是对自己也对未来读者负责。4. 用Python把DEM变成能用的底图读取、拼接、等高线与DXF叠加4.1 第一步用rasterio读元数据别两眼一抹黑很多人下载完DEM就急着丢进ArcGIS或QGIS里叠图结果坐标对不上就开始怀疑数据坏了。其实用Python先读一眼元数据很多问题当场就能定位。下面这段是我每次拿到新DEM都会跑的第一段代码import rasterio src rasterio.open(aw3d30_xxx_12_5.tif) print(CRS:, src.crs) print(边界:, src.bounds) print(分辨率:, src.res) print(波段数:, src.count) print(无效值:, src.nodata) band src.read(1) print(高程最小值:, band[band ! src.nodata].min()) print(高程最大值:, band[band ! src.nodata].max())这里最关键的三行是CRS、无效值和分辨率范围。后缀是.dem的文件也别慌很多.dem其实是ASCII格网或旧版USGS DEM格式用GDAL的gdalinfo先看一下确认格式之后再用rasterio或GDAL统一转成GeoTIFF后续所有操作会省心很多。4.2 多幅拼接先用VRT别急着merge下载回来的瓦片是一张张的拼接是绕不开的活。我的建议是第一步永远先构建VRT虚拟栅格而不是直接跑gdal_merge.py。VRT不复制数据只是生成一个索引文件速度快、不占磁盘后面重投影、裁切都能直接喂给它gdalbuildvrt china_all.vrt tile_*.tif如果确认研究区域不大、数据量可控再真正合并成单文件gdal_merge.py -o china_30m.tif -co COMPRESSDEFLATE -co BIGTIFFYES -n -32768 tile_*.tif注意-n参数给出的无效值要和源数据的nodata一致不然拼接边缘会出现一圈黑边或巨大的负值坑。合并完成后再用gdalinfo复查一次CRS和无效值这一步不能省。4.3 DEM转等高线、再转DXF和CAD图纸叠起来热词里“dem dxf 叠加 python”指的就是这个场景把DEM变成等高线导出成DXF再与已有的CAD地形图或管线图叠加。做法不复杂核心是两条GDAL命令。先生成山体阴影和彩色晕渲便于肉眼检查gdaldem hillshade input.tif hillshade.tif -az 315 -alt 45 gdaldem color-relief input.tif color_ramp.txt relief.tif再生成等高线可以直接输出成DXFgdal_contour -i 10.0 -a ELEV -f DXF input.tif contours.dxf其中-i 10.0是等高距山区地形变化大可以用20米或更大的等高距平缓地区用5米。如果后续要用Python做叠加建议先生成GeoPackage或Shapefile再用geopandas读取分析gdal_contour -i 10.0 -a ELEV input.tif contours.gpkgimport geopandas as gpd contours gpd.read_file(contours.gpkg) ax contours.plot(columnELEV, cmapterrain, figsize(10, 10))叠加的关键是坐标系一致。CAD图纸里如果已经是CGCS2000国家坐标系DEM导出的DXF还在WGS84地理坐标下两条线永远叠不上。所以导出DXF前先用gdalwarp把DEM重投影到项目坐标系再转等高线这一步的重要性高于任何参数调优。5. 下载后最容易翻车的三件事坐标系、空洞和拼接内存5.1 坐标系混用图纸对不上的头号凶手业内常说的CGCS2000和WGS84在中国大陆大部分区域平面误差在米级范围内直接叠加有时看不出大问题但如果DEM是WGS84地理坐标而CAD是CGCS2000分带投影坐标那就是“经纬度坐标直接当平面坐标用”的问题偏差能到你怀疑人生。更隐蔽的是Web Mercator很多在线工具导出默认投影是EPSG:3857一旦混进投影坐标系的项目里距离和面积会严重失真。拿到数据第一件事就是确认CRS如果和项目坐标系不一致用GDAL一步到位转换gdalwarp -overwrite -s_srs EPSG:4326 -t_srs EPSG:xxxx input.tif output.tif -r bilinear -co COMPRESSDEFLATE重采样方法我习惯用bilinear保留地形过渡的平滑性做分类或栅格计算时才考虑nearest。5.2 空洞和异常值先诊断再填SRTM在陡峭山区经常出现空洞ALOS也有少量无效格网。看到黑斑就急着填不一定对。先用统计看空洞占比import rasterio import numpy as np src rasterio.open(input.tif) band src.read(1) nodata src.nodata void_pct (band nodata).sum() / band.size * 100 print(f无效像素占比: {void_pct:.3f}%)占比不高时可以用GDAL的fillnodata做邻域插值gdal_fillnodata.py -md 20 -si 2 input.tif output.tif如果空洞占比超过10%尤其是成片出现在某个山系或冰川区域插值出来的高程可信度很低建议回到数据源换一套数据交叉验证。ASTER GDEM的优势就在这里它没有空洞虽然噪声大但用来补ALOS或SRTM的洞很合适。5.3 全国12.5米拼接的体积账算完你就冷静了最后说说我一直反对的“全国一个tif”思路。不妨算一笔账12.5米×12.5米的一个像素大约156平方米中国陆地面积按960万平方公里算需要的栅格数量在600亿量级就算用16位整型存储也要超过100GB浮点型直接翻倍到200GB以上。这还只是不建金字塔、不做边缘重叠的基础开销一旦加上颜色表、金字塔和瓦片缓存普通工作站内存先被挤爆。所以务实的做法是全国尺度出宏观图用90米或30米数据速度和质量都均衡12.5米数据按省级、流域或项目边界分块管理不要强行拼接大tif务必切成COG并建金字塔浏览才不卡。gdaladdo -r average china_30m.tif 2 4 8 16 32我自己的习惯是每个研究区一个文件夹里面保留原始瓦片、合并后的tif、处理脚本和一份README记录数据源、版本、下载日期和坐标系。这样项目过半年翻出来还能说清楚每个数字是怎么来的。DEM这东西看着只是一张图背后全是数据组织和坐标系的基本功。希望这篇能把“找数据”的门槛再压低一点。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价