gpt4 book ai didi

gis - 在 Google Earth Engine 中按系统索引拆分特征集合?

转载 作者:行者123 更新时间:2023-12-05 02:11:56 25 4
gpt4 key购买 nike

我正在尝试从 GEE 导出大型特征集合。我意识到 Python API 比 Java 更容易做到这一点,但鉴于我的研究时间有限,我想看看我是否可以分段提取特征集合,然后在导出后附加单独的 CSV 文件。

我尝试使用过滤功能来执行任务,这是我以前见过的用于图像集的功能。这是我正在尝试做的一个小例子

给定一个包含 10 个空间点(称为“点”)的特征集合,我尝试创建一个仅包含前五个点的新特征集合:

var points_chunk1 = points.filter(ee.Filter.rangeContains('system:index', 0, 5));

当我执行这个函数时,我收到以下错误:“发生内部服务器错误”

我不确定为什么这段代码没有按预期执行。如果您对这个问题的了解比我多,请就拆分样本的替代方法或代码中的错误所在提出建议。

非常感谢!

最佳答案

system:index 实际上是 GEE 为该功能提供的 ID,它不应该像数组中的索引一样使用。我认为 JS 应该足以导出大型特征集合,但有一种方法可以在不依赖 system:index 的情况下做你想做的事情,因为这可能不一致。

首先,最好了解您正在处理的功能的数量。这是因为通常当您对大型要素集合使用 size().getInfo() 时,UI 可能会卡住,有时选项卡会变得无响应。这里我定义了 chunks 和 collectionSize。它应该在客户端定义,因为我们想在循环中执行 Export,这在服务器大小循环中是不可能的。在循环中,您可以简单地创建一个从不同点开始的特征子集,方法是将特征转换为列表并将子集更改回特征集合。

var chunk = 1000;
var collectionSize = 10000
for (var i = 0; i<collectionSize;i=i+chunk){
var subset = ee.FeatureCollection(fc.toList(chunk, i));
Export.table.toAsset(subset, "description", "/asset/id")
}

关于gis - 在 Google Earth Engine 中按系统索引拆分特征集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56840047/

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