Skip to content

Commit

Permalink
Simplify extent computation
Browse files Browse the repository at this point in the history
  • Loading branch information
pomadchin committed Jan 8, 2021
1 parent a86048b commit c38562d
Showing 1 changed file with 22 additions and 14 deletions.
36 changes: 22 additions & 14 deletions gdal/src/main/scala/geotrellis/raster/gdal/GDALDataset.scala
Expand Up @@ -231,8 +231,6 @@ case class GDALDataset(token: Long) extends AnyVal {
/**
* Compute extent, takes into account a possible rotation.
*
* https://github.com/mapbox/rasterio/blob/1.2b1/rasterio/_base.pyx#L865-L895
*
* Note for a reader:
* affine.Affine(a, b, c, d, e, f)
* GDALTransform(c, a, b, f, d, e)
Expand All @@ -243,20 +241,30 @@ case class GDALDataset(token: Long) extends AnyVal {
def extent(transform: Array[Double], cols: Int, rows: Int): Extent = {
val Array(upx, xres, xskew, upy, yskew, yres) = transform

val ulx = upx + 0 * xres + 0 * xskew
val uly = upy + 0 * yskew + 0 * yres

val llx = upx + 0 * xres + rows * xskew
val lly = upy + 0 * yskew + rows * yres

val lrx = upx + cols * xres + rows * xskew
val lry = upy + cols * yskew + rows * yres
/**
* val ulx = upx + 0 * xres + 0 * xskew
* val uly = upy + 0 * yskew + 0 * yres
*
* val llx = upx + 0 * xres + rows * xskew
* val lly = upy + 0 * yskew + rows * yres
*
* val lrx = upx + cols * xres + rows * xskew
* val lry = upy + cols * yskew + rows * yres
*
* val urx = upx + cols * xres + 0 * xskew
* val ury = upy + cols * yskew + 0 * yres
*
* val xs = List(ulx, llx, lrx, urx)
* val ys = List(uly, lly, lry, ury)
*/

val urx = upx + cols * xres + 0 * xskew
val ury = upy + cols * yskew + 0 * yres
val xys =
for {
px <- List(0, cols)
py <- List(0, rows)
} yield (upx + px * xres + py * xskew, upy + px * yskew + py * yres)

val xs = List(ulx, llx, lrx, urx)
val ys = List(uly, lly, lry, ury)
val (xs, ys) = xys.unzip

Extent(xs.min, ys.min, xs.max, ys.max)
}
Expand Down

0 comments on commit c38562d

Please sign in to comment.