谷歌地球引擎GEE:将几个Asset合成为一个

本文介绍在GEE 中,将多个存储有点要素Asset 加以合并,使得其成为一个Asset的方法。

本文是谷歌地球引擎(Google Earth Engine,GEE )系列教学文章的第十五篇,更多GEE 文章请参考专栏:GEE学习与应用

首先,我们来看一下本文需要实现的需求。现有多个Asset ,他们可以是我们自己的数据,也可以是来自其他用户的数据;其中,每一个Asset 都包含了全球范围内不同的样本点 ,即每一个Asset 都是一个 的集合。我们现在希望,将各个Asset 加以合并,成为一个Asset ------即将多个不同的点的集合 合并为一个完整的点的集合

知道了需求,便可以开始代码的撰写。本文用到的代码如下所示。

javascrip 复制代码
var assets_1 = ee.FeatureCollection("users/.../.../grass").map(function(feature) {
  return feature.set("V_Type", "1");
});
var assets_2 = ee.FeatureCollection("users/.../.../shrub").map(function(feature) {
  return feature.set("V_Type", "2");
});
var assets_3 = ee.FeatureCollection("users/.../.../crop").map(function(feature) {
  return feature.set("V_Type", "3");
});
var assets_4 = ee.FeatureCollection("users/.../.../savannas").map(function(feature) {
  return feature.set("V_Type", "4");
});
var assets_5 = ee.FeatureCollection("users/.../.../EBF").map(function(feature) {
  return feature.set("V_Type", "5");
});
var assets_6 = ee.FeatureCollection("users/.../.../DBF").map(function(feature) {
  return feature.set("V_Type", "6");
});
var assets_7 = ee.FeatureCollection("users/.../.../ENF").map(function(feature) {
  return feature.set("V_Type", "7");
});
var assets_8 = ee.FeatureCollection("users/.../.../DNF").map(function(feature) {
  return feature.set("V_Type", "8");
});

var merge_assets = ee.FeatureCollection([assets_1, assets_2, assets_3, assets_4, assets_5, assets_6, assets_7, assets_8]).flatten();

Map.addLayer(merge_assets, {}, "Merged Points");

Export.table.toAsset({
  collection: merge_assets,
  description: "All_vegetation_types_points",
  assetId: "projects/ee-ucanuse6/assets/AllPoints"
})

首先,代码中使用了ee.FeatureCollection函数加载了8个点集,并使用map函数为每个点设置了V_Type属性,其值为1~8,代表了不同的植被类型。这些点集被保存到了不同的变量中,例如assets_1assets_2等等。接着,通过ee.FeatureCollection([assets_1, assets_2, assets_3, assets_4, assets_5, assets_6, assets_7, assets_8])将这8个点集合并为一个FeatureCollection,并使用flatten函数将其中嵌套的集合拉平为一个单一的FeatureCollection。最后,使用Map.addLayer将合并后的点集加载到地图上,并使用Export.table.toAsset函数将merge_assets导出到Asset中。

随后,运行上述代码。我们将在右侧的"Tasks"一栏中看到我们将要执行的任务,如下图所示。

随后,点击这一任务后的"RUN "选项,准备开始执行这一任务。此时,将弹出任务的配置窗口,如下图所示;可以看到,任务将按照我们前述代码中的设置,存储在指定的Asset路径下。当然,此时我们还可以手动对存储的路径加以修改。

确定存储路径无误后,我们即可点击"RUN"选项,开始执行任务。随后,将出现如下图所示的界面,可以看到任务正在运行中。

稍等片刻,待任务运行完毕后,我们将在左侧的"Assets "界面中看到我们刚刚导出的Asset ,也就是存储有全部点的那个数据集合;如下图所示。这里需要注意,如果此时看不到我们刚刚生成的Asset,可以点击下方的刷新按钮。

至此,大功告成。

相关推荐
热爱编程的小曾9 分钟前
sqli-labs靶场 less 8
前端·数据库·less
gongzemin20 分钟前
React 和 Vue3 在事件传递的区别
前端·vue.js·react.js
Apifox33 分钟前
如何在 Apifox 中通过 Runner 运行包含云端数据库连接配置的测试场景
前端·后端·ci/cd
-代号952737 分钟前
【JavaScript】十四、轮播图
javascript·css·css3
树上有只程序猿1 小时前
后端思维之高并发处理方案
前端
庸俗今天不摸鱼2 小时前
【万字总结】前端全方位性能优化指南(十)——自适应优化系统、遗传算法调参、Service Worker智能降级方案
前端·性能优化·webassembly
QTX187302 小时前
JavaScript 中的原型链与继承
开发语言·javascript·原型模式
黄毛火烧雪下2 小时前
React Context API 用于在组件树中共享全局状态
前端·javascript·react.js
Apifox2 小时前
如何在 Apifox 中通过 CLI 运行包含云端数据库连接配置的测试场景
前端·后端·程序员
一张假钞2 小时前
Firefox默认在新标签页打开收藏栏链接
前端·firefox