Skip to content

Commit

Permalink
Make baseTiff transient (#230)
Browse files Browse the repository at this point in the history
  • Loading branch information
pomadchin committed Aug 12, 2019
1 parent 0772265 commit 4a791dc
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ import cats.instances.list._
case class GeoTiffRasterSource[F[_]: Monad: UnsafeLift](
dataPath: GeoTiffPath,
private[vlm] val targetCellType: Option[TargetCellType] = None,
private[vlm] val baseTiff: Option[F[MultibandGeoTiff]] = None
@transient private[vlm] val baseTiff: Option[F[MultibandGeoTiff]] = None
) extends RasterSourceF[F] {
def name: GeoTiffPath = dataPath

// memoize tiff, not useful only in a local fs case
@transient lazy val tiff: MultibandGeoTiff = GeoTiffReader.readMultiband(RangeReader(dataPath.value), streaming = true)
@transient lazy val tiffF: F[MultibandGeoTiff] = baseTiff.getOrElse(UnsafeLift[F].apply(tiff))
@transient lazy val tiffF: F[MultibandGeoTiff] = Option(baseTiff).flatten.getOrElse(UnsafeLift[F].apply(tiff))

def bandCount: F[Int] = tiffF.map(_.bandCount)
def cellType: F[CellType] = dstCellType.fold(tiffF.map(_.cellType))(Monad[F].pure)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,13 @@ case class GeoTiffReprojectRasterSource[F[_]: Monad: UnsafeLift](
strategy: OverviewStrategy = AutoHigherResolution,
errorThreshold: Double = 0.125,
private[vlm] val targetCellType: Option[TargetCellType] = None,
private[vlm] val baseTiff: Option[F[MultibandGeoTiff]] = None
@transient private[vlm] val baseTiff: Option[F[MultibandGeoTiff]] = None
) extends RasterSourceF[F] {
def name: GeoTiffPath = dataPath

// memoize tiff, not useful only in a local fs case
@transient lazy val tiff: MultibandGeoTiff = GeoTiffReader.readMultiband(RangeReader(dataPath.value), streaming = true)
@transient lazy val tiffF: F[MultibandGeoTiff] = baseTiff.getOrElse(UnsafeLift[F].apply(tiff))
@transient lazy val tiffF: F[MultibandGeoTiff] = Option(baseTiff).flatten.getOrElse(UnsafeLift[F].apply(tiff))

def bandCount: F[Int] = tiffF.map(_.bandCount)
def cellType: F[CellType] = dstCellType.fold(tiffF.map(_.cellType))(Monad[F].pure)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@ case class GeoTiffResampleRasterSource[F[_]: Monad: UnsafeLift](
method: ResampleMethod = NearestNeighbor,
strategy: OverviewStrategy = AutoHigherResolution,
private[vlm] val targetCellType: Option[TargetCellType] = None,
private[vlm] val baseTiff: Option[F[MultibandGeoTiff]] = None
@transient private[vlm] val baseTiff: Option[F[MultibandGeoTiff]] = None
) extends RasterSourceF[F] {
def resampleMethod: Option[ResampleMethod] = Some(method)
def name: GeoTiffPath = dataPath

// memoize tiff, not useful only in a local fs case
@transient lazy val tiff: MultibandGeoTiff = GeoTiffReader.readMultiband(RangeReader(dataPath.value), streaming = true)
@transient lazy val tiffF: F[MultibandGeoTiff] = baseTiff.getOrElse(UnsafeLift[F].apply(tiff))
@transient lazy val tiffF: F[MultibandGeoTiff] = Option(baseTiff).flatten.getOrElse(UnsafeLift[F].apply(tiff))

def bandCount: F[Int] = tiffF.map(_.bandCount)
def cellType: F[CellType] = dstCellType.fold(tiffF.map(_.cellType))(Monad[F].pure)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ import geotrellis.util.RangeReader
case class GeoTiffRasterSource(
dataPath: GeoTiffPath,
private[vlm] val targetCellType: Option[TargetCellType] = None,
private[vlm] val baseTiff: Option[MultibandGeoTiff] = None
@transient private[vlm] val baseTiff: Option[MultibandGeoTiff] = None
) extends RasterSource {
def name: GeoTiffPath = dataPath

@transient lazy val tiff: MultibandGeoTiff =
baseTiff.getOrElse(GeoTiffReader.readMultiband(RangeReader(dataPath.value), streaming = true))
Option(baseTiff).flatten.getOrElse(GeoTiffReader.readMultiband(RangeReader(dataPath.value), streaming = true))

def bandCount: Int = tiff.bandCount
def cellType: CellType = dstCellType.getOrElse(tiff.cellType)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ case class GeoTiffReprojectRasterSource(
strategy: OverviewStrategy = AutoHigherResolution,
errorThreshold: Double = 0.125,
private[vlm] val targetCellType: Option[TargetCellType] = None,
private[vlm] val baseTiff: Option[MultibandGeoTiff] = None
@transient private[vlm] val baseTiff: Option[MultibandGeoTiff] = None
) extends RasterSource {
def name: GeoTiffPath = dataPath

@transient lazy val tiff: MultibandGeoTiff =
baseTiff.getOrElse(GeoTiffReader.readMultiband(RangeReader(dataPath.value), streaming = true))
Option(baseTiff).flatten.getOrElse(GeoTiffReader.readMultiband(RangeReader(dataPath.value), streaming = true))

def bandCount: Int = tiff.bandCount
def cellType: CellType = dstCellType.getOrElse(tiff.cellType)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@ case class GeoTiffResampleRasterSource(
method: ResampleMethod = NearestNeighbor,
strategy: OverviewStrategy = AutoHigherResolution,
private[vlm] val targetCellType: Option[TargetCellType] = None,
private[vlm] val baseTiff: Option[MultibandGeoTiff] = None
@transient private[vlm] val baseTiff: Option[MultibandGeoTiff] = None
) extends RasterSource {
def resampleMethod: Option[ResampleMethod] = Some(method)
def name: GeoTiffPath = dataPath

@transient lazy val tiff: MultibandGeoTiff =
baseTiff.getOrElse(GeoTiffReader.readMultiband(RangeReader(dataPath.value), streaming = true))
Option(baseTiff).flatten.getOrElse(GeoTiffReader.readMultiband(RangeReader(dataPath.value), streaming = true))

def bandCount: Int = tiff.bandCount
def cellType: CellType = dstCellType.getOrElse(tiff.cellType)
Expand Down

0 comments on commit 4a791dc

Please sign in to comment.