我正在开展一个使用数字地面模型 (DGM) 查找水深和范围的项目。我有多个覆盖感兴趣区域的 tiff 文件,我想将它们组合成一个 tiff 文件以进行快速处理。我如何使用下面我自己的代码或任何其他方法来组合它们?
我试图连接瓷砖,让它们一个一个地作为输入,然后将它们组合起来,但它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 文件,但它会引发内存错误。