ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

2001-2022年500米中国SIF栅格数据:原理、处理与应用指南

2001-2022年500米中国SIF栅格数据:原理、处理与应用指南 数据推荐这件事一般人都爱甩链接但我更愿意把数据的前世今生、参数含义和处理流程一并讲清楚。今天要推荐的这套2001-2022年500米中国SIF栅格数据我前前后后用了大半年从下载、裁剪、合成到踩坑每个环节都折腾过。如果你正在做植被生产力、碳循环、干旱监测或者粮食估产相关的研究这篇应该能帮你省不少时间。先说重点SIF的中文名叫太阳诱导叶绿素荧光它是植物在光合作用过程中被动发射出来的一种微弱近红外光信号波段集中在650—800纳米附近。太阳光照到叶片上叶绿素吸收光能后一部分用于驱动光合作用另一部分以热的形式耗散还有一小部分会被重新发射出来形成荧光。这部分信号和光合作用的光化学反应直接相关所以SIF被很多同行视为比NDVI、EVI更接近植被真实生产力的遥感指标。这套数据的特点很明确覆盖中国全境时间跨度从2001年到2022年共22年空间分辨率做到500米栅格格式适合直接进GIS或Python生态做分析。对搞地表过程模拟、区域碳收支估算的人来说这套数据属于拿来就能用的长时序底图。1. 先说清楚SIF到底解决了什么问题和NDVI差在哪1.1 NDVI的饱和和滞后让人又爱又恨做遥感的人几乎没有没用过NDVI的。但用久了就会发现它有两个硬伤一是高植被覆盖区容易饱和比如热带雨林、茂密农田NDVI数值常年贴近0.8—0.9看不出差异等于把丰富的生长信息给压扁了二是NDVI反映的是植被绿不绿和实际光合速率之间存在时间滞后和生理解耦。植物叶片变绿之后光合能力不一定同步上升遭遇干旱胁迫时叶片可能还是绿的但光合作用已经明显受到了抑制这时候NDVI往往反应迟钝。我2020年做华北平原冬小麦的干旱胁迫分析时就吃过NDVI的亏。某个年份春季降水偏少农田的NDVI到四月中旬都还和正常年份差不多但实际产量已经受到影响。后来换成SIF数据做对照发现SIF在同等条件下明显提前捕捉到了光合作用的下降。这个差异不是个例而是植被指数本质上的盲区。1.2 SIF直接指向光合作用的引擎SIF的优势在于它和光合作用的光化学反应共享同一个能量来源。光能被叶绿素吸收后三个去向是竞争关系光化学淬灭、热耗散、荧光发射。当植物受到干旱、高温、病害等胁迫时光化学淬灭比例下降热耗散和荧光发射比例会发生变化。因此SIF信号的涨落能更直接地反映光合机构的工作状态而不是停留在叶片颜色这种表观特征上。用一个生活化的类比NDVI像是看一家工厂里有多少台机器设备规模SIF则像抄电表实际运行负荷。机器摆在车间里并不等于它在运转电表读数才能告诉你它到底开工了多少。这也解释了为什么很多全球GPP总初级生产力产品的验证报告里SIF驱动的模型在中高纬度、干旱半干旱区的表现普遍优于纯植被指数驱动的模型。1.3 中国区域长时序数据的稀缺性全球范围的SIF产品其实不少比如GOME-2的SIF、OCO-2的SIF、TROPOMI的SIF但它们要么时间连续性差OCO-2是2014年之后、要么空间分辨率太粗GOME-2是0.5度格点要么时间覆盖不完整。对于中国这种地形复杂、云雨天气多的区域要高分辨率、长时序、稳定连续的SIF栅格并不是容易的事。我理解这套2001—2022年500米数据的核心价值就是把长和细结合在一起。22年在中国大部分地区跨越了完整的植被动态过程覆盖了退耕还林、极端干旱事件、粮食生产波动等不少标志性时段500米分辨率则足以支撑省级、县级乃至部分区域尺度的分析不会像公里级数据那样把地块细节抹掉。2. 这套数据的来历500米分辨率是怎么造出来的2.1 卫星荧光观测的原始分辨率困境直接测SIF的卫星传感器空间分辨率普遍不理想。早期GOME-2的荧光产品分辨率是0.5度也就是大约40—50公里OCO-2的SIF虽然是点状观测足迹大概1.3公里见方但它是采样型传感器没办法连续成像TROPOMI的SIF能做到3.5×7公里、后来升级到5.5×7公里已经算很好了但距离地块尺度还是差很远。等于说现有的SIF卫星观测像手电筒一样虽然照得见亮不亮但没法把每一个田块都看清楚。2.2 用机器学习做降尺度的核心逻辑500米SIF栅格不是靠某一颗卫星直接扫出来的而是通过机器学习模型学习了卫星SIF产品与地表反射率、植被指数、气象要素之间的关系之后再把这些关系外推到高分辨率的大气校正反射率上逐像元进行估算。业内比较常用的做法是用MODIS的500米地表反射率产品MOD09A1、植被指数产品MOD13A1加上ERA5的气温、降水、辐射等气象数据作为模型的输入变量把卫星SIF产品比如TROPOMI SIF或GOME-2 SIF作为训练目标用随机森林、人工神经网络等算法建立非线性映射最后得到每年、每旬或每月的500米SIF栅格。这种思路和全球知名的GOSIF产品一脉相承只是会把训练区域更聚焦到中国并针对中国的地表类型和气候特征做调优。这里有一个关键点需要提醒SIF本身的物理量级很小通常在0—2 mW/m²/sr/nm左右模型在拟合时很容易出现系统性偏低或偏高。所以合格的SIF降尺度产品都会有一个后处理校正步骤比如用实测通量站的荧光观测或高分辨率卫星SIF像元做线性调整。2.3 时间范围和单位设计背后的考虑从2001年起算是因为2000年底MODIS传感器随Terra卫星发射并开始稳定获取地表数据2001年正好是公认的MODIS数据连续可用的起点。500米分辨率的设计也是为了和MOD09A1、MOD13A1完全对齐这样做时间序列分析时不用再担心栅格像元不对位的问题。时间粒度上这类产品一般会提供8天合成或月合成两种形态。8天合成能保留季节动态适合做物候分析月合成噪声更小适合做年际趋势。我建议下载时优先拿月合成因为它兼具时间分辨率和数据质量处理起来也不会像日序列那样把磁盘和内存吃满。3. 核心参数与文件格式拿到数据之前先看懂这张表3.1 我整理的一份核心参数速查表参数项常见值说明空间范围中国全域含南海诸岛等以数据集边界为准一般为矩形覆盖时间范围2001年1月—2022年12月22年连续序列空间分辨率500米与MODIS 500米反射率产品对齐时间分辨率8天/月推荐优先使用月合成栅格格式GeoTIFF单波段可直接用GDAL读取投影坐标系WGS84经纬度 或 Albers等面积使用前先检查像元值单位mW/m²/sr/nm荧光辐射强度单位有效值范围通常0—4可能出现少量负值负值一般来自噪声建议掩膜掉无效值编码-9999 或 NaN处理时先做掩膜这张表需要对照你拿到的实际数据逐一核对。我遇到过不止一次产品说明文档里写的投影和实际文件不一致的情况。3.2 文件命名规则和波段含义典型命名格式像SIF_500m_China_2001_08.tif或者类似结构_后面依次是年份、月份。单波段GeoTIFF就意味着每个文件只有一层值就是SIF均值或合成值。也有的产品会在属性里附带QC质量控制层但很多时候是单独成文件使用时需要先检查是否有配套的质控栅格。这里要特别提醒一句不同来源的同类产品单位定义可能有细微差别。有的产品用mW/m²/sr/nm有的用W/m²/sr/µm二者差三个数量级。拿到数据后先做个简单的统计描述看看最大值是否在合理区间0—4如果全中国最大SIF到了几百几千大概率是单位换算出了问题。3.3 栅格规格和像元对齐问题由于MODIS在很多区域存在边界重叠和分辨率名义值问题500米栅格的实际像元尺寸在WGS84投影下并不是严格0.0045度。如果你准备把多个年份的数据做叠加或者做栅格运算我建议先统一重采样到一个基准网格上。我自己的做法是先读取第一期的栅格信息把投影、行列号、仿射变换参数保存下来然后所有后续数据都resample到这个基准网格。这样做虽然多了一步但后面无论是做趋势分析、差值计算还是掩膜提取像元都能一一对应不会出现因为网格错位导致的人为误差。4. 从下载到出图一套完整可复现的处理流程4.1 下载解压后第一步先做体检拿到压缩包后别急着解压分析先用GDAL或者Python批量读取文件做三件事检查文件数量是否齐全按月数核对、检查每个文件的投影和坐标范围、检查无效值占比。我写过一个小脚本跑一遍就能输出一个清单哪个文件有问题一眼就能看出来。import rasterio from rasterio.windows import from_bounds import glob files sorted(glob.glob(SIF_500m_China_*.tif)) print(f共找到 {len(files)} 期数据) for fp in files[:5]: with rasterio.open(fp) as src: print(fp) print( CRS:, src.crs) print( 范围:, src.bounds) print( 尺寸:, src.width, src.height) print( 分辨率:, src.res)注意用rasterio时需要提前安装GDAL依赖Windows底下建议直接装conda环境或者用pip安装rasterio的二进制轮子省得编译出问题。4.2 裁剪到研究区三种方式对Dillage影响如果你只需要某个省或某个流域裁剪是必须的。裁剪有两种主流的实现方式一是按边界矢量掩膜二是按矩形范围裁剪。按边界矢量掩膜的好处是结果和行政区界限完全一致做统计时能和统计年鉴对齐缺点是边缘会产生锯齿状边界而且处理速度慢。按矩形范围裁剪则更快适合只做趋势分析、不关心行政边界的场景。我提供一个按矢量边界掩膜并且同时重投影到Albers等面积投影的代码片断import geopandas as gpd import rasterio from rasterio.mask import mask # 读取研究区边界 shp gpd.read_file(study_area.shp) # 统一边界和栅格的坐标系 shp shp.to_crs(EPSG:4326) # 目标投影Albers等面积 dst_crs EPSG:32650 # 以实测区域为准这里示例为UTM 50N实际中国区域推荐使用全国Albers with rasterio.open(SIF_500m_China_2001_08.tif) as src: out_image, out_transform mask(src, shp.geometry, cropTrue) profile src.profile.copy() profile.update(driverGTiff, heightout_image.shape[1], widthout_image.shape[2], transformout_transform, crssrc.crs, nodata-9999) with rasterio.open(clipped_SIF_2001_08.tif, w, **profile) as dst: dst.write(out_image)全国尺度的Albers投影EPSG代码建议直接查表确认不要照搬我这里的示例值。投影选对很关键因为Albers等面积能保证面积可比做像元统计时最稳妥。4.3 年度合成最大值、均值还是生长季累计做年际趋势时常见需求是把12个月的月合成SIF合成为年值。具体选哪种合成方式取决于你的研究目标。如果是监测极端事件用年最大值容易受云噪声干扰如果是反映全年总光合能力我建议用生长季均值4—10月平均或者全年12个月均值。要是你做的是GPP估算或碳汇估算可以进一步做累计值即把生长季每个月SIF相加这更接近光合同化量的总量逻辑。import xarray as xr import numpy as np import glob ds xr.open_mfdataset( sorted(glob.glob(clipped_SIF_2001_*.tif)), combineby_coords ) # 年内的月均值 annual_mean ds[band_data].mean(dimtime, skipnaTrue) annual_mean.rio.to_raster(SIF_2001_annual_mean.tif)这里要注意xarray打开GeoTIFF序列时时间维不是自动识别的需要手动把文件名里的年份月份解析成时间坐标。否则会默认按整数索引时间维顺序错乱。4.4 出图的配色与可视化细节SIF栅格出图时配色表选用低值深蓝到高值红棕的渐变就可以。但比较关键的技巧是设置合理的断点中国大部分区域的月SIF在0—1.5之间如果你用0—2的色带华南常绿林和北方草原之间的差异会被压缩看起来全国一片黄绿。建议先把统计分位数计算出来比如2%和98%分位数再把色带范围拉伸到这个区间。批量出图时务必统一色带范围不然不同年份的图没法放一起比较。5. 质量验证与使用边界哪些场景能信哪些不能信5.1 和站点通量数据做对比拿到任何一套SIF产品第一反应都应该是这个数靠谱吗。我通常的做法是找几个中国通量观测网ChinaFLUX的站点把站点所在位置的SIF像元值提取出来和站点观测的GPP做相关性分析。如果相关系数在0.6以上基本可以说明SIF在季节尺度上对光合作用敏感如果0.4以下那就得怀疑一下降尺度模型在中国复杂地形的表现。需要注意的是SIF和GPP之间本身不是完全同步的线性关系受光照方向、冠层结构、叶绿素含量影响所以要放宽验证标准重点是看变化趋势是否一致而不是要求散点完全落在1:1线上。5.2 和公开的TROPOMI SIF产品对比空间格局TROPOMI SIF的原始分辨率是7公里左右虽然比500米粗糙但它毕竟是直接观测的卫星产品物理可信度高。把TROPOMI某个月平均SIF重采样到0.05度再和这套500米数据同时段聚合到0.05度做差值图正常情况下降尺度产品在空间格局上应该和TROPOMI大体一致。我拿2020年夏季对比过一次大部分区域差值在±0.3 mW/m²/sr/nm以内但个别像元会出现明显的条带状偏差尤其在云量多、气象再分析资料不确定的青藏高原和云贵地区。这些区域使用时要谨慎最好结合再分析数据和站点观测做人工核对。5.3 使用边界哪些问题这套数据回答不了500米SIF数据不是万能的我心里有几条红线单日的SIF值不要用。降尺度数据的时间粒度一般是8天及以上单日值是插值出来的噪声极大。城市地块和细小河道不要用。500米像元混合了大量背景信息地块尺度的精细分析至少要30米或10米分辨率的荧光数据而目前这类数据还没有真正业务化的公开产品。云雨频繁月份慎用。中国西南地区夏季云覆盖严重MOD09A1合成本身质量就低SIF估算结果会出现明显低估。趋势斜率不能机械外推。2001—2022年的趋势是这段时期的样本刻画气候变化情景下的未来趋势未必延续同样的斜率。6. 我实际使用中踩过的几次坑和一些建议6.1 坐标参考不一致导致的多栅格对齐失败第一次用这套数据做全中国SIF趋势的时候我把2001到2022所有月份文件直接扔进xarray合并结果输出图上一半省份的花纹是错位的。查到最后发现北方省份的影像和南方省份的影像投影不一致一个文件是AGD澳洲datum别的坐标系另一个文件是标准WGS84。后来统一用rasterio强制重投影到EPSG:4326再合并问题解决。建议只要涉及多个栅格的运算先做一次坐标系普查。写个循环把所有文件的CRS打印出来人工扫一眼也要不了五分钟。6.2 异常值处理负值和极大值一起处理SIF栅格里偶尔会出现负值噪声和极大值云边缘或雪面的伪信号。我一开始只把小于0的值掩膜掉结果某个像元连续十几年的年均SIF高达3.8显然有问题。后来改为把超过全中国合理上限的像元一并做掩膜做法是用每个月的99.5%分位数作为动态上限超过这个阈值的像元视为异常。这个方法比固定阈值更灵活因为不同月份、不同区域的背景SIF水平不同固定阈值容易把华南高值区误杀或者漏掉高原上的异常值。6.3 数据的补充思路结合VOD、气象数据一起用如果做长时间序列研究我强烈建议不要只盯SIF把植被光学厚度VOD、气温、降水、土壤湿度放进来做多变量联合分析。SIF对光合速率的反映虽然直接但受光照影响很大干旱年份里云少、光照强SIF反而可能偏高而与VOD反映的植被水量耦合后就能区分出是水分限制导致的光合下降还是光照增强导致的荧光升高。我自己在写论文的时候就是把这套SIF数据做成自变量之一配合ERA5的VPD饱和水汽压差做贡献率分解最终解释力比单用SIF高出一截。6.4 选择本地存储栅格数据尽量SSD最后说一句很多人忽略的22年月合成GeoTIFF虽然单个文件不算太大500米覆盖全国单文件可能30—100MB不等但全部月份加起来也有几个GB量级。如果是在机械硬盘上做批处理IO开销能拖慢整个流程两到三倍。我后来把数据转移到NVMe固态盘上同样一批文件的读取和裁剪时间缩短非常明显。如果你打算做全国尺度的逐月趋势分析建议提前把数据转换成分块存储的云计算格式比如Zarr或COG配合Dask做并行读取内存占用和运行速度都会更理想。不过这个操作对初学者有门槛第一次做还是从逐文件循环开始比较稳妥。6.5 数据更新的节奏这类长时序产品一般会随卫星数据的更新逐年版追加。2022年之后的数据通常会晚几个月到一年才会发布。做历史分析到2022年没问题但如果要做近实时监测还是得考虑TROPOMI的准实时SIF产品再做降尺度处理。个人建议把2001—2022年这套数据当作研究基线用来建立历史趋势和基准状态日常监测用准实时产品两者互相校验比单独依赖任何一套都靠谱。说了这么多总结起来其实就一句话SIF是现阶段遥感反演植被光合作用的最优选项之一而500米×22年中国区这一套数据恰好把空间细节和时间跨度都补上了。你拿到手之后先把投影、单位、有效值范围这三个基础核对清楚再进入分析流程基本就不会出大问题。做研究最怕的不是结论不漂亮而是数据本身带坑却没发现。希望这篇能帮你绕开我踩过的那几个坑。
返回列表