【GEE】多源遥感数据特征分类过程中遇到的内存超限问题解决方法汇总


前言

果然没有什么代码是一帆风顺的,本来已经写好的随机森林RF分类,在少量特征集合上运行OK,特征维数增加后到处都显示 User memory limit exceeded!头大,记录一下解决过程。

一、占用内存多的步骤

我的代码结构为:
导入Sentinel-2数据并预处理----提取S2特征----导入Sentinel-1数据并预处理----提取S1特征----导入DEM数据----提取地形特征—整合所有特征—RF分类

其中最占用内存的步骤包括:

  1. 导入原始影像集,尤其是原始数据集时间、空间范围较大时;
  2. 影像提取纹理特征并做PCA,这一步在特征维数多时计算很慢甚至超出内存;
  3. 影像重投影reproject
  4. RF分类器的计算

二、解决方法

1. 研究区域划分区块分别计算

https://blog.csdn.net/weixin_41099712/article/details/130246785
但是感觉有点麻烦,之后还要合成一张图

2.主动让步:缩小数据时间范围、降低分辨率、缩小研究区

3. 优化代码

  1. 成为付费用户(bushi)及代码优化方法:GEE:GEE平台怎么提高用户内存限制
  2. Google Earth Engine(GEE)——缩放错误指南(聚合过多、超出内存、超出最大像素和超出内存限制)!
  3. GEE(Google Earth Engine)—— 避免不必要地转换为列表

我采用的就是以上帖子中的方法,最有用的是:
将每种数据的导入–处理–特征提取步骤分开成不同脚本分别运行,将提取后的特征Export.image.toDrive,然后在任务栏把它们导出到assets,最后用RF分类的时候再把所有特征导入,所有的飘红都消失了!
4. RF分类器内存超限:增大tileScale参数。见GEE随机森林法报错user memory limit exceeded!

3. 新的问题已经出现!

报错:Earth Engine memory capacity exceeded
暂时还没找到解决途径
现在的情况是:
仅运行Sentinel-2影像处理、特征提取过程,能得到最终的特征集,但是会飘红,包括但不限于:

s2_mosaic: Tile error: Output of image computation is too large (3 bands for 971100756 pixels = 11113.4 MiB > 80.0 MiB).
If this is a reduction, try specifying a larger ‘tileScale’ parameter.

运行一次这条报错7次,而且是结果已经计算出来后等待好一会才报错。我尝试从后往前不断删掉一些步骤,看从哪一步开始报错,结果是一计算纹理特征就出错!

GEE你总是内存不足的样子真的很狼狈!和我的C盘一样不堪一击!不堪重负!
我的研究区大小为7000km2,已经在考,划分成县一个一个做了。。。

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值