首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala,Spark,Geotrellis Rdd CRS再投影

Scala,Spark,Geotrellis Rdd CRS再投影
EN

Stack Overflow用户
提问于 2017-11-12 23:34:22
回答 1查看 326关注 0票数 2

我将CSV文件中的一组点加载到RDD:

代码语言:javascript
复制
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)))
}

那就得到:

代码语言:javascript
复制
points: org.apache.spark.rdd.RDD[geotrellis.vector.PointFeature[yieldrow]] 

现在需要重新设计EPSG:4326到EPSG:3270

因此,我创建CRS是为了:

代码语言:javascript
复制
val crsFrom : geotrellis.proj4.CRS =  geotrellis.proj4.CRS.fromName("EPSG:4326")
val crsTo : geotrellis.proj4.CRS =  geotrellis.proj4.CRS.fromEpsgCode(32720)

但是我不能创造出转化,我也不知道:

将转换应用于单个点是很热的:

代码语言:javascript
复制
val pt = Point( -64.9772376007928, -33.6408083223936)

如何使用特征的mapGeom方法进行CRS转换?

代码语言:javascript
复制
points.map(_.mapGeom(?????))
points.map(feature => feature.mapGeom(????))

如何使用ReprojectPointFeature(切入点)?

这些文档没有基本的代码示例。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-13 06:05:24

我将从最后一个问题开始:

实际上,要在PointFeature上执行重新项目,可以使用ReprojectPointFeature内嵌案例类。要使用它,只需确保import geotrellis.vector._reproject函数调用作用域中。

代码语言:javascript
复制
import geotrellis.vector._
points.map(_.reproject(crsFrom, crsTo))

同样的导入也适用于Point

代码语言:javascript
复制
import geotrellis.vector._
pt.reproject(crsFrom, crsTo)
points.map(_.mapGeom(_.reproject(crsFrom, crsTo)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47255212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档