
搞遥感的人十个里有八个迟早会碰上“火点”这个需求。不管是做森林防火监测、秸秆焚烧巡查、碳排放估算还是给论文凑一张研究区火点分布图第一步永远是数据从哪来我最早是到处搜各种免费数据源折腾了一圈最后基本固定在NASA的FIRM平台配合VIIRS和MODIS的火点产品。这套组合用下来最省心、最稳定而且全免费。今天就把这套数据的门道和下载方法一次讲清楚。这个内容适合谁刚入门遥感、需要火点数据但不知道怎么下的人做生态、大气、农业相关研究需要把火点叠加到其他数据里的研究生甚至是在应急或环境部门工作、需要快速获取火点分布信息的从业者。全文会分成几个部分先讲清楚VIIRS和MODIS两种火点数据到底是什么、有什么区别再重点介绍FIRM平台的使用方法然后一步步演示下载流程最后对下载后的字段做一份详细解读再附上我实际操作中积累的常见问题排查记录。1. 先搞清楚数据源VIIRS火点与MODIS火点到底有什么不一样很多人一上来就直接点下载结果数据下了一堆连分辨率、卫星来源、像素含义都搞不清楚。这个开头如果没打好后面分析十有八九要翻车。所以我建议先花十分钟把两个传感器搞清楚。1.1 两个传感器、四颗卫星火点数据的基本身份信息MODIS全称是中分辨率成像光谱仪分别搭载在Terra上午星地方时约10:30过境和Aqua下午星约13:30过境两颗卫星上。它的火点产品编号为MOD14和MYD14空间分辨率是1公里扫描幅宽2330公里。一颗卫星一天能对同一区域覆盖一到两次两颗合起来能捕捉到一天内两次过境时的火情。VIIRS全称是可见光红外成像辐射计搭载在Suomi NPP卫星以及后续的NOAA-20、NOAA-21上。它的火点产品编号为VNP14IMG一个关键优点是空间分辨率做到了375米比MODIS的1公里精细得多。375米和1公里的差别在实际应用里非常大——VIIRS能探测到更小、更热的火点很多MODIS看不到的小规模火情VIIRS能捕捉到。打个比方MODIS像是用中焦镜头拍全景看得广但细节糊VIIRS像是换了个长焦镜头同样拍一遍能看清的细节更多。对于秸秆焚烧、野外用火这类面积不大、亮度不高的火点VIIRS的探测优势特别明显。1.2 产品类型近实时与标准产品的区别FIRM平台上提供的火点数据通常分为两种延迟级别近实时数据NRT卫星过境后大约2到3小时就能在平台上看到适合做应急监测和动态巡查。标准科学数据Standard Science延迟几天到几周不等经过了更完整的质量校正适合科学研究、论文分析。实际使用中如果不是做需要严格定量的学术研究NRT数据已经基本够用了。但如果你要拿火点去和别的数据做长时间序列分析建议还是下载标准产品或者至少对比一下两种数据在同一天的表现避免近实时数据里某些未被完全校正的误差影响结论。1.3 关于“MODIS卫星数据大气校正”的热词多说一句最近“MODIS卫星数据大气校正”这个词在搜索圈里讨论很多很多人问下载了MODIS火点产品之后是不是还要做大气校正答案是不需要。火点产品本身不是原始辐射数据而是已经经过辐射定标、地理定位、云掩膜等一系列处理的二级产品官方在处理流程中就已经做了大气层面的修正。真正需要自己做大气校正的是你下载了MODIS L1B原始反射率数据想反演地表参数、计算植被指数等科研任务时才要做常用方法包括6S模型、FLAASH模块、ATCOR模块或者直接下载MOD09GA地表反射率产品来避开这一步。所以需要区分场景做火点研究下载产品直接用做地表参数反演才去考虑大气校正。2. FIRM平台功能导览为什么我推荐用它2.1 FIRM到底是干什么的FIRM全称是Fire Information for Resource Management System是NASA下属的一套火灾资源管理系统可以理解为“火点数据的一站式集散地”。它的核心作用是把MODIS和VIIRS探测到的全球火点信息做成一个统一、可查询、可下载的平台。F.FIRM的核心价值是把几颗卫星、多个传感器的火点检测结果整合在一个界面里对外提供地图浏览、数据筛选、批量下载、API接口等服务免去了你自己去各个数据源分别找数据的麻烦。目前全球范围内做火点监测的免费平台里FIRM的覆盖能力、数据完整度、稳定性都是第一梯队。2.2 平台支持的数据源与时效在FIRM上可以同时获取六套火点数据MODIS MOD14Terra卫星1公里分辨率MODIS MYD14Aqua卫星1公里分辨率VIIRS VNP14IMGSuomi NPP375米分辨率VIIRS J1NOAA-20375米分辨率VIIRS J2NOAA-21375米分辨率以及部分历史火灾记录数据时效性方面近实时产品通常在卫星过境后2到3小时更新这个频率对于日常监测足够了。历史存档方面MODIS火点数据可以追溯到2000年11月VIIRS火点数据从2012年1月开始时间跨度很充足做时间序列分析完全够用。2.3 支持的数据格式FIRM下载支持CSV、KML、SHP、WMS等多个格式。CSV是最通用的表格格式适合导入统计工具KML可以直接在Google Earth里打开零门槛可视化SHP是GIS界的通用格式适合在ArcGIS、QGIS里做空间分析WMS则适合在GIS软件里直接调用在线图层。我第一次用的时候没注意格式选了SHP结果导入QGIS后图层叠加坐标对不上排查了半天发现是坐标系设置的问题。FIRM提供的SHP默认是WGS84地理坐标系如果你要做面积量算或距离分析记得先投影到合适的投影坐标系比如UTM分区投影否则结果会失真。3. 实操下载全流程从地图浏览到批量导出3.1 用Fire Map快速筛选目标区域进入FIRM官网后默认打开的是Fire Map交互地图。你可以直接在地图上拖拽到目标区域也可以用左上角搜索框输入地名或经纬度坐标。这个界面支持按日期范围筛选、按卫星选择、按检测置信度过滤。我个人习惯的操作顺序是先确定时间范围。如果没有特殊需求默认看最近24小时。切换传感器先看VIIRS 375米数据覆盖不足再看MODIS。置信度过滤默认状态下初学者建议先保留“高”和“中”低置信度火点多为噪声或地表异常热源。地图上显示的每个火点图标都能点击查看详情包括经纬度、探测时间、亮温、弗拉斯卡蒂火辐射功率FRP、置信度等字段。3.2 批量下载CSV、KML或SHP数据当你想对一段时间内的火点做统计分析逐一点击肯定不现实。正确操作是先用地图框选区域或通过区域搜索选中目标范围然后在侧栏选择时段和卫星再点击下载按钮选择数据格式和投影方式系统会生成一个压缩包或文件供你保存。需要特别提醒的是每次下载的数据量有限制一般单次下载最大能覆盖的区域有一定限额而且一次性下载跨度过大的时间段可能会导致文件过大或请求超时。我的经验是按月、按区域分批次下载比如“2023年1月、云南省”为一个任务而不是“2023年全年、全中国”这样数据既完整又不会把服务器拖垮。如果不是研究需求只是日常快速看一眼可以先下载KML格式在Google Earth里打开秒级出图还不需要安装专业GIS软件。3.3 用API实现自动化下载适合定期更新的场景如果你需要每月、每周固定拉取某个区域的火点数据手动在网站上点击会很低效。FIRM提供了API接口注册一个账号后会获得一个MAP_KEY通过请求链接就能获取指定区域和时间范围的数据。API的URL结构大致是firms.modaps.eosdis.nasa.gov/api/area/csv/{MAP_KEY}/{source}/{day}/{x1}/{y1}/{x2}/{y2}参数中source填VIIRS_SNPP或MODISday填1、2或7代表过去几天后用两个经纬度坐标框定下载范围。用Python的requests库发一个GET请求就能把数据拉下来再配合Pandas做汇总统计基本上可以做到全自动化。这套组合我实际用了很久稳定可靠唯一要注意的是控制请求频率不要短时间大量请求否则会被服务器限流。3.4 数据下载阶段的参数选择建议下载时最容易纠结的几个参数我直接给结论传感器优先选VIIRS 375米空间分辨率更细小型火点识别更多。置信度做统计分析建议下载所有置信度级别但在后续处理中按需求筛选做监测简报可以只保留高置信度。时间范围近实时产品适合当天监测时间序列研究务必选“标准科学产品”。投影默认WGS84即可后续在GIS软件中自行投影。4. 火点数据字段详细解读下载之后怎么用起来数据下载完之后打开CSV文件常常一脸懵latitude、longitude、bright_ti4、frp、confidence……这些字段是什么意思这里就做一份完整字段解读方便直接对照。4.1 VIIRS 375米产品的核心字段latitude、longitude火点中心经纬度度和分坐标系统为WGS84。brightness火点像元的亮温单位是开尔文。VIIRS的375米产品中对应的是I4波段约3.3微米的亮温数值越高说明火点温度越高。scan、track像元在扫描方向和轨迹方向的尺寸单位是米。acq_date、acq_time获取日期和世界协调时时间。这里特别强调时间是世界协调时国内使用时要在世界协调时基础上加8小时才是北京时间。satellite来源卫星比如NPP、NOAA-20等。confidence置信度0到100之间的整数。一般来说数值越高越可信低于20的基本是噪声。frp火辐射功率单位是兆瓦代表火点的燃烧强度是做碳排放估算时最核心的参数。daynightD代表白天探测N代表夜间探测。4.2 MODIS 1公里产品的差异点MODIS火点CSV里有一个和VIIRS不太一样的字段叫confidenceMODIS的置信度不是0到100而是由三个类别组成0代表低置信度可能是地表高温或噪声、50代表中置信度、100代表高置信度。把两类数据放一起用的时候这个差异要特别注意别直接用数值大小排序。另外MODIS里还有bright_ti4和bright_ti5两个亮温波段分别对应3.9微米和11微米的热红外信息而VIIRS的375米产品只保留了一个核心亮温字段做了简化。4.3 用表格对照快速上手字段VIIRS 375m含义MODIS 1km含义典型应用latitude/longitude火点经纬度火点经纬度点位制图、叠加分析acq_date/acq_time世界协调时日期与时间世界协调时日期与时间统计火点时间分布brightness/bright_ti4I4通道亮温4微米通道亮温判断火点强度confidence0-100整数0/50/100三类过滤噪声火点frp火辐射功率兆瓦火辐射功率兆瓦碳排放、燃烧强度估算daynight昼夜标识昼夜标识昼夜火点对比scan/track像元尺寸1公里级别了解像元覆盖范围字段理解到位后后续做统计分析就有了底。比如统计一个地区的火点日变化直接用acq_date分组计数研究火点与土地利用的关系用经纬度点和土地覆被类型做空间连接即可。5. 实操中的常见问题与排查记录用了这么久我也踩过不少坑。下面这些问题是社群提问率最高的逐个记录一下排查办法。5.1 火点数据在区域上“漏检”很多人反馈同一个区域、同一天VIIRS和MODIS的火点数量差很多甚至某些位置只有MODIS有、VIIRS没有。原因有几个卫星过境时间不同Terra上午过境Aqua下午过境Suomi NPP时间不一样各自捕捉到的燃烧阶段不同。传感器灵敏度差异VIIRS对小而热的火点更敏感MODIS则对大范围火灾更稳定。云覆盖影响卫星只能看到云顶以上的信息云遮挡区域的火点是探测不到的。处理办法不要指望单一传感器覆盖所有火点做汇总统计时可以把MODIS和VIIRS的日火点合并去重或者按需说明使用的是哪个传感器来源。5.2 下载SHP文件在GIS里打开后位置偏移这个问题的根源基本都在投影坐标系上。FIRM下发的SHP文件是WGS84经纬度坐标而你的工程文件如果默认使用了其他投影就会出现显示偏移。解决方法是打开数据时在数据框属性里把坐标系统明确设置为WGS84或者使用“定义投影”工具重新声明坐标系再做投影转换。5.3 API申请与调用时的常见报错UnauthorizedMAP_KEY不对检查是否有多余空格或过期。Request failed due to an internal error可能是请求参数的坐标范围超过限制试着缩小范围。下载速度很慢可能是同时段请求太多建议错峰下载或者把请求间隔加大。5.4 近实时数据与事后档案数据不一致有时候当天看某一区域的近实时火点数量很多过几天再下载同一时段的标准数据数量变少了。这是正常情况因为近实时数据是初步结果部分低置信度噪声在后期处理中被剔除或者在新的再处理流程中重新校正。做严谨统计时统一使用事后数据。5.5 数据时间过滤时差搞混之前提过acq_time是世界协调时如果你在北京时间下午查看当天火点会发现大部分火点集中在上午时段。这不是数据错了而是时差换算。在脚本里简单加8小时就能转成北京时间。6. 从火点到落地几个可以直接复制的实际场景工具方法讲完了再分享几个我实际用过的场景你们可以照着改造。场景一某市秸秆焚烧巡查。每周从FIRM批量下载该市周边VIIRS 375米高置信度火点数据导入GIS后与乡镇边界叠加自动生成疑似焚烧点位表再交给地面人员去核实。这套流程能大大降低人工巡查成本。场景二某生态保护区的火险预警。每天定时用API抓取保护区周边10公里范围内的火点数据配合气象湿度、降水数据做简单风险研判连续火点出现时自动推送告警。场景三区域碳排放估算的辅助数据。研究某一时间段内的森林大火对大气的影响需要火点的FRP数值。从FIRM下载MODIS标准产品后按日累加FRP就能得到一条燃烧强度时间序列作为模型输入。每个场景里FIRM数据都只是起点真正有价值的是把它和行政区划、气象、土地利用等数据叠起来分析。这也是遥感应用的常态——数据下载只是万里长征第一步。最后分享一个个人习惯我每次下载完数据都会顺手把源文件名改成一个包含“区域-日期-传感器”的命名格式比如“云南_202401_VIIRS375m.csv”并且另存一份带世界协调时和北京时间的对照说明。这个习惯帮我避免了很多次后期整理数据时的混乱。遥感数据处理的工作流很长前端的每一点规范都会在后续分析里成倍地回报你。