4. 遥感图像数字表达:栅格数据模型、波段与多光谱、空间分辨率/光谱分辨率/辐射分辨率/时间分辨率

好,咱们进入正题。遥感图像说到底,就是一张数字照片。但跟手机拍的照片不一样,它藏着很多“看不见”的信息。这一章,我就带你拆解一下,卫星图像到底是怎么用数字表达的。

4.1 栅格数据模型:一张巨大的网格

卫星图像最底层的存储方式,叫栅格数据模型。说白了,就是把地面切成一个个小格子,每个格子记录一个数值。

你想想看,一张卫星图像,本质上就是一个巨大的二维数组。每个格子叫“像素”,像素的值代表地面某个位置的信息。比如可见光波段,像素值就是亮度;红外波段,像素值就是温度。

核心概念:栅格 = 行 × 列 × 波段。每个像素有唯一的坐标和数值。

我在项目中遇到过一件事:有次处理一张10米分辨率的影像,整张图有1亿个像素。如果不懂栅格模型,直接当普通图片读,内存直接爆掉。嗯,这里要注意,处理大影像时,一定要用分块读取或者金字塔结构。

4.2 波段与多光谱:不止是黑白照片

普通照片只有红、绿、蓝三个通道。卫星图像呢?可以有几十个甚至几百个通道。每个通道就是一个“波段”。

举个例子,Landsat 8卫星有11个波段。除了红绿蓝,还有近红外、短波红外、热红外等等。每个波段记录不同波长的电磁波反射或辐射信息。

波段名称 波长范围(μm) 主要用途
Band 1 (海岸/气溶胶) 0.43-0.45 海岸带监测、气溶胶反演
Band 2 (蓝) 0.45-0.51 水体穿透、植被识别
Band 3 (绿) 0.53-0.59 植被健康评估
Band 4 (红) 0.64-0.67 植被叶绿素吸收
Band 5 (近红外) 0.85-0.88 植被生物量估算
Band 6 (短波红外1) 1.57-1.65 土壤湿度、地质分类

多光谱数据的好处是,你可以组合不同波段,提取出肉眼看不到的信息。比如用近红外和红波段计算NDVI(归一化植被指数),就能判断植被长得好不好。

我的习惯:拿到多光谱数据,第一件事就是看波段列表。不同卫星的波段编号不一样,千万别搞混。我曾经因为搞错波段顺序,算出来的NDVI全是负值,排查了半天才发现问题。

4.3 空间分辨率:看得多清楚?

空间分辨率,就是每个像素对应地面的大小。比如10米分辨率,意味着一个像素代表地面10米×10米的区域。

分辨率越高,细节越清楚,但数据量也越大。我常用的几个分辨率级别:

  • 低分辨率(>100米):MODIS卫星,适合大范围气候监测
  • 中分辨率(10-100米):Landsat、Sentinel-2,适合农业、林业
  • 高分辨率(<10米):WorldView、高分系列,适合城市规划、精细识别

你想想看,如果要做城市建筑物提取,用30米的Landsat数据,一个像素可能包含好几栋楼,根本分不清。这时候就得用高分辨率数据。

避坑指南:我曾经为了省钱,用Landsat数据做道路提取,结果精度惨不忍睹。后来换了2米的高分数据,效果立竿见影。记住:分辨率不够,算法再牛也白搭。

4.4 光谱分辨率:能区分多少种颜色?

光谱分辨率,指的是传感器能区分多少种波长的能力。波段越多,光谱分辨率越高。

普通多光谱卫星有4-10个波段。高光谱卫星呢?可以到几百个波段。每个波段只覆盖很窄的波长范围,就像用几百个滤镜拍照。

高光谱数据的好处是,可以识别地物的“光谱指纹”。比如不同矿物、不同作物品种,在光谱曲线上都有独特的形状。

但代价也很明显:数据量巨大,处理起来非常慢。我处理过一景高光谱影像,200个波段,每个波段1GB,总共200GB。嗯,这时候就得用降维算法了。

4.5 辐射分辨率:灰度级有多细?

辐射分辨率,就是传感器能区分多少级亮度。通常用比特数表示。8比特就是256级灰度,16比特就是65536级。

辐射分辨率越高,图像的细节越丰富。比如在阴影区域,8比特数据可能一片漆黑,但16比特数据还能看到细节。

我个人的经验是:做定量分析时,尽量用16比特数据。8比特数据做分类还行,但做反演(比如反演叶面积指数),精度就差很多。

4.6 时间分辨率:多久拍一次?

时间分辨率,就是卫星对同一地点重复拍摄的周期。比如Landsat是16天重访一次,Sentinel-2是5天一次。

时间分辨率高,就能做时序分析。比如监测农作物生长过程、城市扩张、森林砍伐等。

但要注意:实际重访周期受云层影响很大。我曾经等一景无云影像,等了整整两个月。所以做时序分析时,一定要考虑云覆盖问题。

4.7 四种分辨率的关系:一张图说清楚

下面我用一张SVG图,把这四种分辨率的关系梳理一下。你看完就明白了。

遥感图像四种分辨率关系图 遥感图像 数字表达 空间分辨率 像素对应地面大小 光谱分辨率 波段数量与宽度 辐射分辨率 灰度级数(比特数) 时间分辨率 重访周期 四种分辨率相互制约,需根据应用场景权衡选择

这张图你看懂了吗?四种分辨率不是独立的,它们互相制约。比如空间分辨率高了,幅宽就小,时间分辨率就低。光谱分辨率高了,信噪比就下降。做项目时,一定要根据需求权衡。

4.8 实战:用Python读取栅格数据

光说不练假把式。我带你用Python读一张真正的卫星影像。这里用rasterio库,它是处理栅格数据的利器。

import rasterio
import numpy as np

# 打开GeoTIFF文件
with rasterio.open('landsat8_sample.tif') as src:
    # 查看基本信息
    print(f"行列数: {src.height} x {src.width}")
    print(f"波段数: {src.count}")
    print(f"空间分辨率: {src.res}")
    print(f"坐标参考系: {src.crs}")
    print(f"数据类型: {src.dtypes}")
    
    # 读取第一个波段
    band1 = src.read(1)
    print(f"波段1的统计: min={band1.min()}, max={band1.max()}, mean={band1.mean():.2f}")
    
    # 读取所有波段
    all_bands = src.read()
    print(f"数据形状: {all_bands.shape}")  # (波段数, 行, 列)

这段代码很简单,但很实用。我每次拿到新数据,第一件事就是跑这个脚本,看看数据的基本情况。特别是数据类型,如果是整型,记得转成浮点再做计算,不然精度会丢失。

我的建议:处理遥感数据时,养成好习惯——先看元数据,再动数据。元数据里藏着很多坑,比如投影信息、无效值设置等。我曾经因为没检查无效值,算出来的结果全是NaN,浪费了半天时间。

好了,这一章的内容就到这里。四种分辨率的概念,你记住了吗?栅格模型、波段、分辨率,这些是遥感图像数字表达的核心。下一章,我们会深入聊聊如何用这些数据做实际的分析。


公众号:蓝海数据掘金营,微信deep3321