卫星时序动画很适合帮助非遥感读者看见湿地、施工区或水体的变化,但它不是天然可信的证据。若只交付 GIF,下一位同事不知道研究区从哪里画、选了什么影像、颜色代表什么、每一帧相隔多久,就无法判断画面中的变化来自地物、季节、云影还是参数。
OCWGIS 的公开教程给出了一条小而完整的路径:先定义空间范围,再选择影像集合、波段组合和时间采样,最后输出动画。把这些配置与结果一同保存,才可以把“好看的视频”变成可回查的 GIS 交付物。
研究的八项固定口径
-
OCWGIS 教程使用 Qiusheng Wu 的 Streamlit for Geospatial Applications 制作卫星影像时序视频和动画 GIF。
-
该应用结合 Streamlit 与 leafmap、geemap、pydeck、kepler.gl 等开源 Python 地图工具。
-
教程以荷兰 Marker Wadden 为例,并要求先在交互地图上绘制研究区矩形。
-
研究区矩形可导出为 GeoJSON 文件,再拖放或浏览上传到页面。
-
教程在影像集合中选择 Sentinel-2 MSI Surface Reflectance,并指出 Landsat 时间序列更长而 Sentinel-2 空间分辨率更高。
-
教程为植被变化选择 NIR/RED/Green 波段组合,并说明生长中的植被会在近红外中强反射、呈现红色像元。
-
该示例将时间频率设为 quarter,因为按 month 可能因范围过大报错。
-
示例将帧率设为每秒 3 帧,完成后可保存动画 GIF 和 MP4。
核心机制:先锁定 AOI,再生成时序帧
教程把矩形画到交互地图上后导出 GeoJSON,再上传给时序工具。这是比截图更可靠的起点:GeoJSON 能保留顶点与坐标系,团队可在 QGIS 中打开它,确认边界是否越过了海岸、道路或行政界。交付时应同时保存 AOI 文件、获取日期、空间参考、面积和绘制者。
范围越大并不一定更有说服力。教程明确提醒,过大的区域会报错。生产流程应先让小范围跑通,再按网格或行政单元拆分大区;记录每块的范围、影像数量和失败原因。这样即使某块因云量、服务配额或像元规模失败,也不会把整段视频悄悄换成另一份数据。
GIS 场景:把变化视频用于复核,而非替代判读
Marker Wadden 的示例选择 Sentinel-2 MSI Surface Reflectance,是因为场景建设发生在 2016 至 2021 年这一 Sentinel-2 覆盖期;教程同时说明,Landsat 的时间序列更长,而 Sentinel-2 的空间分辨率更高。这不是二选一的通用结论,而是给选型留下两个问题:项目需要多早的历史,还是需要看更细的空间结构?
NIR/RED/Green 是假彩色组合。教程用它突出新生植被的近红外反射,并让相应区域显示为红色。红色像元并不自动等于“植被恢复完成”,也可能受物候、含水量、残余云和拉伸方式影响。因此,每次导出应附带影像集合名称、处理级别、波段顺序、可视化拉伸、云掩膜规则及每一帧的日期范围。
技术路径:在时间采样、范围与性能之间取舍
教程把频率设为季度而非月份,原因是月度帧可能因范围过大报错;随后以每秒 3 帧输出。这两个参数共同决定观看节奏,也决定后台需要取多少景、合成多少帧。动画越密并不必然更接近真实过程:缺云处理、月内合成规则和缺景填补方式同样会改变相邻帧。
在业务项目中,可先为一个 AOI 输出季度版本,建立人工复核基线;只有当时间密度确实影响决策时,再缩短采样间隔。若改用月度,应把失败阈值、切片方案、合成方法和缺失帧显式写入运行记录,不能只留下最终视频。
风险与检查清单:一份可交接的时序视频包
- 保存 GeoJSON AOI、CRS、面积、时间范围和处理人。
- 保存影像集合、传感器、处理级别、云掩膜和查询条件。
- 保存波段顺序、颜色拉伸和图例,说明颜色只是遥感信号而非自动判定。
- 保存时间频率、各帧日期、帧率、合成与缺景规则。
- 将 GIF/MP4 与一张静态首末帧、参数 JSON 和源数据清单一并归档。
- 对变化明显的位置做抽样核查,可与高分影像、现场照片或业务图层交叉比对。
结论
OCWGIS 的案例值得借鉴之处,不在于把卫星画面做成 GIF,而在于它把范围、集合、波段、频率和导出置于同一条操作链。GIS 团队若把这些参数连同动画一起交付,就能让读者看见变化,也让复核者追溯变化是如何被表达出来的。