谷歌地球引擎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,可以点击下方的刷新按钮。

至此,大功告成。

相关推荐
冰暮流星几秒前
javascript之事件代理/事件委托
前端
陈随易1 小时前
AI时代,你还在坚持手搓文章吗
前端·后端·程序员
里欧跑得慢3 小时前
17. Flutter Hero动画实现:让界面过渡更加优雅
前端·css·flutter·web
IT_陈寒4 小时前
Vue的这个响应式陷阱,我debug了一整天才爬出来
前端·人工智能·后端
cn_mengbei4 小时前
用React Native开发OpenHarmony应用:Reanimated共享元素过渡
javascript·react native·react.js
kyriewen4 小时前
前端测试:别为了100%覆盖率而写测试,那是自欺欺人
前端·javascript·单元测试
去伪存真4 小时前
我自己写的第一个skills--project-core-standards
前端·agent
Data_Journal4 小时前
如何使用cURL更改User Agent
大数据·服务器·前端·javascript·数据库
掌心向暖RPA自动化4 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
竹林8185 小时前
wagmi v2 多链钱包切换:一个 Uniswap 仿盘项目让我踩了三天坑
前端·javascript