QGIS加载天地图与Sentinel-2影像下载预处理全流程指南

发布时间:2026/10/3 15:43:43
QGIS加载天地图与Sentinel-2影像下载预处理全流程指南 本来想随便用在线影像凑合一下但真正做项目出图的时候根本没法交代。后来折腾了一圈最后固定下来的方案就是QGIS配合天地图做在线底图需要正式数据的时候再去下载指定区域的Sentinel-2影像做分析。这套流程我能完整跑通而且每一步都可以自由控制不会有在线服务说停就停的问题。这篇博文我会把整个使用链路拆分清楚包括天地图密钥的申请、QGIS里加载瓦片底图、按矢量范围批量下载高分辨率遥感影像以及下载之后最关键的图像预处理环节。不管你只是需要一张底图来做地图排版还是想拿影像做具体的分类和识别分析这套方案都够用。1. 为什么选QGIS加天地图的组合先说结论QGIS加上天地图是目前免费方案里最稳的一套组合。很多人第一反应是装Google Earth或者用ArcGIS在线底图但实际用下来在境内访问Google系底图特别不稳定ArcGIS在线影像的更新频率又让人着急最后都得去找第三方缓存数据版本和时效都没法保证。天地图是国家地理信息公共服务平台提供的服务数据来源规范访问在国内基本不存在障碍而且它提供了多种版本的影像底图和注记图层可以直接用标准协议接入QGIS。从技术层面看QGIS本身支持WMTS、WMS、XYZ Tiles这几种在线地图服务协议天地图同时支持WMTS和REST接口所以接入方式非常灵活。我推荐的是在QGIS的XYZ Tiles里直接添加天地图的标准瓦片地址操作最快刷新也最可控。这种方式本质上就是告诉QGIS“去哪个网址取瓦片、瓦片的行列号怎么拼接”QGIS会按照当前视图范围自动计算需要加载哪些瓦片地图缩放平移时动态请求用起来跟本地数据一样顺滑。另外天地图的坐标系很友好。它同时提供CGCS2000经纬度投影和Web墨卡托投影两种版本对应EPSG:4490和EPSG:3857。默认情况下QGIS新建工程用的就是EPSG:3857所以直接用Web墨卡托版天地图不需要做任何重投影加载之后直接跟矢量数据叠加不会出现偏移错位的问题。如果后续要和国土、规划类的CGCS2000数据对接切到EPSG:4490版本就能保持坐标系完全一致。选择遥感影像下载源的时候我同样优先考虑免费且有稳定更新源的数据。Sentinel-2是欧空局哥白尼计划的开放数据10米空间分辨率覆盖全球5天重访周期对大多数项目级别的研究和分析已经足够。Landsat系列30米分辨率作为补充备用NDVI计算、土地利用分类、水体提取这些常见需求Sentinel-2都能覆盖得很好。2. 环境准备与核心思路2.1 QGIS安装与版本选择如果还没装QGIS直接去官网下最新版就行我目前用的3.28以上版本功能完整度很高。Windows环境下安装包是图形化安装一路下一步就好。macOS用户注意下载对应芯片版本。Linux用户能用apt或snap装但建议还是从官网下载独立安装包避免系统源里的版本太旧。装完之后建议顺手把界面语言调成中文在设置-选项-用户界面翻译里选简体中文。另外强烈建议把默认数据存储路径改到一个不含中文和空格的目录后续处理影像数据会少很多莫名其妙的编码问题。注意QGIS的Python环境是内置的后续如果要跑数据处理脚本直接用内置的Python控制台就行不需要自己再用系统Python重新安装。但如果你想把QGIS和外部Python脚本打通建议用conda单独建环境互不干扰。2.2 天地图服务与遥感数据的获取策略这套方案的核心思路是三条线并行第一通过XYZ Tiles加载天地图用于导航定位、目视解译和地图出图底图。第二通过Python脚本在欧空局或USGS等平台按矢量范围批量检索下载Sentinel-2影像作为定量分析的原始数据源。第三在QGIS中完成下载影像的预处理和出图形成数据处理闭环。这样设计是为了把在线浏览和离线分析彻底分开。在线底图解决“看什么”的问题离线影像解决“算什么”的问题。实际做项目时我会先加载天地图确定研究区范围然后再用Python脚本去检索需要的数据最后把下载好的影像拖进QGIS叠加分析。整条链路清晰不绕路。2.3 核心依赖工具梳理除了QGIS本体真正操作时还会用到这些工具先整理清楚后面才不会手忙脚乱天地图开发者密钥TK注册后免费申请用来拼接WMTS/XYZ瓦片地址。Python环境用于编写数据搜索下载脚本。GDAL相关库用来做影像坐标信息读取和格式转换。QGIS内置的处理工具箱用于裁剪、投影转换、波段合成等批量操作。一个矢量范围文件GeoJSON或Shapefile指定你真正想下载的区域这是“指定区域下载”的核心。这些工具里天地图密钥是最容易卡住新手的一步注册流程和关键参数我下一部分完整说明。3. 在QGIS中加载天地图的详细实操3.1 注册天地图账号并申请服务密钥打开天地图官网先注册开发者账号。个人用户注册就行了注册时需要填写邮箱和手机号做验证。登录之后进入控制台选择“创建应用”。应用类型建议选“浏览器端”因为这个密钥是用来在QGIS这类桌面端应用里拼接URL的浏览器端密钥的配额限制对个人用户来说已经够用。创建成功后系统会给一个很长的字符串这就是访问天地图服务的TK参数。天地图官方要求所有瓦片请求的URL末尾都加上tk你的密钥否则返回的是空数据或者错误提示。很多人在QGIS里添加天地图之后发现加载不出来超过一半的原因是TK没填进去或者是密钥类型选错了。申请完密钥之后先在一个新的浏览器标签页里测试一下直接访问下面这个地址https://t0.tianditu.gov.cn/img_w/wmts?SERVICEWMTSREQUESTGetTileVERSION1.0.0LAYERimgSTYLEdefaultTILEMATRIXSETwFORMATtilesTILEMATRIX3TILEROW1TILECOL2tk你的密钥如果浏览器能正常返回一张图片说明密钥没问题可以继续后面的步骤。如果返回的是XML报错检查一下密钥是否复制完整或者刷新一下控制台看看额度是否有异常。3.2 添加天地图XYZ Tiles服务地址打开QGIS在左侧图层面板找到“XYZ Tiles”右键选择“新建连接”。这一步是加载天地图最快捷的方式不需要安装额外插件也不需要写代码。天地图官方提供的常规服务包括影像底图、影像注记、矢量底图、矢量注记、地形晕渲等几种。做遥感应用最常用的是影像底图和影像注记的结合也就是卫星图加地名标注。我这里整理几个最常用的URL模板直接用的时候替换掉你的TK即可影像底图Web墨卡托 https://t0.tianditu.gov.cn/img_w/wmts?SERVICEWMTSREQUESTGetTileVERSION1.0.0LAYERimgSTYLEdefaultTILEMATRIXSETwFORMATtilesTILEMATRIX{z}TILEROW{y}TILECOL{x}tk你的密钥 影像注记Web墨卡托 https://t0.tianditu.gov.cn/cia_w/wmts?SERVICEWMTSREQUESTGetTileVERSION1.0.0LAYERciaSTYLEdefaultTILEMATRIXSETwFORMATtilesTILEMATRIX{z}TILEROW{y}TILECOL{x}tk你的密钥 矢量底图Web墨卡托 https://t0.tianditu.gov.cn/vec_w/wmts?SERVICEWMTSREQUESTGetTileVERSION1.0.0LAYERvecSTYLEdefaultTILEMATRIXSETwFORMATtilesTILEMATRIX{z}TILEROW{y}TILECOL{x}tk你的密钥在新建连接对话框里把URL粘贴进去名称随便填比如“天地图影像”。有个细节QGIS的XYZ Tiles连接会自动识别{z}/{x}/{y}这几个占位符所以天地图URL里的TILEMATRIX、TILEROW、TILECOL参数要手动替换成QGIS支持的花括号占位符形式。上面给出的地址本身已经是适配QGIS的写法复制过去就能用。配置完成后点击“添加”图层列表里就多了一组天地图服务。展开连接列表双击对应的子图层地图窗口就能看见影像了。如果加载后没有内容不要急后面单独开一节讲排查方法。3.3 解决天地图在QGIS中的坐标系与偏移问题天地图影像加载显示没问题之后你可能会遇到一个很隐蔽的问题底图跟自己的矢量数据对不上整体偏移几十米甚至几百米。这不是你操作错了而是坐标系不匹配导致的。我反复测过天地图的web墨卡托版本坐标基准用的是CGCS2000但投影方式和通用web墨卡托略有区别。QGIS工程默认CRS是EPSG:3857理论上可以覆盖但如果你手头的矢量数据是WGS84经纬度EPSG:4326或者地方坐标系叠加时就会出现偏移。最有效的解决方式是在添加数据之后检查当前工程的CRS设置确保工程、矢量数据、在线底图三者都处于同一坐标系下。如果不是建议在QGIS右下角的CRS状态栏里切换到正确的CRSQGIS会实时重投影不需要改源文件。另外如果你要的最终成果是CGCS2000坐标系的成果那在线底图就换用上面提到的以4490或w结尾的投影集配合同样CGCS2000的矢量数据投影转换过程就可以省掉避免二次投影损失精度。3.4 加入注记图层优化出图效果只有影像底图没有文字标注图面看着总是少点什么。最简单的办法是再加一个天地图影像注记的XYZ连接加载方式一模一样。添加之后把注记图层的透明度稍微调整一下比如设置成80%不透这样地名显示清晰又不遮挡影像上的地物细节。图层顺序务必是注记在上、影像在下。出图导出时这两层一起导出就是一张带完整地名标注的影像地图。还有一个出图小技巧把天地图影像和注记都添加到工程后在打印布局里拖进来适当放大地图比例尺再用“导出为图片”勾选“仅在绘制范围内”导出的图件质量比直接在图层窗口截图好得多。4. 下载指定区域遥感影像从检索到落地的完整过程4.1 数据源配置与账号准备下载指定区域遥感影像我用的主力数据源是Sentinel-2。原因前面讲过分辨率10米够用免费更新频率高。下载之前需要注册一个数据平台账号。我常用的两个平台一个是欧空局哥白尼数据空间生态系统Copernicus Data Space Ecosystem数据最全更新最快。另一个是USGS EarthExplorer界面稍旧但兼容性好。两个平台都需要注册账号都是免费的用学校或单位邮箱注册通过速度快。对于一般需求我更推荐用Copernicus Data Space Ecosystem因为Sentinel系列数据源都在它上面查询下载一站式而且支持直接用脚本API搜索下载后面自动化批量下载时优势很明显。4.2 按指定范围批量检索的Python脚本如果只是偶尔下载一两景影像在网页端手动框选区域下载就好。但如果涉及多期时序数据、整个县区多景拼接或者要跑模型需要成百上千景影像人工下载会崩溃。这时候必须写脚本自动化处理。我用的方法是用Python的eodag库来完成数据检索与下载它统一了多个数据平台的接入接口只需要配置好账号信息就能用。先把库安装上pip install eodag然后用一个精简的脚本完成“按范围搜索、按云量过滤、按时间过滤、批量下载”全流程。import json from datetime import datetime from shapely.geometry import shape, mapping from eodag import EODataAccessManager from eodag.api.core import EODataAccessManager as EODAG # 读取研究区域矢量边界 aoi_path your_aoi.geojson with open(aoi_path, r, encodingutf-8) as f: aoi_geojson json.load(f) aoi_geom shape(aoi_geojson[features][0][geometry]) # 初始化接入管理器 eodag EODataAccessManager() # 配置数据源参数以Copernicus Data Space为例 eodag.set_preferences( providercopernicus_dataspace, username你的用户名, password你的密码, ) # 搜索指定时间范围和云量的Sentinel-2数据 product_type S2MSI2A # L2A级产品已做大气校正 start datetime(2024, 5, 1) end datetime(2024, 6, 30) results eodag.search( productTypeproduct_type, geomaoi_geom.wkt, startstart, endend, cloudCover30, # 云量小于30% descendingTrue, # 最新的优先 ) # 输出搜索到的结果列表 for prod in results: print(prod.properties[title], prod.properties[id]) # 开始批量下载 for prod in results: prod.download()这个脚本的思路是先读取指定区域的矢量边界然后连上数据中心按时间、云量条件过滤出符合条件的影像列表最后逐条下载。实际测试跑起来五景左右的影像同时下载基本不会出问题。如果不想装Python环境也没关系Copernicus网页端的界面可以在线绘制范围并选择时间、云量人工挑一景需要的也能搞定。只是范围一旦涉及多景拼接人工操作会极其痛苦脚本方式才是正道。4.3 影像在QGIS中的加载与展示下载下来的Sentinel-2数据通常是一个压缩包内部是多个波段单文件每个波段对应一个JPEG2000或GeoTIFF格式的文件。直接用QGIS打开会看到缺少色彩渲染的灰度图这也是很多人第一次处理遥感影像时满脸问号的地方——明明下载的是彩色卫星图怎么打开是黑白的原因在于Sentinel-2的L2A产品默认存储的是各波段独立的反射率数据要看到真彩色影像需要在QGIS里进行波段合成。用“栅格-杂项-构建虚拟栅格”或“处理工具箱-栅格工具-波段叠加”都能做但我最推荐用“构建虚拟栅格Build Virtual Raster”这个工具因为它不产生新文件只是做一个波段组合的视图引用处理速度快不占额外磁盘空间。具体操作是在QGIS中打开下载文件的SNAP或通过“添加栅格图层”逐波段添加或者直接解压后把所有波段文件拖进QGIS。然后打开“处理工具箱”搜索“波段叠加”输入B4红、B3绿、B2蓝三个波段输出路径自定义点运行即可得到RGB合成影像。如果做植被分析用B8、B4、B3组合就能得到标准的假彩色合成影像植被呈红色。4.4 使用矢量范围精确裁剪影像下载的Sentinel-2单景影像覆盖范围通常是110公里乘以110公里而研究区域可能只是其中的一个小块比如一个县域或者一个流域。全图存储不仅占用空间后续分析也会因为数据量过大而拖慢速度。因此用矢量边界裁剪影像几乎是每一步必经的操作。QGIS里做影像裁剪非常简单使用“处理工具箱-栅格裁剪-按掩膜图层裁剪栅格”功能即可。输入栅格选上一步得到的波段组合结果掩膜图层选中你的研究区矢量勾选“裁剪后创建alpha波段”和“保持输入波段”运行后影像就会按边界形状被裁出来研究区外显示透明。这里有一个我踩过的坑如果矢量面文件本身有几何错误比如自相交或重复点裁剪结果会出现大片空白或环形异常区域。所以在裁剪前先用“矢量几何-修复几何”工具把矢量数据修复一遍能省去大量返工时间。遇到裁剪后的影像颜色整体偏暗或者泛白不是数据有问题而是渲染拉伸方式需要调整。右键图层属性找到“符号栅栏-渲染类型”把单波段灰度改成“多波段彩色”再设置对比度增强为“按需拉伸”或者手动设置最小最大值为合适的反射率区间影像就会变得自然清晰。4.5 多景影像的拼接与镶嵌处理如果研究区面积很大一景影像盖不住就需要多景拼接。Sentinel-2单景虽然覆盖范围大但遇到跨轨道或者跨日期数据拼接时还得考虑影像的时间一致性不同日期影像的光照条件和云覆盖都不同直接拼起来会有明显接缝。QGIS里做镶嵌处理很简单把需要拼接的波段合成结果都加载进来使用“处理工具箱-栅格工具-镶嵌栅格图层”。在参数设置里重点检查“重叠区融合方式”我习惯选“最大值”或者“均值”。“最大值”能保留亮部信息但可能让植被区更亮“均值”能让接缝过渡自然但会让局部信息变得模糊。如果只是出图展示选均值如果要定量分析建议还是优先选时相相同的影像来拼减少误差。拼接完成后哪怕叠加上面做的矢量裁剪得到的成果就完全可以用在专业分析了。5. 遥感影像预处理流程详解5.1 辐射定标与大气校正到底要不要做如果下载的是Sentinel-2 L2A级别产品数据本身已经做过大气校正反射率值可以直接用于计算NDVI等指数不需要再做额外处理。如果下载的是L1C级别产品就是只做了几何校正但没做大气校正的数据那么严格来说需要先做辐射定标和大气校正再算各种指数否则数值会有偏差。实操建议QGIS官网上下载量较大的影像数据源默认都会优先推送L2A成品我们直接选L2A就好。对大多数植被分析、土地利用分类项目L2A已经足够完全没必要再走一遍SEN2COR流程白白占机时。但遇到L1C数据我一般会在欧空局平台直接重新检索L2A版本检索不到才会尝试用SNAP软件做SEN2COR大气校正。实际操作中L2A和L1C的成像时刻相同只是产品处理级别不同绝大多数区域都能找到L2A版本。5.2 波段选择与组合逻辑Sentinel-2一共有13个波段每个波段对应不同波长范围。做真彩色合成用B4红、B3绿、B2蓝做假彩色植被分析用B8近红外、B4红、B3绿植被会呈现红色系非常直观做水体识别则常用B3、B2、B8或B11组合能明显区分水体和陆地。在QGIS里做波段组合最快的方式不是用栅格计算器而是直接在图层属性的“符号栅栏”里选择“多波段彩色”然后把红绿蓝三个通道的波段号填进去。这样只是改了显示方式没有改变数据本身随时可以切换不同组合去看同一景影像。对做定量分析的人来说波段组合只是视觉辅助真实计算还是要靠栅格计算器。5.3 指数计算与阈值分割示例最常见的NDVI计算公式是NDVI (NIR - Red) / (NIR Red)在QGIS栅格计算器里假设影像波段的命名是B8和B4那么表达式就是(B8 - B4) / (B8 B4)计算出来的结果会是一个-1到1之间的浮点数栅格。后续可以根据项目需求设置阈值比如NDVI大于0.5的识别为茂密植被0.2到0.5之间识别为稀疏植被小于0.2识别为非植被。这个阈值不是拍脑袋定的最好对照样本点实测或者高分辨率影像目视调整。水体指数用NDWI公式是(Green - NIR) / (Green NIR)对应Sentinel-2就是(B3 - B8) / (B3 B8)水体区域的NDWI值通常大于0配合湿度指数MNDWI可以进一步剔除建筑物阴影的干扰。5.4 数据格式转换与导出QGIS处理完成后的成果建议统一导出为GeoTIFF格式。GeoTIFF自带地理坐标信息可以无缝对接ArcGIS、ENVI、ERDAS等平台也是开源社区最通用的栅格格式。使用“导出-另存为”格式选GeoTIFF在“创建选项”里设置压缩为LZW可以大幅减小文件体积几乎不损失信息。如果后续要在Web端发布或做在线切片可以顺手把坐标系重投影到EPSG:3857保证在线地图缩放正常。一个小细节导出之前右键图层查看“信息-属性”里的像素宽度和高度如果影像尺寸太大超过2万像素导出时建议拆成分块输出否则内存会被瞬间撑爆。QGIS的导出工具会自动提示但最好自己心里有数提前规划输出方案。6. 高频问题排查与避坑指南6.1 天地图加载不出来或白屏最常见的三个原因第一个TK没填或者填错。检查URL末尾的tk参数是否完整同事之间复制密钥时经常漏字符。第二个URL里的{z}、{x}、{y}被替换成了纯数字这种情况通常是直接把浏览器里获取的URL粘贴了进来QGIS不认识。第三个坐标系设置异常比如工程CRS被设成了某种局部坐标系天地图瓦片被投影到视野之外。解决办法是在工程属性里重置CRS为EPSG:3857后再刷新视图。6.2 影像下载速度极慢Copernicus平台在国内的访问速度有时确实不太稳定下载一景800MB的数据可能要一两个小时。有条件的可以在设置里增加下载线程数。用eodag脚本下载时可以在配置文件中设置download_timeout和num_workers参数同时并发下载3到4个文件速度提升非常明显。如果一条数据反复下载失败多半是数据中心存储节点临时抽风换一个镜像节点试试或者干脆避开高峰期凌晨下载会稳定很多。6.3 裁剪后影像出现了黑色边框这是很多人都会遇到的坑。按掩膜裁剪后如果输出影像四周有黑色区域原因是输入影像存在NoData值没有正确识别。解决办法是在裁剪工具参数里勾选“为输出栅格创建有效数据掩膜”或手动设置NoData值为0这样输出影像的背景就是透明而不是黑色。还有一种情况是裁剪后影像边缘发虚这跟矢量边界和影像像元边缘对齐有关可以忽略不计对分析结果没有实质影响。6.4 波段合成后影像色彩失真合成出来的真彩色影像颜色偏紫或者偏粉大概率是波段顺序搞错了。Sentinel-2的波段顺序里B4是红色B3是绿色B2是蓝色。如果不小心把B2、B3、B4按顺序填到RGB通道里就会变成错误的色彩显示。QGIS的波段选择下拉框里是可以手动调整顺序的红色通道选B4绿色选B3蓝色选B2这就不会错。另外下载的数据如果是SNAP导出的波段名称可能是波段代码加数字后缀注意识别真实的波段号。6.5 eodag脚本搜索不到数据脚本搜索返回空结果时第一反应应该是检查时间范围是否跟数据过境日期匹配。Sentinel-2的数据不是每天都覆盖全国如果研究区域在林区或者云覆盖较高的季节一个月内可能只有一两景合格数据。把时间范围放宽到两个月甚至一个季度云量阈值调到50%结果就出来了。其次检查AOI边界是否在Sentinel-2的全球覆盖网格内极地圈和高纬度区域并不是每条轨道都有数据。7. 实操总结与个人经验这套QGIS加天地图加Sentinel-2的组合我用了两年多经手过城镇空间变化监测、流域植被覆盖度分析和农情遥感评估几个实际项目流程里每一步都经受过真实数据考验。我最想提醒的一点是天地图这种在线底图服务尽量只用来做目视参考和出图底图不要直接在它上面做定量分析。它本质上是压缩过的瓦片图像像元值已经经过拉伸和增强处理虽然能看清楚房子和道路但反射率信息已经失真。真正做计算一定要回到Sentinel-2的原始波段数据上。另一个经验是数据下载阶段宁可多花点时间挑数据也别在预处理阶段硬扛。云量超过30%的影像即使勉强做完大气校正研究区里可能还是有大片云影遮挡后期怎么补都补不回来。所以我会在下载前列一张数据质量检查清单过一遍时间范围、云量、研究区覆盖度全部通过再批量下载。最后分享一个小习惯QGIS工程文件后缀是.qgz里面记录了所有图层连接、样式设置和坐标系信息。每次做完一个区域的分析我会把工程文件连同样式文件一起归档下次复用或者给别人交接的时候直接打开工程就能看到完整的成果状态不需要重新加载图层、重新调试样式。这个习惯帮我省下了大量重复劳动强烈推荐。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询