【问题标题】:Looping RF classification in Google Earth EngineGoogle Earth Engine 中的循环射频分类
【发布时间】:2019-02-24 23:18:37
【问题描述】:

是否可以重复运行分类并在 Google 地球引擎中生成所有分类输出的模式?

我已经使用一组训练数据成功地执行了一次随机森林分类,但还有两个独立收集的训练数据点可供使用。

是否可以在 GEE 中为此任务引入循环?

分类的目的是从周围的植被覆盖类别中划定水体。

代码请查看链接:
https://code.earthengine.google.com/?accept_repo=users/lexisgis/WaterMapping

谢谢。

【问题讨论】:

    标签: javascript google-earth-engine


    【解决方案1】:

    classified1.addBands(classified2).addBands(...).mode() 会这样做吗?目前尚不清楚循环分类器的含义,但您可以执行以下操作:

    var numTrees = ee.List.sequence(5, 50, 5);
    
    var forests = numTrees.map(function(t) {
      return ee.Classifier.randomForest(t)
          .train({
            features: training, 
            classProperty: 'class', 
            inputProperties: image.bandNames()
          });
    });
    

    当然,您可能想用不同的训练集,甚至不同的分类器替换t。不管你用什么,训练分类器,对事物进行分类,然后采用集成模式。

    编辑: 为了回答您的回答(和评论),这里返回分类图像:

    // Here, image is a previously defined image to classify.
    // It has bands match the properties in training.
    var images = numTrees.map(function(t) {
          var classifier ee.Classifier.randomForest(t)
              .train({
                features: training, 
                classProperty: 'class', 
                inputProperties: image.bandNames()
              });
          return image.classify(classifier);
    });
    

    【讨论】:

    • 谢谢,使用 3 个不同的训练数据生成了 3 个经过训练的 RF 分类器(请参见下面的代码)。似乎无法弄清楚如何生成 3 个分类图像。你能帮忙吗?仍在尝试绕过 GEE。再次感谢。 var features = ee.List([train1, train2, train3]); var band = ['B2', 'B3', 'B4', 'B8', 'nd']; var classifier = features.map(function(t) { return ee.Classifier.randomForest({numberOfTrees: 500}) .train({ features: t, classProperty: 'class', inputProperties: band }) });
    • 我已经相应地编辑了答案。如果这对您有帮助,请点赞。此外,无需跟进另一个提出后续问题的答案。
    猜你喜欢
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    相关资源
    最近更新 更多