什么是Geotrellis
Geotrellis是一个基于Apache spark的用于处理栅格数据的scala库和框架。
- 可以高效地读写和操作栅格数据,实现了很多地图运算和失栅转换工具。
- 可以将栅格数据渲染成PNGs图片,将栅格数据的元数据转换成JSON。
- 其目标通过restful以web速度提供栅格数据的处理,并提供大型栅格数据集的快速批处理
项目的创建
- 新建maven项目 :在pom文件中添加依赖 Geotrellis的maven库
入门示例
以下例子简而言之就是创建了一个二维数组,并进行均值滤波。
import geotrellis.raster._
import geotrellis.raster.render.ascii._
import geotrellis.raster.mapalgebra.focal._
object Main{
def helloRaster():Unit = {
val nd= NODATA
val input = Array[Int](
nd, 7, 1, 1, 3, 5, 9, 8, 2,
9, 1, 1, 2, 2, 2, 4, 3, 5,
3, 8, 1, 3, 3, 3, 1, 2, 2,
2, 4, 7, 1, nd, 1, 8, 4, 3)
// 将一维数组转换成9列4行的数组
val iat = IntArrayTile(input, 9, 4)
print(iat.asciiDraw());
//用3*3的窗口对矩阵做卷积,设置中心值为邻域的平均值,注意NODATA被忽略,不参与计算
val focalNeighborhood = Square(1)
println(focalNeighborhood)
val meanTile = iat.focalMean(focalNeighborhood)
for (i <-0 to 3){
for (j <-0 to 8){
print(meanTile.getDouble(j,i)+" ")
}
println()
}
}
def main(args: Array[String]): Unit = {
helloRaster();
}
}