Gis 在Google Earth引擎中按系统索引拆分功能集合?
我正在尝试从GEE导出一个大型功能集合。我意识到pythonapi比Java更容易实现这一点,但考虑到我的研究时间限制,我想看看是否可以将功能集合分块提取出来,然后在导出后附加单独的CSV文件 我尝试使用一个过滤函数来执行这项任务,这是我以前在图像采集中见过的。下面是一个我正在尝试做的小例子 给定一个称为“点”的10个空间点的特征集合,我尝试创建一个新的特征集合,其中仅包括前5个点: var points_chunk1=points.filter(ee.filter.rangeContains('system:index',0,5)) 执行此函数时,我收到以下错误:“发生内部服务器错误” 我不知道为什么这段代码没有按预期执行。如果您比我更了解这个问题,请提供关于拆分示例的其他方法的建议,或者我的代码中的错误隐藏在哪里Gis 在Google Earth引擎中按系统索引拆分功能集合?,gis,google-earth-engine,Gis,Google Earth Engine,我正在尝试从GEE导出一个大型功能集合。我意识到pythonapi比Java更容易实现这一点,但考虑到我的研究时间限制,我想看看是否可以将功能集合分块提取出来,然后在导出后附加单独的CSV文件 我尝试使用一个过滤函数来执行这项任务,这是我以前在图像采集中见过的。下面是一个我正在尝试做的小例子 给定一个称为“点”的10个空间点的特征集合,我尝试创建一个新的特征集合,其中仅包括前5个点: var points_chunk1=points.filter(ee.filter.rangeContains(
非常感谢 系统:索引实际上是GEE为功能提供的ID,它不应该像数组中的索引那样使用。我认为JS应该足以导出一个大型featurecollection,但有一种方法可以实现您想要做的事情,而不依赖system:index,因为这可能不一致 首先,了解您正在处理的功能的数量是一个好主意。这是因为通常当您对大型功能集合使用size().getInfo()时,UI可能会冻结,有时选项卡会无响应。这里我定义了chunk和collectionSize。它应该在客户端定义,因为我们希望在循环中导出,而这在服务器大小的循环中是不可能的。在循环中,您可以通过将要素转换为列表并将子集更改回要素集合,从不同的点开始创建要素子集
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")
}
var chunk=1000;
var collectionSize=10000
对于(var i=0;i