GEE随机森林回归保存与调用

本文介绍了如何在Google Earth Engine (GEE) 中处理因样本量过大导致的随机森林回归模型保存和调用问题。通过切割模型特征、限制单个属性值大小,将模型保存至Assets,并提供了本地训练、模型上传和调用的步骤。同时,提到了利用geemap库解决GEE自身的限制,以及遇到的Payload大小超限错误。
摘要由CSDN通过智能技术生成

近期使用随机森林回归模型的时候,留意到回归模型也有了trees,是否可以像分类模型一样保存调用呢?答案是显然的,同样的代码。
在这里插入图片描述

var trees = ee.List(ee.Dictionary(classifier.explain()).get('trees'))
var rf_model = ee.FeatureCollection(trees.map(function(x){
   return dummy.set('trees',x)}))
Export.table.toAsset(rf_model,'save_classifier2')

而模型的调用代码为:

var treesuse = ee.FeatureCollection('projects/.../save_classifier2').aggregate_array('trees')
var rf_model_use = ee.Classifier.decisionTreeEnsemble(treesuse)

var predicted = image.select(bands).classify(rf_model_use)

下面写一下遇到的问题:

  1. 训练样本太大时,会提醒超过Feature属性值超过 1 × 1 0 6 1 \times 10^6 1×106个字节;
  2. 训练样本太大时,var trees = ee.List(ee.Dictionary(classifier.explain()).get(‘trees’))仅能得到前面部分字符,没法获取完整的trees,不知道是保护机制还是咋。

第一个问题有点小心得,可以分享,技术有限,见谅。

具体思路为:

  1. 将每个树按照一定字节长度切割,使每段小于 1 × 1 0 6 1 \times 10^6 1×106个字节,分别保存在同一个Feature不同属性中,然后保存到Assets中;
  2. 将保存的模型加载为FeactureCollection后,将各Feature各属性值拼接为新的属性。
    代码如下:
function FC_string_slice(Str) {
   
    var null_island = ee.Geometry.Point([0, 0])
    var Str = ee.String(Str)
    var ChunkSize = ee.Number(800000)
    var Strlen = ee.Number(Str.length())
    var Chunk_list = Strlen.divide(ChunkSize).ceil()

    var indices = ee.List.sequence(
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值