Skip to content

Commit e2b5572

Browse files
committed
Initial port to Geotrellis 3.0
1 parent 1efdf65 commit e2b5572

File tree

88 files changed

+725
-632
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+725
-632
lines changed

bench/src/main/scala/org/locationtech/rasterframes/bench/CatalystSerializerBench.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class CatalystSerializerBench extends SparkEnv {
4646

4747
@Setup(Level.Trial)
4848
def setupData(): Unit = {
49-
crsEnc = StandardEncoders.crsEncoder.resolveAndBind()
49+
crsEnc = StandardEncoders.crsSparkEncoder.resolveAndBind()
5050
}
5151

5252
@Benchmark

bench/src/main/scala/org/locationtech/rasterframes/bench/TileCellScanBench.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ package org.locationtech.rasterframes.bench
2323

2424
import java.util.concurrent.TimeUnit
2525

26+
import geotrellis.raster.Dimensions
2627
import org.apache.spark.sql.catalyst.InternalRow
2728
import org.apache.spark.sql.rf.TileUDT
2829
import org.locationtech.rasterframes.tiles.InternalRowTile
@@ -56,7 +57,7 @@ class TileCellScanBench extends SparkEnv {
5657
@Benchmark
5758
def deserializeRead(): Double = {
5859
val tile = TileType.deserialize(tileRow)
59-
val (cols, rows) = tile.dimensions
60+
val Dimensions(cols, rows) = tile.dimensions
6061
tile.getDouble(cols - 1, rows - 1) +
6162
tile.getDouble(cols/2, rows/2) +
6263
tile.getDouble(0, 0)

build.sbt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,20 @@ lazy val core = project
5050
.settings(
5151
moduleName := "rasterframes",
5252
libraryDependencies ++= Seq(
53+
`slf4j-api`,
5354
shapeless,
5455
`jts-core`,
56+
`spray-json`,
5557
geomesa("z3").value,
5658
geomesa("spark-jts").value,
57-
`geotrellis-contrib-vlm`,
58-
`geotrellis-contrib-gdal`,
59+
// `geotrellis-contrib-vlm`,
60+
// `geotrellis-contrib-gdal`,
5961
spark("core").value % Provided,
6062
spark("mllib").value % Provided,
6163
spark("sql").value % Provided,
6264
geotrellis("spark").value,
6365
geotrellis("raster").value,
66+
geotrellis("gdal").value,
6467
geotrellis("s3").value,
6568
geotrellis("spark-testkit").value % Test excludeAll (
6669
ExclusionRule(organization = "org.scalastic"),

core/src/main/scala/org/locationtech/rasterframes/PairRDDConverter.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ package org.locationtech.rasterframes
2323

2424
import org.locationtech.rasterframes.util._
2525
import geotrellis.raster.{MultibandTile, Tile, TileFeature}
26-
import geotrellis.spark.{SpaceTimeKey, SpatialKey}
26+
import geotrellis.layer._
2727
import org.apache.spark.rdd.RDD
2828
import org.apache.spark.sql._
2929
import org.apache.spark.sql.rf.TileUDT

core/src/main/scala/org/locationtech/rasterframes/StandardColumns.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import java.sql.Timestamp
2525

2626
import geotrellis.proj4.CRS
2727
import geotrellis.raster.Tile
28-
import geotrellis.spark.{SpatialKey, TemporalKey}
28+
import geotrellis.layer._
2929
import geotrellis.vector.{Extent, ProjectedExtent}
3030
import org.apache.spark.sql.functions.col
3131
import org.locationtech.jts.geom.{Point => jtsPoint, Polygon => jtsPolygon}

core/src/main/scala/org/locationtech/rasterframes/encoders/ProjectedExtentEncoder.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ import org.apache.spark.sql.catalyst.encoders.ExpressionEncoder
3232
*/
3333
object ProjectedExtentEncoder {
3434
def apply(): ExpressionEncoder[ProjectedExtent] = {
35-
DelegatingSubfieldEncoder("extent" -> extentEncoder, "crs" -> crsEncoder)
35+
DelegatingSubfieldEncoder("extent" -> extentEncoder, "crs" -> crsSparkEncoder)
3636
}
3737
}

core/src/main/scala/org/locationtech/rasterframes/encoders/StandardEncoders.scala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ import org.locationtech.rasterframes.stats.{CellHistogram, CellStatistics, Local
2828
import org.locationtech.jts.geom.Envelope
2929
import geotrellis.proj4.CRS
3030
import geotrellis.raster.{CellSize, CellType, Raster, Tile, TileLayout}
31-
import geotrellis.spark.tiling.LayoutDefinition
32-
import geotrellis.spark.{KeyBounds, SpaceTimeKey, SpatialKey, TemporalKey, TemporalProjectedExtent, TileLayerMetadata}
31+
import geotrellis.layer._
3332
import geotrellis.vector.{Extent, ProjectedExtent}
3433
import org.apache.spark.sql.{Encoder, Encoders}
3534
import org.apache.spark.sql.catalyst.encoders.ExpressionEncoder
@@ -53,7 +52,7 @@ trait StandardEncoders extends SpatialEncoders {
5352
implicit def singlebandTileEncoder: ExpressionEncoder[Tile] = ExpressionEncoder()
5453
implicit def rasterEncoder: ExpressionEncoder[Raster[Tile]] = ExpressionEncoder()
5554
implicit def tileLayerMetadataEncoder[K: TypeTag]: ExpressionEncoder[TileLayerMetadata[K]] = TileLayerMetadataEncoder()
56-
implicit def crsEncoder: ExpressionEncoder[CRS] = CRSEncoder()
55+
implicit def crsSparkEncoder: ExpressionEncoder[CRS] = CRSEncoder()
5756
implicit def projectedExtentEncoder: ExpressionEncoder[ProjectedExtent] = ProjectedExtentEncoder()
5857
implicit def temporalProjectedExtentEncoder: ExpressionEncoder[TemporalProjectedExtent] = TemporalProjectedExtentEncoder()
5958
implicit def cellTypeEncoder: ExpressionEncoder[CellType] = CellTypeEncoder()

core/src/main/scala/org/locationtech/rasterframes/encoders/StandardSerializers.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ package org.locationtech.rasterframes.encoders
2424
import com.github.blemale.scaffeine.Scaffeine
2525
import geotrellis.proj4.CRS
2626
import geotrellis.raster._
27-
import geotrellis.spark._
28-
import geotrellis.spark.tiling.LayoutDefinition
27+
import geotrellis.layer._
28+
2929
import geotrellis.vector._
3030
import org.apache.spark.sql.types._
3131
import org.locationtech.jts.geom.Envelope
@@ -71,19 +71,19 @@ trait StandardSerializers {
7171
)
7272
}
7373

74-
implicit val gridBoundsSerializer: CatalystSerializer[GridBounds] = new CatalystSerializer[GridBounds] {
74+
implicit val gridBoundsSerializer: CatalystSerializer[GridBounds[Int]] = new CatalystSerializer[GridBounds[Int]] {
7575
override val schema: StructType = StructType(Seq(
7676
StructField("colMin", IntegerType, false),
7777
StructField("rowMin", IntegerType, false),
7878
StructField("colMax", IntegerType, false),
7979
StructField("rowMax", IntegerType, false)
8080
))
8181

82-
override protected def to[R](t: GridBounds, io: CatalystIO[R]): R = io.create(
82+
override protected def to[R](t: GridBounds[Int], io: CatalystIO[R]): R = io.create(
8383
t.colMin, t.rowMin, t.colMax, t.rowMax
8484
)
8585

86-
override protected def from[R](t: R, io: CatalystIO[R]): GridBounds = GridBounds(
86+
override protected def from[R](t: R, io: CatalystIO[R]): GridBounds[Int] = GridBounds[Int](
8787
io.getInt(t, 0),
8888
io.getInt(t, 1),
8989
io.getInt(t, 2),

core/src/main/scala/org/locationtech/rasterframes/encoders/TemporalProjectedExtentEncoder.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
package org.locationtech.rasterframes.encoders
2323

2424
import org.locationtech.rasterframes._
25-
import geotrellis.spark.TemporalProjectedExtent
25+
import geotrellis.layer._
2626
import org.apache.spark.sql.Encoders
2727
import org.apache.spark.sql.catalyst.encoders.ExpressionEncoder
2828

@@ -34,9 +34,10 @@ import org.apache.spark.sql.catalyst.encoders.ExpressionEncoder
3434
*/
3535
object TemporalProjectedExtentEncoder {
3636
def apply(): ExpressionEncoder[TemporalProjectedExtent] = {
37+
import StandardEncoders.crsSparkEncoder
3738
DelegatingSubfieldEncoder(
3839
"extent" -> extentEncoder,
39-
"crs" -> crsEncoder,
40+
"crs" -> crsSparkEncoder,
4041
"instant" -> Encoders.scalaLong.asInstanceOf[ExpressionEncoder[Long]]
4142
)
4243
}

core/src/main/scala/org/locationtech/rasterframes/encoders/TileLayerMetadataEncoder.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
package org.locationtech.rasterframes.encoders
2323

24-
import geotrellis.spark.{KeyBounds, TileLayerMetadata}
24+
import geotrellis.layer._
2525
import org.apache.spark.sql.catalyst.encoders.ExpressionEncoder
2626

2727
import scala.reflect.runtime.universe._
@@ -39,7 +39,7 @@ object TileLayerMetadataEncoder {
3939
"cellType" -> cellTypeEncoder,
4040
"layout" -> layoutDefinitionEncoder,
4141
"extent" -> extentEncoder,
42-
"crs" -> crsEncoder
42+
"crs" -> crsSparkEncoder
4343
)
4444

4545
def apply[K: TypeTag](): ExpressionEncoder[TileLayerMetadata[K]] = {

0 commit comments

Comments
 (0)