Skip to content

Commit

Permalink
use more robust approach to computing target extent in reprojection, …
Browse files Browse the repository at this point in the history
  • Loading branch information
jdries committed Jan 13, 2025
1 parent 75ffeb1 commit 92bd1a2
Showing 2 changed files with 23 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -73,7 +73,7 @@ object TileRDDReproject {
val (targetCellSize:CellSize,targetDataExtent:Extent)=
targetLayout match {
case Right(l) => {
(targetLayout.asInstanceOf[LayoutDefinition].cellSize, targetLayout.asInstanceOf[LayoutDefinition].createAlignedGridExtent(ProjectedExtent(metadata.extent,metadata.crs).reproject(destCrs)))
(l.cellSize, l.createAlignedGridExtent(ProjectedExtent(metadata.extent,metadata.crs).reproject(destCrs)).extent)
}
case Left(l) => {
val passthroughGridExtent = ReprojectRasterExtent(sourceDataGridExtent, metadata.crs, destCrs)
Original file line number Diff line number Diff line change
@@ -628,4 +628,26 @@ class OpenEOProcessesSpec extends RasterMatchers {
//assertEquals(1,result(SpatialKey(1,0)).bandCount)
}


@Test def testResampleSpatialEdgeCaseSinglePixelCube():Unit = {
import geotrellis.spark._
import geotrellis.spark.reproject._

val layout = LayoutDefinition(RasterExtent(Extent(-120.550992, 71.82628788888888, -120.5421031111111, 71.83517677777778),32,32),32,32)
val targetLayout = LayoutDefinition(RasterExtent(Extent(585180.0, 7971640.0, 585820.0, 7972280.0),32,32),32,32)
val extent = Extent(-120.550992, 71.834899, -120.550792, 71.835099)
val cube: TileLayerRDD[SpatialKey] = TileLayerRDDBuilders.createTileLayerRDD(OpenEOProcessesSpec.sc,ByteArrayTile.fill(1,32,32),layout.tileLayout,LatLng)

val utm = CRS.fromEpsgCode(32610)

val badMetadata = cube.metadata.copy(crs = LatLng, extent = extent,layout = layout)
val result = org.openeo.geotrellis.reproject.TileRDDReproject(ContextRDD(cube,badMetadata), utm, Right(targetLayout), 16,Reproject.Options.DEFAULT,None)
//should not throw an error
val resultMetadata = result._2.metadata
assertEquals(targetLayout,resultMetadata.layout)
assertEquals(utm, resultMetadata.crs)


}

}

0 comments on commit 92bd1a2

Please sign in to comment.