做短临预报、做遥感反演、或者只是想给一个监测系统加上"从天上往下看"的能力,第一次真正去接触气象卫星数据的人,多半会卡在同一个地方:到底该用哪颗星。这个问题听起来简单,但它背后牵扯的是轨道高度、重复观测频次、载荷通道配置、星下点分辨率、数据格式、定标版本这一整条链路。你随手搜到的参数表往往只告诉你"通道数 16""分辨率 0.5 公里",却不会告诉你这些数字在真实场景里意味着什么、什么时候它会失效、以及不同系列的气象卫星到底在互相补什么位。
这篇内容就是把国内外主要气象卫星这条谱系摊开讲清楚。我会从轨道分类切入,说明静止轨道、极轨、晨昏轨道各自的能力边界;再把几大主力系列的实际载荷配置和观测节奏拆开对比;然后落到数据获取、格式读取、定标与投影处理这些真正动手时会遇到的事情上;最后把我在拼接、时序分析、夜间识别这些环节里踩过的坑逐条列出来。无论你是刚接触遥感数据的学生,还是已经在做业务系统集成的开发者,都能从中找到可以直接拿去用的判断依据和操作细节。
1. 轨道决定了卫星能干什么,而不是载荷
选星这件事,很多人是从"哪个分辨率高"开始的,这其实是反的。气象卫星的能力上限首先由轨道决定,载荷只是在这个上限内做配置。同样一台成像仪,装在静止轨道上就变成"每十分钟看一次同一片区域",装在极轨上就变成"每天两次、每次一条 2900 公里宽的带子"。你要做的事情决定了你该选哪一类,而不是反过来。
1.1 静止轨道的本质是"盯着一个地方反复看"
静止轨道大约在赤道上方 36000 公里处,卫星绕地一周的时间和地球自转完全同步,所以从地面看它就像钉在天上不动。这个特性带来两个直接后果:一是可以对固定区域做高频次观测,全圆盘一般 10 到 15 分钟一轮,区域扫描能做到 1 到 5 分钟;二是不需要复杂的轨道预报和拼图,每一帧的数据网格几乎完全一致,做时间序列比对非常省事。
代价也很明显。36000 公里的距离意味着可见光通道的星下点分辨率普遍在 0.5 到 1 公里,红外通道在 2 到 4 公里,而且这个分辨率只在星下点成立,越往高纬度走,像元在地面上被拉得越长。到了南北纬 55 度以上,一个红外像元在东西方向的跨度可能已经是星下点的两倍以上,做小尺度分析基本没有意义。所以静止卫星的核心战场是中低纬度的强对流、台风、大尺度云系演变,高纬度地区的精细观测要交给极轨。
另一个容易被忽略的点是静止卫星的"标称网格"。它给出的不是一条条扫描线,而是一个虚拟的投影网格,数据里存的是行列号,经纬度要通过固定的投影参数换算。这意味着你不能像处理普通图片那样直接按像素坐标算距离,必须先把投影关系搞清楚。我见过不少人在这一步出错,把不同卫星的全圆盘图直接叠在一起做差值,结果位置整体偏移,还以为是数据质量问题。
1.2 极轨卫星拿分辨率换覆盖范围
极轨卫星的轨道高度通常在 700 到 850 公里,绕地球一圈大约 100 分钟,每天能绕十几圈。它的优势是离地面近,同样的仪器口径能做出更高的空间分辨率——成像类载荷的可见光通道做到 250 到 375 米是常规水平,红外通道 750 米到 1 公里,比静止轨道精细一个数量级。
但极轨的观测是"条带式"的,每次过境只覆盖一条宽约 2900 到 3000 公里的带子,同一地点一天通常只有两到四次有效过境。而且这些过境时间相对固定,被称为"降交点地方时"或"升交点地方时"。按过境时间可以把极轨分成几类:上午轨道大约在当地时间 9:30 左右过境,午后轨道在 13:30 左右,晨昏轨道则在清晨和傍晚两个时段低太阳高度角下过境。
这个时间差异不是随便定的。上午轨道的太阳高度角适中,云顶和地表的纹理对比好,适合做云分类和地表特征识别;午后轨道太阳高度角高,对流发展旺盛,对强对流初生和降水云系的捕捉更敏感;晨昏轨道太阳高度角很低,可见光通道基本没法用,但它的红外通道在昼夜过渡时段能提供独特的信息,而且晨昏轨道的卫星可以充分利用太阳能供电,姿态控制更省事。
极轨数据的另一个特点是"景"的概念。一次过境会被切成若干个 granule,每景覆盖一小段时间的条带,做区域分析时需要先筛选、拼接,再做投影重采样。这个流程比静止数据繁琐得多,但换来的是分辨率。
1.3 晨昏轨道和倾斜轨道补的是时间盲区
严格来说,气象观测的时间盲区永远存在。静止卫星在中低纬度做到 10 分钟一轮,但两颗静止星之间、以及高纬度地区,仍然有大片区域覆盖不到。极轨卫星虽然分辨率高,但一天只有几次过境,中间的空档动辄几个小时。
晨昏轨道就是为了填这个空档设计的。它选择在清晨和傍晚过境,正好补上静止卫星在太阳高度角极低、可见光失效时段的观测缺口,同时因为轨道面与昼夜分界线接近,卫星长期处于光照或阴影的稳定状态,热环境比较可控。国内的风云三号系列里就有专门走晨昏轨道的成员,搭载了能捕捉微光条件下的低照度成像能力,对夜间云和雾的识别帮助很大。
倾斜轨道则是另一种思路,它不追求全球覆盖,而是通过较低的倾角把观测重心压在人口密集、灾害频发的中低纬地区,用更短的重复周期换取更高的时间分辨率。这类轨道在降水测量和特定区域的加密观测中用得比较多。
理解这三类轨道的分工之后,选星的逻辑就清楚了:要高频次看一个固定区域,选静止;要精细纹理和小尺度特征,选极轨;要补夜间和过渡时段,看晨昏轨道。至于具体选哪颗星,才是载荷参数的问题。
2. 静止轨道上的几颗主力,能力差异比想象的大
静止气象卫星看起来都是"全圆盘成像",但实际能力差距相当明显。通道数从 5 个到 16 个不等,全圆盘频次从 30 分钟到 10 分钟不等,可见光分辨率从 1.25 公里到 0.5 公里不等。这些差距直接决定了你能做哪些产品,不能做哪些产品。
2.1 东亚到西太平洋这一片,风云四号是主力
国内静止气象卫星走过了一条比较清晰的路。早期的风云二号系列是自旋稳定体制,通道数只有 5 个(一个可见光加四个红外),可见光分辨率 1.25 公里,红外 5 公里,全圆盘大约 30 分钟一轮。这套配置在当年够用,但通道太少导致云相态识别、气溶胶反演、火点检测都很勉强,只能靠几个红外窗区和几组亮温差硬凑。
风云四号换了三轴稳定体制,载荷能力直接跳了一级。主载荷是先进的静止轨道辐射成像仪,风云四号 A 星是 14 个通道,B 星在此基础上又增加了通道。通道覆盖从 0.47 微米的蓝光一直到 13.5 微米的二氧化碳吸收带,包含了 0.47、0.65、0.825 微米的可见光近红外 trio,1.375 微米的卷云通道,1.61 和 2.225 微米的短波红外,3.75 微米的中波红外(分高低两个增益),以及 6.25、7.1 微米的水汽通道,8.5、10.7、12.0 微米的窗区通道和 13.5 微米的探测通道。可见光分辨率做到 0.5 到 1 公里,红外 4 公里,全圆盘 15 分钟,国内区域可以加密到 3 分钟,区域快速扫描能压到分钟级。
通道多带来的最大变化是能做真正的多光谱合成。比如真彩色云图需要蓝、绿、红三个可见光通道,风云二号只有单一可见光通道,根本做不出来;而 1.375 微米卷云通道对薄卷云的识别能力,是判据里非常关键的一环,没有它就很难把薄卷云和地表的高亮目标区分开。再比如 8.5 微米通道配合 10.7 和 12.0 微米,可以做三通道的沙尘和云相态判别,这在只有两个红外窗区的时候是做不到的。
风云四号还带了一台干涉式大气垂直探测仪,这是国内静止轨道上第一次实现高光谱红外探测。它的作用是把大气按气压层切开,给出温度和湿度的垂直廓线,时间频次比极轨上的同类载荷高得多,对数值模式的资料同化价值很大。另外还有闪电成像仪和空间环境监测载荷,前者可以捕捉总闪电活动,对强对流初生的预警提前量有帮助。
2.2 快速扫描和闪电成像改变了短临的玩法
短临预报里最值钱的不是分辨率,是时间。一个对流单体从初生到成熟可能只有二三十分钟,如果是 15 分钟一轮的全圆盘,你最多看到两帧,判断趋势全靠猜。所以各家的静止星都在往"更快"这个方向卷。
东亚西太平洋区域的高频观测,除了风云四号的区域加密,还有邻近区域的静止卫星可以提供 10 分钟全圆盘、2.5 分钟目标区扫描的能力。10 分钟全圆盘配合 2.5 分钟的目标区,意味着当某个区域出现强对流信号时,可以临时申请加密观测,把时间分辨率拉到一个很高的水平。这种"按需加密"的思路现在已经是主流,欧洲和北美区域的静止星也都有类似机制。
闪电成像是另一条线。光学闪电成像仪工作在近红外波段,通过探测闪电通道激发出的氧气发射线来定位闪电事件。它的价值在于能捕捉云内闪电——传统的地基闪电定位网主要探测云地闪,而云内闪电的突然增多往往是雷暴updraft加速的信号,对冰雹、雷暴大风的预警提前量可以做到十几分钟。把闪电密度和红外亮温的快速下降结合起来看,是现在强对流监测里比较有效的一套组合拳。
不过要注意,闪电成像仪的数据不是"闪电图",它给的是一系列事件的时间戳和 CCD 行列位置,需要结合星上相机几何做定位解算,还要做去噪和聚类。直接拿原始事件点去做统计,很容易被噪声和宇宙线干扰。
2.3 其他覆盖区的静止星,做全球拼图绕不开
如果你的分析范围不止东亚,就绕不开其他几颗静止星。西半球有 16 通道的成像仪,可见光 0.5 公里、红外 2 公里,全圆盘 10 分钟,还有 5 分钟的陆地区域扫描和 1 分钟的中尺度区域扫描,配合同样具备闪电成像能力,是目前配置相当完整的一套。
欧洲和非洲区域经历了从第二代到第三代的过渡。第二代是 12 通道,可见光 1 公里、红外 3 公里,全圆盘 15 分钟;第三代把通道数提到 16 个,可见光分辨率提升到 0.5 公里,全圆盘频次压到 10 分钟,并增加了闪电成像和更灵活的区域扫描能力。这套升级的实质是把"够用"变成"好用",尤其是 0.5 公里的可见光对欧洲这种中小尺度地形复杂的区域意义很大。
印度洋上空也有一颗第二代静止星在做备份和区域服务,覆盖范围从东非一直延伸到东南亚,对海上航线和热带气旋监测有实际价值。此外还有几颗处于倾斜静止轨道的卫星在提供高纬度区域的补充观测,虽然覆盖面有限,但在北极航道和极区气象监测中能派上用场。
做全球拼图的时候,这些星的时间戳、投影参数、定标版本全都不一样。我一般会先统一到等经纬度网格或者等面积的投影上,再按时间戳做最近邻匹配,并且把太阳天顶角也一起重采样——因为不同经度的同一 UTC 时刻,太阳高度角差得非常多,直接拼真彩色会拼出一条明显的明暗分界线。
3. 极轨谱系:成像、探测、微波三条技术线
极轨气象卫星的载荷体系比静止复杂得多,因为它有足够的空间和供电去装大型仪器。大致可以分成三类:成像类、高光谱红外探测类、微波和主动雷达类。这三类的能力互补性很强,一套完整的"极轨星座"通常都要配齐。
3.1 成像载荷:三套体系的分辨率与通道取舍
成像载荷是极轨数据里最常用的一类,主要三套体系。一套是中分辨率光谱成像仪,装载在国内的风云三号系列上,最新一代是 25 个通道,可见光和近红外做到 250 米,红外 1 公里,扫描幅宽约 2900 公里。它的通道配置里包含了 0.47 微米的蓝光通道和多个水汽、窗区通道,具备做真彩色合成和气溶胶反演的基础条件。
另一套是 22 个通道的成像辐射计,装在午后轨道的卫星上,分成像带和中等分辨率带两组,成像带 375 米、中等分辨率带 750 米,幅宽约 3060 公里。它的特色是有一个 0.7 微米的日光反射通道专门用于夜间低光成像,可以在月光条件下看到云和地表特征,对夜间的雾、低云、城市灯光、渔船火点都很有用——这个能力在夜间监测里价值极高,因为常规可见光通道在夜间是完全黑的。
第三套是继承性的甚高分辨率辐射计,装在上午轨道的卫星上,只有 6 个通道,分辨率 1.1 公里。通道少是它的短板,但它胜在时间序列极长,从早期的型号一直延续到现在,做几十年的气候态分析时,这条连续序列是无法替代的。很多长期植被指数、海温序列的产品都是基于这套数据做的。
这三套体系的取舍逻辑其实很清晰:通道多、分辨率高的适合做精细产品和短时间尺度的分析;通道少但延续性好的适合做长期趋势。如果要做 30 年的地表变化分析,你只能用延续性最好的那套,哪怕它分辨率低;如果要做某次强对流的精细结构,就用通道最多、分辨率最高的那套,哪怕它只有几年数据。
3.2 高光谱红外探测:廓线精度的分水岭
高光谱红外探测仪是极轨卫星上最"重"的载荷之一,通道数动辄上千。欧洲上午轨道系列上的一台干涉式探测仪有 8461 个通道,光谱分辨率极高;午后轨道系列上的同类载荷有 2211 个通道。这些通道密集分布在 3.7 到 15.5 微米的红外区间,覆盖了二氧化碳、水汽、臭氧、一氧化碳等多种吸收带。
通道多的意义在于反演的自由度。传统的中分辨率红外分光计只有十几个到几十个通道,反演温度廓线时只能给出几个粗层的平均值,误差大且在逆温层附近容易失效。高光谱数据因为通道密集,可以反演出更细的气压层结构,特别是在对流层顶附近和水汽廓线的细节上优势明显。这些数据进入数值模式的同化系统后,对预报技巧的提升是实打实的。
代价是数据量大、处理复杂。一台高光谱探测仪一天的原始数据量可以到几十 GB 量级,做辐射定标、光谱定标、云检测、晴空视场筛选、偏差订正,一整套流程下来对算力要求不低。而且它和成像载荷的视场不重合,做联合反演时需要做视场匹配,把成像仪的高分辨率像元聚合到探测仪的大视场上,这个匹配的精度直接影响反演质量。
国内的风云三号系列里也装了红外分光计和大气垂直探测仪,通道数比高光谱少,但胜在和成像载荷同星搭载,时空匹配比较容易,做区域性的廓线反演时反而更方便。
3.3 微波与降水:能穿透云层的那条技术路线
红外和可见光只能看云顶,微波能往里钻。这是微波载荷不可替代的根本原因。微波辐射计的工作频段从 10 GHz 一直延伸到 183 GHz,不同频段的穿透能力和对水物质的敏感性完全不同:低频段(10 到 37 GHz)对液态水敏感,能反演海面风、土壤湿度、海冰;高频段(89 到 183 GHz)对冰相粒子敏感,能反映深对流里的冰晶含量和云顶以上的霰粒子分布。
微波成像仪的分辨率普遍不高,星下点从几公里到几十公里不等,频率越低分辨率越差。这是物理限制,绕不过去。所以微波数据不适合做小尺度分析,但它在台风暖心结构识别、降水强度估算、云中液态水路径反演这些场景里是主力。台风定强里有个经典做法:用微波通道的亮温异常去找暖心,暖心的强度和高度与台风强度相关性很好,这比单纯看红外云顶温度要可靠,因为红外只看云顶,而微波能看到眼墙内部的结构。
主动雷达是更进一步的技术。双频降水测量雷达工作在 Ku 和 Ka 两个频段,星下点分辨率大约 5 公里,可以直接测量降水的三维结构,包括雨滴谱参数和降水类型。国内也发射了专门的降水测量卫星,搭载双频降水测量雷达和微波成像仪组合,这是全球降水观测网里的重要补充。
主动雷达的问题是幅宽窄。降水雷达的扫描幅宽通常只有几百公里,相比微波成像仪两三千公里的幅宽小了一个数量级,所以它只能做"采样"而不是"普查"。实际业务里常见做法是用微波成像仪做广域筛查,发现强降水信号后再用雷达数据做精细反演和验证。
4. 参数横向对比:把选型边界画出来
前面讲的是能力逻辑,这一节直接把关键参数摊成表。需要说明的是,下面给的分辨率默认是星下点值,实际像元尺寸随扫描角和纬度变化,做定量分析时必须用几何参数逐像元修正。
| 卫星/系列 | 轨道类型 | 主载荷 | 通道数量级 | 全圆盘或重访频次 | 可见光/红外分辨率 | 典型用途 |
|---|---|---|---|---|---|---|
| 风云四号 A/B | 静止 | 成像仪 | 14–15 | 15 分钟(区域可加密到 1–3 分钟) | 0.5–1 km / 4 km | 强对流、台风、云系演变 |
| 风云二号后期型号 | 静止 | 扫描辐射计 | 5 | 约 30 分钟 | 1.25 km / 5 km | 大尺度云图、区域监测 |
| 东亚邻近静止星 | 静止 | 成像仪 | 16 | 10 分钟(目标区 2.5 分钟) | 0.5–1 km / 2 km | 高频次短临、台风 |
| 西半球静止星 | 静止 | 成像仪 + 闪电仪 | 16 | 10 分钟(中尺度区 1 分钟) | 0.5 km / 2 km | 强对流、飓风、闪电 |
| 欧洲第三代静止星 | 静止 | 成像仪 + 闪电仪 | 16 | 10 分钟 | 0.5 km / 1 km | 中尺度对流、航空气象 |
| 风云三号中分辨率成像型 | 极轨 | 光谱成像仪 | 25 | 每日 2 次左右 | 250 m / 1 km | 精细云图、气溶胶、地表 |
| 午后轨道成像辐射计 | 极轨 | 成像辐射计 | 22 | 每日 2 次左右 | 375 m / 750 m | 夜间低光、火点、云分类 |
| 上午轨道甚高分辨率辐射计 | 极轨 | 扫描辐射计 | 6 | 每日 2 次左右 | 1.1 km | 长序列气候分析、植被 |
| 高光谱红外探测仪 | 极轨 | 干涉式探测仪 | 8000+ | 每日 2 次 | 约 12 km | 温湿廓线、痕量气体 |
| 微波成像仪 | 极轨 | 多频微波辐射计 | 十几到二十几 | 每日 2 次 | 10–50 km | 降水、海面风、冰相粒子 |
| 双频降水雷达 | 极轨 | 主动雷达 | 2 个频段 | 采样式覆盖 | 约 5 km | 降水三维结构 |
看这张表的时候有几个换算关系必须先建立起来。分辨率的"公里数"是像元在地面投影的边长,但一景图像的覆盖面积不等于分辨率乘以像素数,因为扫描角的余弦效应会让边缘像元被拉长。以静止卫星为例,星下点 4 公里的红外像元,在南北纬 50 度附近东西方向的跨度可能已经接近 6 公里,做面积统计时必须做几何修正,否则高纬度区域的云量统计会系统性偏大。
频次也要分清楚"全圆盘"和"区域"。全圆盘 15 分钟不等于你关心的那个区域 15 分钟就能看一次,很多卫星在完成全圆盘扫描的同时会穿插区域扫描,区域的时间分辨率可能高得多。反过来,如果你需要的是全球拼图,那就只能等全圆盘,区域加密的帧不能直接拼进全球网格。
通道数更不是越多越好。通道多的代价是数据量大、处理链路长、定标一致性维护复杂。如果你的任务只是看云系移动、做大尺度云图,5 个通道的老型号完全够用,而且数据量小、处理快。只有在做云相态、气溶胶、火点、沙尘这些需要多通道组合判据的产品时,通道数才成为硬指标。
5. 数据拿到手之后,这三件事必须先做
数据获取本身不难,难的是拿到之后怎么正确处理。我见过太多项目在读取环节就把数据用错了,后面的所有分析都建立在错误的基础上。抛开具体的业务逻辑,有三个环节是绕不过去的:来源与版本、定标与单位、投影与几何。
5.1 数据来源、格式与命名规则
国内的风云系列数据通过官方数据门户分发,分为实时推送和存档下载两条路径,L1 级数据一般是 HDF5 格式,L2 级产品有 HDF5 和 NetCDF 两种。文件命名规则相当规整,通常包含卫星标识、载荷标识、产品级别、区域码、时间戳、投影类型、分辨率和版本号这几段信息。举个例子,一个风云四号成像仪的全圆盘 L1 文件名大致长这样:
FY4B-_AGRI--_N_DISK_1047E_L1-_FDI-_MULT_NOM_20240815040000_20240815041459_4000M_V0001.HDF拆开看,FY4B是卫星,AGRI是载荷,DISK表示全圆盘(如果是REGC就是区域扫描),1047E是定点经度,L1是产品级别,FDI是全圆盘成像,20240815040000是观测起始时间(UTC),20240815041459是结束时间,4000M表示标称分辨率 4 公里,V0001是版本号。这套命名规则的好处是可以直接用文件名做批量筛选和时间排序,不需要打开文件读元数据,做大规模时序处理时能省掉大量 I/O。
海外的数据来源更多一些,大致有三类:官方数据门户的存档下载、面向区域用户的低延迟推送、以及公有云上的开放数据集。公有云数据集这条路特别值得说——它通常是免注册、按时间路径直接拉取的,用对象存储的命令行工具就能批量同步,而且同一区域内的访问速度很快。缺点是只有部分卫星和部分产品级别进了这个计划,L1 原始数据往往还要回官方门户拿。
数据格式上,HDF5 和 NetCDF 是绝对主流。HDF5 的组织方式是分层的数据组,每个通道、每个辅助数据集都是独立的 dataset,元数据存在 attributes 里;NetCDF 更接近"带坐标的数组",用 xarray 读进来就能直接按经纬度索引。两种格式的读取都不难,难的是搞清楚每个数据集的实际含义和单位。
5.2 一个能跑通的最简读取流程
以风云四号成像仪 L1 数据为例,用开源遥感处理库读取是最省事的路子。这类库已经帮你处理了文件名解析、定标表查找、投影参数加载这些杂活,你只需要指定载荷类型和文件路径。
from satpy import Scene from glob import glob files = glob("FY4B-_AGRI--_N_DISK_*_20240815040000_*.HDF") scn = Scene(reader="agri_l1", filenames=files) scn.load(["C10", "C12", "C06"]) dataset = scn["C10"] # 10.7 微米红外窗区,单位 K print(dataset.attrs["area"]) # 投影与地理范围信息 subset = dataset.area # 可直接用于重采样到自定义网格这段代码里最关键的一行其实是scn.load之后拿到的dataset.attrs,里面包含了定标信息、观测时间、投影定义和标称网格参数。很多人读完数据就开始算,从不看这些属性,结果单位搞错、时间搞错、投影搞错,全在后面暴雷。
如果要读极轨的成像数据,流程多一步"筛选和拼接":先用文件名里的时间筛出覆盖研究区的 granule,读进来之后做投影重采样,把这些条带拼成一整幅。这一步用开源库的resample接口可以完成,但要提前定义好目标网格,否则每次重采样的网格都不一样,导致时序数据无法对齐。
from pyresample import create_area_def target = create_area_def( "my_domain", {"proj": "longlat", "datum": "WGS84"}, area_extent=(110.0, 20.0, 125.0, 35.0), resolution=0.02, units="degrees", ) new_scn = scn.resample(target, resampler="nearest") new_scn.save_dataset("C10", filename="bt_107_{start_time:%Y%m%d_%H%M}.tif")这里有个细节:重采样方法选最近邻还是双线性,结果差别很大。做分类、阈值判别、亮温差计算时必须用最近邻,因为插值会造出原始数据里不存在的中间值,把火点这类尖锐特征抹平;只有做可视化和连续场的平滑时才用双线性。
5.3 定标、投影、时间,三个必查项
定标是第一个必查的。可见光通道的定标系数会随时间退化,卫星在轨运行几年之后,同样的地表反射率对应的计数值会有系统性偏移。如果你用两年前的定标表处理今年的数据,做时间序列分析时会看到一条虚假的"变亮"或"变暗"趋势,而且这条趋势非常平滑,看起来特别像真实信号,很容易被骗过去。正确的做法是从元数据里读取定标表版本,确保用的是最新发布的系数。红外通道相对稳定,但也存在星上黑体定标偏差的修正项,同样要跟着版本走。
投影是第二个。静止卫星用的是标称网格,数据里存的行列号需要通过投影参数换算成经纬度,不能直接假设等经纬度。有些产品的元数据里提供了二维的经纬度查找表,直接读来用最稳妥;如果没有,就要根据标称投影参数自己算。极轨数据的投影更复杂,每条扫描线的几何都不一样,通常用逐像元的经纬度数组来表达,处理时必须用这个数组而不是简单的线性关系。
时间是第三个,也是最容易出错的那个。所有卫星数据的时间戳都用 UTC,而业务系统里常用本地时间。北京时间的偏移是 8 小时,听起来简单,但在文件名解析、数据库入库、图表标注这三处只要有一处漏了转换,就会出现"数据比实际早 8 小时"的问题。更麻烦的是观测时间段的表示:文件名里通常给的是起始时间和结束时间,而数据的实际有效时刻是中间某个位置,做时序对齐时用起始时间还是中间时间,会造成几分钟的偏差。对于高频次的静止数据,这个偏差可能就相当于一整帧的错位。
6. 场景选星:不同任务该看哪颗
参数表看完了,落到具体任务上,选星的判断其实可以简化成几条经验规则。这一节按场景拆,每个场景说清楚为什么选它、以及有什么替代方案。
6.1 强对流短临:要时间不要分辨率
强对流监测的核心诉求是"早"和"密"。空间分辨率做到 1 公里和 4 公里,对识别一个几公里尺度的对流单体差别不大,但 1 分钟一次和 15 分钟一次,判断趋势的能力天差地别。所以这个场景优先选静止卫星的区域加密观测,能申请到 1 到 2.5 分钟的目标区扫描最好。
具体看什么?首先是红外窗区亮温的快速下降,10.7 微米亮温在十几分钟内下降 20 K 以上,说明云顶在快速抬升,对流在爆发。其次是亮温梯度,云顶边缘的梯度越大,说明上升气流越强。再配合水汽通道看云顶以上的干侵入,配合 3.9 微米短波红外看云顶粒子相态(冰相粒子的 3.9 微米反射率会明显偏高),几组判据合起来用,误报率能压得很低。
风云四号的高光谱探测仪在这个场景里也有独特价值。它能给出逐层的水汽和温度廓线,可以看到对流发展前环境场的不稳定层结在怎么变化。虽然它的空间分辨率不高,但作为环境场分析是够用的。
6.2 台风定强与路径:红外看云型,微波看结构
台风监测是气象卫星最经典的战场。红外云图上的螺旋云带、眼区清晰度、中心密蔽云区的对称性,这些特征构成了经典的定强方法的基础。具体做法是用中心附近的亮温分布做旋转对称性分析,计算眼区温度、眼墙温度、云顶亮温的径向廓线,再结合历史样本做回归。
但红外只能看云顶,遇到高层卷云覆盖眼区的情况就会失效。这时候微波就派上用场了。微波通道能穿透卷云,看到眼墙内部的降水结构和暖心。暖心的强度(亮温正异常)和高度与台风强度高度相关,用 50 到 60 GHz 附近的氧气吸收带通道可以反演出暖心的三维结构。实际业务里常见的做法是红外和微波联合定强,两者一致时可信度最高,不一致时以微波为主。
路径预报更多依赖的是环境场和数值模式,卫星的作用是提供初始场和监测定位。定位这一步,静止卫星的高频次观测比极轨更有优势,因为可以连续追踪眼区的移动。
6.3 火点与烟羽:3.9 与 11.2 的差值判据
火点检测是卫星数据里门槛最低、效果最直观的应用之一。原理很简单:高温目标的辐射能量在 3.9 微米附近的增长远快于 11.2 微米,所以用两个通道的亮温差就能把火点从背景里分出来。判据大致是 3.9 微米亮温超过某个绝对阈值,并且 3.9 与 11.2 的差值超过某个相对阈值。
听起来简单,实际做起来坑很多。第一个坑是太阳反射污染:白天 3.9 微米通道会接收到地表反射的太阳辐射,导致亮温虚高,必须在判据里加入太阳天顶角限制,或者用反射率分量做校正。第二个坑是云边缘:薄云的边缘会因为部分云填充效应产生虚假的高亮温差,需要配合可见光反射率和 11.2 微米亮温做云筛除。第三个坑是高纬度的冷地表背景:背景温度低的时候,同样的亮温差可能对应的是完全不同的火强度,阈值要随季节和纬度调整。
静止卫星做火点的优势是频次高,可以在一天内多次捕捉同一火点的演变,判断它是持续燃烧还是瞬时高温目标(比如工业热源)。极轨的分辨率高,375 米或 250 米的像元对小火点的探测能力更强,而且能看清火场的形状和烟羽走向。两者结合用效果最好:静止负责发现和时间追踪,极轨负责精细定位和过火面积估算。
6.4 雾和低云:夜间只能靠红外组合
雾和低云的监测难点在于它们和地表、和高云的亮温差异都很小,尤其在夜间没有可见光的情况下。这时候只能靠红外通道的组合判据。
常用的组合是三个差值:10.7 与 3.9 微米的差值,10.7 与 12.0 微米的差值,以及 8.5 与 10.7 微米的差值。雾滴的粒子半径小,在 3.9 微米波段的散射特性与云滴不同,会产生特征性的亮温差;而 10.7 与 12.0 的分裂窗差值在水汽含量高的低云中会呈现负值。三个判据叠加,再配合地表类型和季节先验,可以把雾区圈出来。
夜间低光成像能力在这里价值极大。有了 0.7 微米左右的日光反射通道,在月光充足的情况下可以直接看到雾区的纹理和边界,比纯红外判据可靠得多。这也是为什么午后轨道的那套成像辐射计在夜间监测里特别受欢迎。
6.5 沙尘、海温与气溶胶:多通道组合的典型场景
沙尘识别的核心判据是 11.2 与 12.0 微米的亮温差为负值,而且负得越明显沙尘越厚。这个判据的物理基础是石英在 11 到 12 微米之间存在吸收差异,沙尘粒子会削弱 11.2 微米的辐射而相对保留 12.0 微米。再配合 8.5 微米通道和可见光的反射率特征,可以把沙尘和云区分开。风云四号的 8.5 微米通道就是专门为这个场景准备的,早期的 5 通道静止星做沙尘识别很勉强。
海温反演用的是分裂窗技术,用 11.2 和 12.0 两个窗区通道的亮温做线性组合,系数是大气水汽含量的函数。这个方法的精度能到 0.5 K 量级,前提是做过云检测和大气校正。极轨的高分辨率海温产品还要考虑像元内的水体比例,近岸区域的混合像元会导致系统性偏差。
气溶胶光学厚度的反演需要蓝光通道和多个近红外通道。最新的极轨成像仪加了 0.47 微米的蓝光通道,配合 0.55、0.65、0.86 微米,可以做深蓝算法,把亮地表的沙尘和城市气溶胶也反演出来。早期的载荷没有蓝光通道,深蓝算法根本没法实施,只能在大洋和暗地表上用暗像元法。
7. 我在实际处理里踩过的那些坑
参数和原理说完了,真正决定效率的是那些文档里不会写的细节。下面这些是我在做数据拼接、时序分析和产品生成时反复遇到过的问题,基本都是"不踩不知道,踩了记一辈子"的类型。
7.1 DN 值和定标表:直接读出来的数是不能用的
第一个坑,也是最致命的那个:很多 L1 数据存的是 16 位整型的计数值,不是物理量。你直接读出来画图,看到的是一堆几千到几万的整数,颜色分布看着"挺像云图",很容易误以为这就是亮温。实际上必须乘以定标系数才能变成亮温(K)或反射率。
麻烦的地方在于,不同卫星、不同载荷、不同版本的定标表位置和格式都不一样。有的在独立的标定文件里,有的嵌在 HDF5 的 attributes 里,有的是按通道给一组斜率和截距,有的是给查找表。我最开始的做法是硬编码系数,结果数据版本一升级就全线出错。后来改成从元数据里动态读取,虽然多写几十行代码,但省掉了无数排查时间。
还有一点,反射率的取值范围各家不统一。有的是 0 到 1,有的是 0 到 100,有的超出物理上限到 1.5 甚至更高(因为定标公式的外推)。做阈值判别前必须确认范围,否则阈值定得再细也没意义。红外亮温一般统一是 K,但也有产品给摄氏度,同样要看元数据。
7.2 标称网格和实际几何:位置偏移往往出在这里
第二个坑是投影。静止卫星的标称网格是一个虚拟的规则网格,行列号和经纬度之间不是简单的线性关系。我早期做区域裁剪的时候,直接用行列号的范围去切,结果切出来的区域位置整体偏移了几十公里,而且越往边缘偏得越多。
正确的做法是用数据里提供的二维经纬度查找表,或者根据标称投影参数计算。查找表的方式最稳妥,缺点是文件体积大(全圆盘的两个 float32 数组就是几十 MB),做批量处理时加载开销明显。如果处理量很大,可以预先算好一次,缓存成压缩格式,后面直接复用。
极轨的几何更麻烦。每条扫描线的卫星位置和姿态都在变,像元的实际地理位置必须用逐像元的经纬度数组,不能假设。做条带拼接时,如果直接用简单的地理范围做边界判断,会在高纬度区域出现明显的漏拼或重叠。
7.3 时间戳的三种含义,混用必然出错
第三个坑是时间。卫星数据的时间戳至少有三层含义:观测起始时间、观测结束时间、以及数据实际代表的有效时刻。全圆盘扫描不是瞬间完成的,从北边界扫到南边界要花十几分钟,所以同一帧数据里不同行的观测时间是不同的。文件名里给的起始和结束时间对应整个扫描过程,而做时序分析时你要的通常是中间时刻。
这个差异在低频次数据里影响不大,但对 1 分钟级的区域扫描就很重要了。我曾经用起始时间做时序对齐,结果相邻两帧的时间差算出来忽大忽小,画出来的亮温曲线像锯齿一样。后来改成用每行数据自带的逐行时间戳,曲线才平滑下来。
还有一个更隐蔽的问题:不同卫星的时间基准可能差几秒。做多星联合分析(比如用静止星的高频观测去校准极轨的过境时刻)时,这个差值会累积,最终导致像元匹配错位。稳妥的做法是以其中一颗星为基准,用地理匹配(同一个地面目标在两颗星上的位置)反推时间偏差,而不是直接相信文件头。
7.4 夜间的可见光和太阳耀斑:两个假信号源
第四个坑是可见光通道的失效条件。夜间没有太阳辐射,可见光通道读出来接近零或者只有噪声。如果你的流程里用可见光做云检测,夜间就会把有云判成无云,或者反过来。这个问题看起来显然,但在自动化流程里特别容易漏,因为白天跑通了就以为一直能跑。
太阳耀斑是另一个假信号源。当太阳、卫星、地表目标接近镜面反射几何时,水面的反射会在可见光和短波红外通道里产生极高的值,看起来像一片极亮的"云"。这个区域如果进了云检测算法,会被误判成厚云;如果进了火点算法,会被误判成大范围火情。处理办法是用太阳几何角度做掩膜,把耀斑区标记出来单独处理,或者直接用红外通道的结果覆盖掉。
7.5 存储和算力:全圆盘数据的真实体量
第五个坑是数据体量。一帧风云四号成像仪的全圆盘 L1 数据,压缩后大约几百 MB,一天 96 帧就是几十 GB。如果你想做一年的时序分析,原始数据就是几个 TB 级别。再加上极轨的多颗星、多个载荷,一个小型研究项目的存储很快就吃紧了。
我的建议是分三层存储:原始 L1 保留最近一到三个月的,按需回补;中间层的重采样结果(裁剪到研究区、转成云优化的格式)长期保留,体积能压缩一到两个数量级;最终的产品和分析结果单独存一份,附上处理版本和参数。这样既保证了可追溯性,又不至于被原始数据撑爆。
算力方面,做全圆盘的逐像元运算,尤其是涉及多通道组合和多时次差分的,单机处理会很慢。我一般的做法是先把全圆盘裁到研究区,再做运算,能省掉 90% 以上的计算量。如果确实需要全球处理,就得分块并行,块与块之间留出重叠区避免边界效应。
8. 把卫星数据接进业务流程的几个关键决策
如果你的目标不是做一次分析,而是搭一个持续运行的系统,那么有几个架构层面的决策比具体算法更重要。这些决策做错了,后期改起来成本极高。
8.1 存原始还是存重采样后的
这是第一个要拍的板。存原始数据的优点是信息完整、可追溯、算法升级后能重新处理;缺点是体积大、每次处理都要重新做投影和定标。存重采样后的优点是读取快、直接用;缺点是一旦发现投影参数或定标版本有问题,前面的处理全部白做。
我的经验是折中:原始数据保留有限的时间窗口(比如三个月),同时把重采样后的中间结果按"研究区+通道+时间"的粒度长期保留,并且把处理链的版本号写进文件名和元数据。这样既控制了存储,又保证了可追溯。关键是元数据里一定要记录用了哪个版本的定标表、哪个版本的重采样参数,否则半年后你根本不知道这批数据是怎么来的。
还有一个细节:重采样到固定网格时,网格的定义要一次定死并写进配置。我见过项目里不同模块各自定义网格,差一点点分辨率,结果两批数据叠不到一起,排查了两天才发现是resolution=0.02和0.0199999的差别。
8.2 云掩膜别自己造轮子
云检测看起来简单,做起来是深坑。阈值法的误判率在高纬度、沙漠、雪面、城市热岛这些场景下会飙升。我早期自己写过一个基于亮温阈值的云掩膜,在海洋上效果不错,一进内陆就乱七八糟——冬季的亮地表被误判成云,薄卷云被漏掉,云边缘的半透明像元全乱。
后来改用产品自带的云掩膜和质量位。各家在发布 L2 产品时通常会附带一个质量标记或云状态字段,标明每个像元的置信度。这个字段的判读规则要花点时间研究,但比自己造轮子靠谱得多。需要注意的是一定要看懂每个 bit 的含义,有些产品的质量位是"位掩码"形式,不同 bit 组合代表不同状态,直接当整数比较会得出错误结论。
8.3 时序一致性比单帧精度更重要
如果你的系统要做趋势分析、变化检测、异常识别,那么时序一致性就比单帧的绝对精度更重要。这意味着定标版本要统一、观测时刻要统一、投影网格要统一、云掩膜规则要统一。任何一项不统一,都会在序列里留下台阶状的跳变。
举个具体的例子:可见光通道的定标系数在几年内更新过几次,如果你前半段用旧系数、后半段用新系数,做植被指数序列时会看到一次突变,很容易被解读成"植被退化事件"。正确做法是用最新系数把历史数据全部重处理一遍,或者至少记录下每段数据用的版本,在分析时做一致性校正。
再比如观测时刻,静止卫星的扫描时间在任务期内可能调整过(比如从 30 分钟改成 15 分钟,或者调整了全圆盘的启动时刻)。这些调整会在按小时聚合的统计量里造成偏差,尤其是对日变化分析影响很大。做长序列之前,先把时间戳的分布画出来看一眼,往往能提前发现这类问题。
8.4 高纬度地区的取舍
最后说一个容易被忽略的边界条件:高纬度。静止卫星在南北纬 55 度以上的像元拉伸严重,定量产品的误差快速增大。如果你的研究区包含高纬度,必须把静止和极轨的数据分开处理,或者干脆以极轨为主。
极轨在高纬度反而有优势,因为轨道倾角接近 90 度,越往极区过境越密集,重叠率越高。做极区拼图时反而是赤道附近容易出现条带间的缝隙。这个特性在做全球产品时要注意,不能用统一的插值策略处理所有纬度。
微波数据在高纬度的地表类型判断也是个大坑。海冰、积雪、冻土的微波信号特征互相之间很接近,用低频通道区分海冰和开阔水面在冬季很容易出错,必须引入气候态先验和时序连续性约束。
我在实际做区域产品的时候,最深的体会是:卫星数据的能力边界不是由参数表决定的,而是由你最不熟悉的那几个环节决定的。通道数、分辨率这些数字看一眼就懂,真正决定成败的是定标表有没有更新、投影参数有没有搞对、时间戳有没有统一、夜间的判据有没有失效——这些细节在任何一份产品说明里都不会写得太细,只能靠一次次跑数据跑出来。上面这些坑我基本都踩过一遍,写下来希望能让后来的人少走几步弯路。