Scala、Spark、Geotrellis Rdd CRS 重投影
Scala, Spark, Geotrellis Rdd CRS reprojection
我将一组点从 CSV 文件加载到 RDD:
case class yieldrow(Elevation:Double,DryYield:Double)
val points :RDD[PointFeature[yieldrow]] = lines.map { line =>
val fields = line.split(",")
val point = Point(fields(1).toDouble,fields(0).toDouble)
Feature(point, yieldrow(fields(4).toDouble,fields(20)))
}
然后得到:
points: org.apache.spark.rdd.RDD[geotrellis.vector.PointFeature[yieldrow]]
现在需要从 EPSG:4326 重新投影到 EPSG:3270
所以我创建 CRS 从和到:
val crsFrom : geotrellis.proj4.CRS = geotrellis.proj4.CRS.fromName("EPSG:4326")
val crsTo : geotrellis.proj4.CRS = geotrellis.proj4.CRS.fromEpsgCode(32720)
但我无法创建转换,而且我也不知道:
将变换应用于单个点的热点:
val pt = Point( -64.9772376007928, -33.6408083223936)
如何使用Feature的mapGeom方法进行CRS变换?
points.map(_.mapGeom(?????))
points.map(feature => feature.mapGeom(????))
如何使用 ReprojectPointFeature(pointfeature)?
文档没有基本的代码示例。
任何帮助将不胜感激
我从最后一个问题开始:
确实要在 PointFeature
上执行重新投影,您可以使用 ReprojectPointFeature
隐含案例 class。要使用它,只需确保在 reproject
函数调用范围内有 import geotrellis.vector._
。
import geotrellis.vector._
points.map(_.reproject(crsFrom, crsTo))
相同的导入也适用于 Point
:
import geotrellis.vector._
pt.reproject(crsFrom, crsTo)
points.map(_.mapGeom(_.reproject(crsFrom, crsTo)))
我将一组点从 CSV 文件加载到 RDD:
case class yieldrow(Elevation:Double,DryYield:Double)
val points :RDD[PointFeature[yieldrow]] = lines.map { line =>
val fields = line.split(",")
val point = Point(fields(1).toDouble,fields(0).toDouble)
Feature(point, yieldrow(fields(4).toDouble,fields(20)))
}
然后得到:
points: org.apache.spark.rdd.RDD[geotrellis.vector.PointFeature[yieldrow]]
现在需要从 EPSG:4326 重新投影到 EPSG:3270
所以我创建 CRS 从和到:
val crsFrom : geotrellis.proj4.CRS = geotrellis.proj4.CRS.fromName("EPSG:4326")
val crsTo : geotrellis.proj4.CRS = geotrellis.proj4.CRS.fromEpsgCode(32720)
但我无法创建转换,而且我也不知道:
将变换应用于单个点的热点:
val pt = Point( -64.9772376007928, -33.6408083223936)
如何使用Feature的mapGeom方法进行CRS变换?
points.map(_.mapGeom(?????))
points.map(feature => feature.mapGeom(????))
如何使用 ReprojectPointFeature(pointfeature)?
文档没有基本的代码示例。
任何帮助将不胜感激
我从最后一个问题开始:
确实要在 PointFeature
上执行重新投影,您可以使用 ReprojectPointFeature
隐含案例 class。要使用它,只需确保在 reproject
函数调用范围内有 import geotrellis.vector._
。
import geotrellis.vector._
points.map(_.reproject(crsFrom, crsTo))
相同的导入也适用于 Point
:
import geotrellis.vector._
pt.reproject(crsFrom, crsTo)
points.map(_.mapGeom(_.reproject(crsFrom, crsTo)))