0

デジタル地盤モデル (DGM) を使用して水深と範囲を見つけるプロジェクトに取り組んでいます。関心のある領域をカバーする複数の tiff ファイルがあり、それらを単一の tiff ファイルに結合して迅速に処理したいと考えています。以下の独自のコードまたは他の方法を使用してそれらを組み合わせるにはどうすればよいですか?

タイルを1つずつ入力として取得してから結合しようとしましたが、GC errorおそらくコード自体に問題があるためにスローされます。コードは以下に提供されています

import geotrellis.proj4._
import geotrellis.raster._
import geotrellis.raster.io.geotiff._
object waterdepth {
  val directories = List("data")

  //constants to differentiate which bands to use
  val R_BAND = 0
  val G_BAND = 1
  val NIR_BAND = 2

  // Path to our landsat band geotiffs.
  def bandPath(directory: String) = s"../biggis-landuse/radar_data/${directory}"

  def main(args: Array[String]): Unit = {
    directories.map(directory => generateMultibandGeoTiffFile(directory))
  }

  def generateMultibandGeoTiffFile(directory: String) = {
    val tiffFiles = new java.io.File(bandPath(directory)).listFiles.map(_.toString)

    val singleBandGeoTiffArray = tiffFiles.foldLeft(Array[SinglebandGeoTiff]())((acc, el:String) => {
      acc :+ SinglebandGeoTiff(el)
    })

    val tileArray = ArrayMultibandTile(singleBandGeoTiffArray.map(_.tile))

    println(s"Writing out $directory multispectral tif")
    MultibandGeoTiff(tileArray, singleBandGeoTiffArray(0).extent, singleBandGeoTiffArray(0).crs).write(s"data/$directory.tif")

すべての個別のファイルから単一の tif ファイルを作成できるはずですが、メモリ エラーが発生します。

4

1 に答える 1