一、网上的解释
mask一下会将所有的影像进行筛选和更新,即使已经使用filterbounds设定筛选范围。updateMask则不会出现这个状况,它会直接根据你所在的区域进行筛选,这样做的目的可以极大的优化代码,减少超时运算。
二、code的教训
1、是否重采样 存在差异
2、是否注释掉geometry 存在很大差异!!
因为我的 image 本身是研究区范围,而 cropland 是全国范围的,Map了一下发现,对于它来说:
ee.Image('users/2023LL0625/SM_tpdc1km/SM202201').reproject({crs:"EPSG:4326",scale:5550}).mask(cropland)
这样mask后反而变成了全国范围的耕地,没有起到筛选出研究区内耕地的结果。如果此处再.clip(MLYR),才能得到想要的结果——研究区内耕地。
因此,最好直接用 .updateMask()
这种情况下,.mask().clip() = .updateMask()
3、对于mask和updateMask来说,统计前是否 .clip() 对结果都有影响
师姐说应该是不clip直接reduceRegion。我也map了一下,发现有像元缩放的现象,但是很细微,就这样吧。