首页 / 资讯中心 / 文章详情

NASA FIRMS火点数据全攻略:从MODIS/VIIRS传感器差异到下载实操

NASA FIRMS火点数据全攻略:从MODIS/VIIRS传感器差异到下载实操 ★ FEATURED ARTICLE
开头部分搞遥感的人十有八九都逃不过火点数据这一关。不管你是做森林火灾监测、秸秆焚烧巡查、土地利用变化分析还是给论文凑个验证数据NASA FIRMS平台上的VIIRS和MODIS火点产品基本是绕不开的两个数据源。我第一次接触这个平台是在做区域火点时空分布分析的时候当时被各种传感器名称、产品版本、投影格式搞得晕头转向下载下来的数据也不知道该信哪个字段。折腾了一周多踩了一堆坑才算把整条流程跑通。这篇我就把自己用下来的经验整理出来从传感器差异、数据字段含义、下载操作到常见问题的排查思路一次性说清楚给刚入坑的同行省点时间。正文开始1. FIRMS平台与火点数据整体认知1.1 FIRMS是什么为什么它能成为火点数据标配FIRMS全称是Fire Information for Resource Management System直译过来是“资源管理火灾信息系统”。它由NASA主导建设核心功能是把MODIS和VIIRS两颗传感器检测到的热异常点也就是我们说的火点做成标准化产品再通过网页和API分发给全球用户。这套系统最值钱的地方在于“近实时”——从卫星过境扫描到数据上线延迟通常在3小时以内很多机构直接拿它做火灾应急响应。我第一次用FIRMS的时候最直观的感受是这平台把遥感数据民用化了。以前你下载MODIS火点产品得去LP DAAC陆地过程分布式数据档案中心注册账号、下一堆HDF文件、再自己写代码拼接和提取火点坐标整套流程没有遥感基础的人根本跑不通。FIRMS直接把火点提取成了CSV、Shapefile、GeoJSON这些通用格式你甚至不用装任何遥感软件Excel里筛一筛就能用。不过也要提醒一句FIRMS是一个火点分发平台不是一个原始数据仓库。它提供的是经过处理的火点位置和属性信息你要是想做更深入的大气校正、地表温度反演那还是得去原始数据源下载L1/L2产品。这个区别后面我会详细讲。1.2 VIIRS和MODIS两颗传感器到底该选谁这是新手最常问的问题。先说结论做日常火点监测和分析首选VIIRS 375m产品做长时间序列的连续性分析MODIS是唯一选择。为什么得从这两颗传感器的设计差异说起。MODIS全称Moderate Resolution Imaging Spectroradiometer搭载在Terra和Aqua两颗卫星上。Terra上午过境约10:30Aqua下午过境约13:30每天能覆盖全球两到四次。它的热异常检测波段是4微米和11微米附近的中红外/热红外通道空间分辨率是1公里。这个分辨率什么概念一个像元1平方公里也就是说一个小火点可能只占像元的很小一部分检测灵敏度受限。VIIRS全称Visible Infrared Imaging Radiometer Suite搭载在Suomi NPP和NOAA-20/NOAA-21上。它的热异常检测波段同样在3.7微米附近空间分辨率做到了375米。分辨率提升了将近三倍这意味着更小的火点能被捕捉到城市火灾、小规模秸秆焚烧、零星森林火点VIIRS的表现比MODIS好得多。我做过一次实际对比同一天、同一个区域内MODIS检测到7个火点VIIRS检测到22个。差距非常明显。但VIIRS的时间覆盖是个短板——它的数据从2012年才开始序列要研究更长时间尺度的火灾变化规律MODIS自2000年以来的数据才是最可靠的选择。2. 火点数据产品与核心字段深度解析2.1 从HDF到CSVFIRMS产品的层次与格式FIRMS平台提供两种级别的产品形态。一种是你直接用网页勾选下载的成品——CSV、Shapefile、GeoJSON、KML这就是大多数人需要的。另一种是原始HDF格式的火点产品也就是MODIS MOD14/MYD14、VIIRS VNP14IMGTDL这些需要去LP DAAC或LAADS DAAC手动搜索下载。我的建议是如果你只是做统计分析、画分布图直接下载CSV或Shapefile就够了没必要去碰HDF。CSV里每行就是一个火点包含经纬度、时间、置信度、辐射功率等关键字段导入ArcGIS/QGIS或者写成Python脚本处理都非常方便。HDF文件适合什么场景呢一是你要做自定义投影转换和拼接二是你需要提取火点像元的热异常原始值做进一步反演三是你要把火点数据和大气校正后的地表参数结合起来建模。这时候HDF里完整的数据结构才是你要的。但HDF文件用普通软件打不开需要HDFView或GDAL库学习成本比较高新手不建议一上来就碰。2.2 每个字段都是什么意思经纬度、置信度、FRP一次搞懂我第一次打开下载好的CSV时看着那一堆字段名是有点懵的。这里把最常用的字段逐个拆开讲。latitude和longitude火点中心像元的经纬度坐标系是WGS84地理坐标。注意这是像元中心位置不是实际火源的精确位置。由于像元分辨率的关系VIIRS 375m产品的位置精度在几百米量级MODIS 1km产品可能偏差更大一些。做野外验证的时候不要拿着GPS跑到经纬度点上就去找火烧痕迹要结合影像在周边范围搜索。scan和track这两个是像元的空间尺寸单位是米。scan是扫描方向宽度track是轨道方向长度。MODIS产品中受像元边缘效应的影响扫描方向越靠近边缘像元变形越严重。VIIRS 375m产品也存在类似情况但整体变形较小。confidence置信度这是评估火点可靠性的关键字段。MODIS产品中取值是0到100的百分比数值0-15算low16-29是nominal30-100是high。VIIRS 375m产品中分别用l、n、h表示low、nominal、high。日常分析中建议尽量保留nominal和high或者只保留high具体取决于你的应用场景。做严谨的科研论文一般只保留high置信度火点做趋势分析和快速巡查可以放宽到nominal。frpFire Radiative Power火辐射功率单位是MW兆瓦。这个值衡量的是火点释放能量的速率。FRP和火烧面积存在相关性但并不是线性关系因为不同植被类型、不同燃烧阶段单位面积的辐射功率差异很大。你可以用FRP做火灾强度的时空变化分析比如对比不同年份或不同时段的大火过程但不要直接用它反推过火面积误差会非常大。bright_ti4、bright_ti5MODIS产品中对应的4微米和11微米通道亮温单位是开尔文K。这两个值是火点检测的原始依据理论上背景像元亮温越高检测阈值就越高。VIIS 375m产品对应的是bright_ti43.74微米附近等字段。如果你要做火点温度特征分析这些亮温值是有价值的参考。acq_date和acq_time火点被卫星捕获的日期和过境时间时间格式是UTC。这里容易踩坑的是时区问题中国大陆地区比UTC快8小时你在分析国内数据时记得把UTC时间加上8小时才是北京时间。很多新手拿到数据直接按UTC统计日变化规律结果火点最多的时间段是凌晨两三点搞得一头雾水。daynightD表示白天过境N表示夜间过境。VIIRS夜间数据对小火点的检测比白天更灵敏因为背景温度低、对比度强。做昼夜火点对比时要特别注意这个字段不能把白天和夜间的检测能力差异当成实际火点分布差异。2.3 关于热词延伸大气校正和火点数据的关系很多人搜MODIS卫星数据大气校正然后跑到FIRMS上来找数据这其实是对不上号的。FIRMS提供的火点产品本身已经做了大气校正相关的处理尤其是热异常检测中使用的分裂窗算法本身考虑了大气水汽的吸收影响。也就是说你直接用FIRMS的CSV做分析不需要额外做大气校正。但对MODIS的原始反射率数据或亮温数据做地表参数反演大气校正是绕不开的步骤。比如你想分析过火区域的地表反射率变化得先下载MOD09GA地表反射率产品——这个产品已经经过大气校正或者下载MOD02/MOD021KM原始数据自己用6S模型或FLAASH做校正。这时候的数据处理和火点分析是两条不同的技术路线别混在一起。我见过有同学把火点CSV和原始L1B混在一起处理处理流程完全不对结果自然说不通。3. 实操下载全流程从注册到拿到数据3.1 账号注册与登录省时间的关键一步访问firms.modaps.eosdis.nasa.gov你会看到一个地图界面预设了几个示例区域。如果你只是偶尔下载一两个区域的数据游客身份也能用但要下载2001年以来的历史数据、批量下载大区域数据或者想用API自动拉取数据那必须得注册账号。注册流程非常简洁邮箱验证即可不需要填单位信息。但要注意一点使用FIRMS数据发表论文时必须正确引用数据来源具体引用格式在平台的Citation页面可以看到建议保存一份免得写致谢时才翻。我个人的经验是注册后第一件事是把默认下载区域改成你常年关注的区域比如你研究的是东北林区这样每次打开平台就不用重新框选了。这个设置在My Area里可以管理支持保存多个自定义区域。3.2 按需选择时间范围、区域、数据源、文件格式这一步是整个流程中信息量最大的环节面板上每一项选择都要理解清楚。我按操作顺序逐项说明。时间范围FIRMS上VIIRS数据从2012年1月开始MODIS从2000年11月开始。你可以选择单日、连续多日或者一次性拉取整个月的数据。但要注意时间跨度太大时一次性下载经常超时我实测超过30天的全球范围数据网页下载基本必失败。解决方案是用它的API分批拉取或者直接在Advanced Search里分时间段多次下载。区域选择可以直接在地图上框选也可以输入左上角和右下角经纬度。这个功能非常实用比如你只研究某个省直接把经纬度范围填进去下载的数据量会小很多后面的处理也省事。这里分享一个小技巧框选区域时稍微向外扩展0.2-0.5度避免火点落在边缘像元时被裁掉。数据源选择三种选项——MODIS1kmTerra/Aqua聚合、VIIRS S-NPP375m、VIIRS NOAA-20375m。如果做常规分析选VIIRS S-NPP就行如果想对比不同传感器的一致性可以把多个数据源都勾上。但要注意不同传感器之间的检测能力有差异合并分析时最好先做一致性评估。文件格式有CSV、Shapefile、GeoJSON、KML等。我的建议是连GIS分析就用Shapefile注意它下载后是个压缩包里面包含shp、shx、dbf、prj等文件缺一个都打不开网站展示或Google Earth预览就用KML自己写代码处理CSV或GeoJSON最方便。还有一点CSV和GeoJSON的体积更小下载速度更快全球范围单日的数据也就几MB。3.3 两种下载路径网页交互与API自动拉取网页交互就是上面说的那些操作勾完提交平台生成下载链接点击即可。适合数据量小、偶发使用。如果你有大量数据要下比如把某省2015年到2024年每年夏季的火点全部拉下来那一定用API。FIRMS的API有两种Map Key方式和直接API方式。Map Key在登录后的个人信息页可以申请钥匙图标把Key加进请求URL就能用脚本自动拉取数据了。示例请求格式大致是https://firms.modaps.eosdis.nasa.gov/api/area/csv/{MAP_KEY}/VIIRS_SNPP_NRT/{region}/{start_date}/{end_date}其中{region}可以是预设区域代码也可以是自定义坐标min_lon,min_lat,max_lon,max_lat。NRT表示近实时数据如果你要历史归档数据用STANDARD替换NRT。我实际跑过一天24个月的月度下载任务脚本写好后大概半小时就把所有数据本地存档了。效率差了一个量级。3.4 近实时NRT和历史标准STANDARD产品怎么选这两个词在FIRMS上经常出现含义却常被忽略。NRTNear Real-Time是近实时产品卫星观测后3小时内生成并发布主要用于起火点预警和应急响应。缺陷是算法还处于初期阶段存在一定误报漏报且部分NRT数据后续会被标准产品修正。STANDARD是经过再处理的标准科学产品质量稳定适合科研分析。但它从观测到发布快则一周慢则一个月时效性差。我的经验是做实时预警用NRT做论文分析用STANDARD。上下两类产品之间的叠加对比可以用来剔除误警。4. 火点数据处理的坑与实用技巧4.1 投影与坐标系的坑为什么火点位置对不上底图下载的CSV和Shapefile都是WGS84经纬度坐标这个坐标在大多数地图网站Google Earth、天地图里是直接可用的。但如果你在ArcGIS或QGIS里面叠加了其他投影的数据比如兰伯特投影的遥感影像默认坐标参考不一致火点就会跑到奇怪的位置去。解决方式很简单在GIS软件中先检查数据的坐标系通常是WGS84把底图投影关了或者转换到目标投影再叠加。QGIS在这个方面比ArcGIS人性化很多打开时就提示选择坐标转换方式默认选项基本不会出问题。4.2 单位换算与字段类型CSV处理的隐藏细节有很多人用Excel打开CSV后惊觉frp值全是科学计数法某个字段显示为字符串。这是因为CSV里没有声明字段类型Excel自动推断时出了问题。我的建议是数据分析别用Excel用QGIS或者Pandas。用Pandas读CSV时记住设置dtype参数把confidence等字段指定为字符串避免判定成数值类型导致0001变成1。另外frp字段的单位是MW很多时候你想换算成W乘10的6次方即可。基础设施不完备的文献里有误写的千万要留意源平台页面字段说明和单位别照搬别人的脚本里写死的单位。4.3 数据量太大后的本地归档策略长期跟踪火点数据的人一定会遇到存储和命名的混乱问题。我自己的做法是建立统一的目录规范FIRMS/YYYY/{YYYY-MM-DD}_{source}.csv比如FIRMS/2024/2024-05-20_VIIRS.csv。配合一个月度汇总脚本把每天的CSV合并成一个年度文件分析的时候直接读年度文件即可。合并之前注意检查列名一致性FIRMS偶尔会调整输出字段不做检查直接concat会报错。我在2022年就遇到过他们增加了一个stype字段导致旧脚本崩溃的情况。5. 常见问题与排查技巧实录5.1 下载链接打不开或超时这是最多人反馈的问题。如果选择的区域过大、时间跨度过长FIRMS生成文件的时间可能超过平台限制导致超时。解决思路是化整为零按周下载或者按坐标小网格下载再本地合并。另外浏览器下载大文件中途断掉很常见建议用支持断点续传的下载工具或者干脆写脚本用API获取。5.2 明明有火情数据里为何没有火点这种问题往往不是平台出错而是火点检测的物理阈值造成的。卫星火点检测依靠的是中红外通道亮温相对于背景的异常抬升如果火点很小比如一两堆秸秆焚烧、被云遮挡、或处在火点检测算法抑制区如城市热异常多、太阳耀斑区就可能漏检。另外一个高发原因是分辨率MODIS 1km产品对上几米宽的火线很难检测到VIIRS 375m好很多但也不是万能的。碰到这种情况我的建议是补充高分辨率影像10m哨兵2号中红外波段也可以观测热异常逐像元排查。卫星火点数据更适合大范围趋势分析单点validation需要地面或无人机核实。5.3 单日数据异常偏多或偏少注意过境时间差异很多刚用的人没意识到单日数据是Terra与Aqua两颗卫星合并的结果其实两颗星的观测时相差约3小时。再叠加VIIRS S-NPP和NOAA-20的观测你看到的单日火点次数本质上是四次观测的混合统计。如果要严格清洗建议设计一个火点日频次单日观测到火点的卫星轨次变量而不是直接用火点个数除以天数。5.4 时区、日期边界导致统计错位上一节已经提过UTC转北京时间的问题这里再深化一点如果你统计每日火点数边界定义不同结果会差很多。按UTC统计一天从早上8点北京时间开始到第二天早上8点结束。按北京时间统计则以零点为界。两种口径下火点数量能差出10%以上。我建议在你的论文方法部分明确写清使用的时区口径并与当地防火部门数据匹配时尤其注意这一点。5.5 API请求配额与Key安全FIRMS的API有请求次数限制不同身份配额不同如果脚本设计不好很容易触发限制导致403。我的经验是每次请求之间至少sleep 1秒避免集中连发同时避免重复下载相同时间段的数据。另外Map Key是个人专属凭证别贴到公开的GitHub仓库里泄露后别人可以用你的配额消耗流量严重时会被平台封号。6. 从数据到业务火点数据的典型应用场景6.1 森林与草原火险评估火点数据最直接的应用就是森林草原火灾的监测。结合气象数据温度、湿度、风力和植被含水量指标可以构建火险等级模型。用FIRMS数据做历史火灾复盘时建议叠加火点持续时间和FRP值把单点过火和长时间高强度燃烧的大火事件区分开。6.2 秸秆焚烧巡查与政策评估在国内很多地区秸秆露天焚烧是秋冬季节的空气质量杀手。这些年各地为了应对秸秆焚烧经常用卫星遥感做巡查。VIIRS 375m的高分辨率在这个场景下优势明显能检测到面积很小的秸秆火点。但如果要用于执法取证记得结合区县边界做空间连接统计每个行政区内火点数量和高FRP火点占比形成日报表。6.3 火点对空气质量影响的协同分析火点数据最经典的跨领域应用是与气溶胶光学厚度AOD、PM2.5浓度做相关性分析。用火点做源解析时有几个细节容易被忽略。一是火点像素面积和火灾向大气排放的物质通量不是简单等比关系需要引入燃烧效率系数。二是要注意风向下风向站点PM2.5升高与火点的响应关系存在滞后一般用HYSPLIT后向轨迹模型做验证。三是时间尺度上通常滞后时间为2-6小时直接使用当日数据可能看不出关系。6.4 长时间序列的火灾时空规律挖掘MODIS自2000年以来的近25年数据序列是研究火灾年际变化和空间迁移的宝贵材料。你可以统计每个省每年的火点数量、夏季火点高发期时段变化、不同土地利用类型上的火点密度等。但要做长序列分析前面提到的产品一致性是关键——MODIS和VIIRS传感器差异导致2000-2012和2012-2025两段数据不是严格可比的需要做交叉标定或分段分析不然趋势分析出的结论可能只是传感器更替的假象。我写论文时最终选择了只用MODIS数据做长序列牺牲了少量空间分辨率但保证了时间一致性。结语部分最后再说一点我的个人体会。火点数据看起来只是一份坐标时间的表格用起来似乎简单但每个字段背后都是传感器物理机理和反演算法的层层叠加。很多分析翻车不是处理步骤写错了而是对数据本身的生成过程理解不够。所以我强烈建议各位不管用不用的上都把VIIRS 375M火点产品算法文档可从平台Algorithm页面下载通读一遍。花一个下午读文档能省下后面几周debug的时间。另外数据下载下来之后先用一个小范围、已知火情的数据做验证确认字段含义和坐标系都没问题再投入正式分析这会是你遥感数据生涯中最值得养成的习惯之一。
阅读完成 · 觉得有帮助?
咨询建站