如题。
- GEE 获取 MODIS LST 逐日数据,下载
- 机器学习部分用 Python 或 Julia 实现
Log
10/22/25
- 重构:
- 在这个项目中,重点不在于水体边界的精确提取,而在于如何高效地在大范围内提取湖泊的表层温度。
- 湖泊可以被视为均一的水体单元,因此不需要确保所有的水体像元都被提取出来,而是要确保提取的像元确实属于水体。
11/04/25
- 方案:
- MODIS 获取湖泊表层温度(LST)数据,2000-2024 年应该都有,逐日。
- 缺失值插补:利用缺失值同时间的 ERA5 其他变量建立机器学习模型进行插补。
ERA5-Land 有一个 Lake cover 变量,可以用来判断湖泊的覆盖情况。
目前是使用 Landsat 来计算 MNDWI,获取湖泊水体,然后提取 MODIS LST。 第一个问题是,湖泊的选择问题。 需要面积筛选,因为 ERA5 很粗。 研究的湖泊的面积至少要大于 ERA5 的一个像元, 最好是能通过 Lake cover 来进一步筛选。 原本是通过 GLAKES 来选择湖泊,但更简单一点似乎可以直接用 ERA5 来筛。
11/05/25
GEE 基本上是一坨屎。 想不通 Google 为什么搞得这么烂。 最新方案是把 ERA5-Land 下载下来在本地做。
预实验
没做机器学习部分。
先用 ERA5-Land 的 Lake cover 来筛选湖泊, Lake cover > 0.8 的像元视作纯湖泊像元。 然后提取连通域,经典。
只要一个连通域的像元数量大于 2,认为是一个湖泊。 然后直接用 ERA5-Land 的 Lake mix-layer temperature 作为湖泊表层温度,
获取 1978-2023 年的逐月数据。 本意是 1981-2020 年,但由于后续要做突变点分析, 需要控制突变点不能在时间序列的边缘,所以限制了最短的时间阶段为 3 年, 这样一来前后各需要多 3 年的数据。
拿到时间序列后,计算年均温度,然后突变点分析。 得出突变点年份和前后阶段的斜率。
11/07/25
3 年的 Min segment 有点短,我看了很多都是 1980 这个点。
前天的图有问题,突变检测没做好。现在换成 Mann-Kendall 检测趋势变化点。
11/25/25
其实是直接用 ERA5-Land 来做了。 GEE 一坨屎,而且很慢。
ERA5-Land 的 Lake mix-layer temperature 直接作为湖泊表层温度。 所以现在的工作重点是趋势分析和突变点检测。
11/27/25
突变检测的问题。
突变检测本质上是不是算是一个定性分析? 做的过程中发现很强的参数依赖性和方法依赖性。 比如 Min segment 长度,或者不同的突变检测方法,结果差异都挺大。
考虑转向定量分析,比如直接计算趋势斜率,或者变化幅度。
11/28/25
所以在此之前,我需要先对比不同的突变检测方法和参数设置, 看看结果的差异性到底有多大。
组会:
- 去趋势再做突变检测
- 区域或湖泊分类
12/03/25
去趋势(detrend)方案
一阶差分: 后一个值减去前一个值,得到一个新的时间序列,表示每个时间点的变化量。 可能会放大噪声,可以先做 3 年滑动平均。