Google Earth Engine(GEE)——容易犯的错误8(样本数据的导出export)
【摘要】
Export 中间结果
假设您的目标是从相对复杂的计算图像中取样。通常Export对图像更有效toAsset(),加载导出的图像,然后采样。例如:
var image = ee.Image('UMD/hansen/global_forest_change_2018_v1_6');var geometry = e...
Export
中间结果
假设您的目标是从相对复杂的计算图像中取样。通常Export
对图像更有效toAsset()
,加载导出的图像,然后采样。例如:
-
var image = ee.Image('UMD/hansen/global_forest_change_2018_v1_6');
-
var geometry = ee.Geometry.Polygon(
-
[[[-76.64069800085349, 5.511777325802095],
-
[-76.64069800085349, -20.483938229362376],
-
[-35.15632300085349, -20.483938229362376],
-
[-35.15632300085349, 5.511777325802095]]], null, false);
-
var testRegion = ee.Geometry.Polygon(
-
[[[-48.86726050085349, -3.0475996402515717],
-
[-48.86726050085349, -3.9248707849303295],
-
[-47.46101050085349, -3.9248707849303295],
-
[-47.46101050085349, -3.0475996402515717]]], null, false);
-
-
// 2016 年森林损失,对样本进行分层。
-
var loss = image.select('lossyear');
-
var loss16 = loss.eq(16).rename('loss16');
-
-
// 除云函数
-
function maskL8sr(image) {
-
var cloudShadowBitMask = 1 << 3;
-
var cloudsBitMask = 1 << 5;
-
var qa = image.select('pixel_qa');
-
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
-
.and(qa.bitwiseAnd(cloudsBitMask).eq(0));
-
return image.updateMask(mask).divide(10000)
-
.select("B[0-9]*")
-
.copyProperties(image, ["system:time_start"]);
-
}
-
-
var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
-
.map(maskL8sr);
-
-
// 创建两个年度无云复合影像。
-
var composite1 = collection.filterDate('2015-01-01', '2015-12-31').median();
-
var composite2 = collection.filterDate('2017-01-01', '2017-12-31').median();
-
-
// 我们想要这个堆栈的分层样本
-
var stack = composite1.addBands(composite2)
-
.float(); // 导出尽可能小的尺寸。
-
-
// 导出图像。由于导出已完成,因此对该块进行了注释。
-
/*
-
var link = '0b8023b0af6c1b0ac7b5be649b54db06'
-
var desc = 'Logistic_regression_stack_' + link;
-
Export.image.toAsset({
-
image: stack,
-
description: desc,
-
assetId: desc,
-
region: geometry,
-
scale: 30,
-
maxPixels: 1e10
-
})
-
*/
-
-
// 加载导出的图像。
-
var exportedStack = ee.Image(
-
'projects/google/Logistic_regression_stack_0b8023b0af6c1b0ac7b5be649b54db06');
-
-
// 先取一个很小的样本,进行调试。
-
var testSample = exportedStack.addBands(loss16).stratifiedSample({
-
numPoints: 1,
-
classBand: 'loss16',
-
region: testRegion,
-
scale: 30,
-
geometries: true
-
});
-
print(testSample); // Check this in the console.
-
-
// 取一个大样本。
-
var sample = exportedStack.addBands(loss16).stratifiedSample({
-
numPoints: 10000,
-
classBand: 'loss16',
-
region: geometry,
-
scale: 30,
-
});
-
-
// 导出大样本...
在此示例中,请注意图像导出为浮点数。除非绝对必要,否则不要以双精度导出。执行此导出时,请注意代码编辑器链接(在导出前立即获得)嵌入在文件名中以实现可复制性。
导出完成后,重新加载资产并继续从中采样。请注意,首先在非常小的测试区域上运行非常小的样本,以进行调试。当证明成功时,获取更大的样本并将其导出。如此大的样本通常需要出口。不要期望这些样本在print()
没有先导出它们的情况下可以交互地(例如通过)或可用(例如作为分类器的输入)。
文章来源: blog.csdn.net,作者:此星光明2021年博客之星云计算Top3,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_31988139/article/details/119839986
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)