Geotrellis,获取落在多边形网格Rdd中的点

时间:2017-11-17 21:04:17

标签: geotrellis

我需要计算落在多边形网格中的点的平均值。

就像在条件Polyogon.contains(点)

中加入一对多
//In:
val pointValueRdd : RDD[Feature[Point,Double]] 

val squareGridRdd : RDD[Feature[Polygon]]

//Needed Out:

val squareGridRdd : RDD[Feature[Polygon,(accum:Double,count:Int)]]
//or
val squareGridRdd : RDD[Feature[Polygon,average:Double]]

可以使用一些四叉树索引吗?

我读到:剪辑到网格,但如果它是正确的工具,我不知道。

http://geotrellis.readthedocs.io/en/latest/guide/vectors.html#cliptogrid

下一张图片显示蓝色网格和点

enter image description here

我们欢迎一些建议

1 个答案:

答案 0 :(得分:4)

如果您的多边形网格可以在GeoTrellis中表示为LayoutDefinition,则有一种直接的方法可以实现此目的。 LayoutDefinition定义了GeoTrellis图层用于表示大型栅格图块集合的图块网格。它还可用于在网格空间中的网格键(SpatialKey)和地图空间中的边界框({​​{1}} s)之间执行转换。

我不会假设您可以通过LayoutDefinition表示网格,而是显示一个解决更一般情况的示例。如果可以通过LayoutDefinition来表示多边形网格,那么这种方法将更加简单。但是,这是更通用方法的代码片段。这是编译但未经过测试,因此如果您发现问题,请告诉我。这个包含在Extent项目的示例中,其中包含此PR:https://github.com/locationtech/geotrellis/pull/2489

doc-examples