Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gis 在Google Earth引擎中按系统索引拆分功能集合?_Gis_Google Earth Engine - Fatal编程技术网

Gis 在Google Earth引擎中按系统索引拆分功能集合?

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导出一个大型功能集合。我意识到pythonapi比Java更容易实现这一点,但考虑到我的研究时间限制,我想看看是否可以将功能集合分块提取出来,然后在导出后附加单独的CSV文件

我尝试使用一个过滤函数来执行这项任务,这是我以前在图像采集中见过的。下面是一个我正在尝试做的小例子

给定一个称为“点”的10个空间点的特征集合,我尝试创建一个新的特征集合,其中仅包括前5个点:

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

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

我不知道为什么这段代码没有按预期执行。如果您比我更了解这个问题,请提供关于拆分示例的其他方法的建议,或者我的代码中的错误隐藏在哪里


非常感谢

系统:索引实际上是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