gpt4 book ai didi

google-earth-engine - 在 Google Earth Engine 中重新分类范围

转载 作者:行者123 更新时间:2023-12-02 16:47:49 24 4
gpt4 key购买 nike

我想重新分类全局森林数据值,例如

0 - 20% --> 1

21 - 49 % --> 0.5

50 - 100% --> 0

但是,我无法找到如何在 GEE 中为范围执行此操作。可以在此处找到对个人号码重新分类的说明:

https://sites.google.com/site/globalsnowobservatory/home/Presentations-and-Tutorials/short-tutorial/remap

但是很难找到范围的简单程序(没有决策树)。有人可以为此提供一个简单的解决方案吗?

// Example from https://developers.google.com/earth-engine/resample
// Load a MODIS EVI image.
var modis = ee.Image(ee.ImageCollection('MODIS/006/MOD13A1').first())
.select('EVI');

// Get information about the MODIS projection.
var modisProjection = modis.projection();

// Load and display forest cover data at 30 meters resolution.
var forest = ee.Image('UMD/hansen/global_forest_change_2015')
.select('treecover2000');

// Get the forest cover data at MODIS scale and projection.
var forestMean = forest
// Force the next reprojection to aggregate instead of resampling.
.reduceResolution({
reducer: ee.Reducer.mean(),
maxPixels: 1024,
bestEffort:true
})
// Request the data at the scale and projection of the MODIS image.
.reproject({
crs: modisProjection
});

最佳答案

如果您想对像素值进行二元决策,可以使用 ee.Image.where()算法。它采用 bool 值图像来指定图像中用另一个图像替换像素的位置。将它用于此应用程序的最简洁方法是使用 ee.Image.expression() 语法(而不是指定多个 bool 值和常量图像):

var reclassified = forestMean.expression('b(0) <= 20 ? 1 : b(0) < 50 ? 0.5 : 0');

b(0)指的是输入图像第一个band的值,? ... :?: conditional operator如果左边的条件为真,则返回 ?: 之间的部分,如果条件为真,则返回 : 右边的部分是假的。那么,可以使用一系列吗? ... : 简明扼要地写出几个条件。

Runnable example with this line.

关于google-earth-engine - 在 Google Earth Engine 中重新分类范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59841147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com