Google Earth Engine(GEE)——容易犯的错误8(样本数据的导出export)

举报
此星光明 发表于 2022/04/15 23:25:44 2022/04/15
【摘要】 Export 中间结果  假设您的目标是从相对复杂的计算图像中取样。通常Export对图像更有效toAsset(),加载导出的图像,然后采样。例如: var image = ee.Image('UMD/hansen/global_forest_change_2018_v1_6');var geometry = e...

Export 中间结果 

假设您的目标是从相对复杂的计算图像中取样。通常Export对图像更有效toAsset(),加载导出的图像,然后采样。例如:


  
  1. var image = ee.Image('UMD/hansen/global_forest_change_2018_v1_6');
  2. var geometry = ee.Geometry.Polygon(
  3. [[[-76.64069800085349, 5.511777325802095],
  4. [-76.64069800085349, -20.483938229362376],
  5. [-35.15632300085349, -20.483938229362376],
  6. [-35.15632300085349, 5.511777325802095]]], null, false);
  7. var testRegion = ee.Geometry.Polygon(
  8. [[[-48.86726050085349, -3.0475996402515717],
  9. [-48.86726050085349, -3.9248707849303295],
  10. [-47.46101050085349, -3.9248707849303295],
  11. [-47.46101050085349, -3.0475996402515717]]], null, false);
  12. // 2016 年森林损失,对样本进行分层。
  13. var loss = image.select('lossyear');
  14. var loss16 = loss.eq(16).rename('loss16');
  15. // 除云函数
  16. function maskL8sr(image) {
  17. var cloudShadowBitMask = 1 << 3;
  18. var cloudsBitMask = 1 << 5;
  19. var qa = image.select('pixel_qa');
  20. var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
  21. .and(qa.bitwiseAnd(cloudsBitMask).eq(0));
  22. return image.updateMask(mask).divide(10000)
  23. .select("B[0-9]*")
  24. .copyProperties(image, ["system:time_start"]);
  25. }
  26. var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
  27. .map(maskL8sr);
  28. // 创建两个年度无云复合影像。
  29. var composite1 = collection.filterDate('2015-01-01', '2015-12-31').median();
  30. var composite2 = collection.filterDate('2017-01-01', '2017-12-31').median();
  31. // 我们想要这个堆栈的分层样本
  32. var stack = composite1.addBands(composite2)
  33. .float(); // 导出尽可能小的尺寸。
  34. // 导出图像。由于导出已完成,因此对该块进行了注释。
  35. /*
  36. var link = '0b8023b0af6c1b0ac7b5be649b54db06'
  37. var desc = 'Logistic_regression_stack_' + link;
  38. Export.image.toAsset({
  39. image: stack,
  40. description: desc,
  41. assetId: desc,
  42. region: geometry,
  43. scale: 30,
  44. maxPixels: 1e10
  45. })
  46. */
  47. // 加载导出的图像。
  48. var exportedStack = ee.Image(
  49. 'projects/google/Logistic_regression_stack_0b8023b0af6c1b0ac7b5be649b54db06');
  50. // 先取一个很小的样本,进行调试。
  51. var testSample = exportedStack.addBands(loss16).stratifiedSample({
  52. numPoints: 1,
  53. classBand: 'loss16',
  54. region: testRegion,
  55. scale: 30,
  56. geometries: true
  57. });
  58. print(testSample); // Check this in the console.
  59. // 取一个大样本。
  60. var sample = exportedStack.addBands(loss16).stratifiedSample({
  61. numPoints: 10000,
  62. classBand: 'loss16',
  63. region: geometry,
  64. scale: 30,
  65. });
  66. // 导出大样本...

在此示例中,请注意图像导出为浮点数。除非绝对必要,否则不要以双精度导出。执行此导出时,请注意代码编辑器链接(在导出前立即获得)嵌入在文件名中以实现可复制性。

导出完成后,重新加载资产并继续从中采样。请注意,首先在非常小的测试区域上运行非常小的样本,以进行调试。当证明成功时,获取更大的样本并将其导出。如此大的样本通常需要出口。不要期望这些样本在print()没有先导出它们的情况下可以交互地(例如通过)或可用(例如作为分类器的输入)。

文章来源: blog.csdn.net,作者:此星光明2021年博客之星云计算Top3,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31988139/article/details/119839986

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。