Skip to content

Commit 1c1995f

Browse files
authored
Merge pull request #538 from s22s/fix/531-xz2-lenient
Use lenient=true in Z2 and XZ2 indexers
2 parents 082e99e + 969cdd2 commit 1c1995f

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

core/src/main/scala/org/locationtech/rasterframes/expressions/transformers/XZ2Indexer.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ case class XZ2Indexer(left: Expression, right: Expression, indexResolution: Shor
8383

8484
val index = indexer.index(
8585
env.getMinX, env.getMinY, env.getMaxX, env.getMaxY,
86-
lenient = false
86+
lenient = true
8787
)
8888
index
8989
}

core/src/main/scala/org/locationtech/rasterframes/expressions/transformers/Z2Indexer.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ case class Z2Indexer(left: Expression, right: Expression, indexResolution: Short
8080
trans(coord)
8181
}
8282

83-
indexer.index(pt.getX, pt.getY, lenient = false).z
83+
indexer.index(pt.getX, pt.getY, lenient = true).z
8484
}
8585
}
8686

core/src/test/scala/org/locationtech/rasterframes/expressions/SFCIndexerSpec.scala

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ class SFCIndexerSpec extends TestEnvironment with Inspectors {
200200
val crs: CRS = LatLng
201201
withClue("XZ2") {
202202
val sfc = XZ2SFC(3)
203-
val expected = testExtents.map(e => sfc.index(e.xmin, e.ymin, e.xmax, e.ymax))
203+
val expected = testExtents.map(e => sfc.index(e.xmin, e.ymin, e.xmax, e.ymax, lenient = true))
204204
val indexes = df.select(rf_xz2_index($"extent", serialized_literal(crs), 3)).collect()
205205
forEvery(indexes.zip(expected)) { case (i, e) =>
206206
i should be(e)
@@ -215,5 +215,37 @@ class SFCIndexerSpec extends TestEnvironment with Inspectors {
215215
}
216216
}
217217
}
218+
it("should be lenient from RasterSource") {
219+
val extents = Seq(
220+
Extent(-181, -91, -179.5, -89.5),
221+
Extent(-181, 89.5, -179.5, 91),
222+
Extent(179.5, -91, 181, -89.5),
223+
Extent(179.5, 89.5, 181, 91)
224+
)
225+
226+
val crs: CRS = LatLng
227+
val tile = TestData.randomTile(2, 2, CellType.fromName("uint8"))
228+
val srcs = extents
229+
.map(InMemoryRasterSource(tile, _, crs): RFRasterSource)
230+
.toDF("src")
231+
232+
withClue("XZ2") {
233+
val expected = extents.map(e xzsfc.index(e.xmin, e.ymin, e.xmax, e.ymax, lenient = true))
234+
val indexes = srcs.select(rf_xz2_index($"src")).collect()
235+
forEvery(indexes.zip(expected)) { case (i, e) =>
236+
i should be(e)
237+
}
238+
}
239+
withClue("Z2") {
240+
val expected = extents.map({ e
241+
val p = e.center
242+
zsfc.index(p.x, p.y, lenient = true).z
243+
})
244+
val indexes = srcs.select(rf_z2_index($"src")).collect()
245+
forEvery(indexes.zip(expected)) { case (i, e) =>
246+
i should be(e)
247+
}
248+
}
249+
}
218250
}
219251
}

0 commit comments

Comments
 (0)