0

我一直在尝试使用包中的函数计算 wasserstein 指标transport。我有两个高程图层作为 .tif 文件,并且我已将它们栅格化。然后我将它们转换为矩阵,以便它们可以在pgrd函数中使用,然后将矩阵转换为可以在wasserstein函数中使用的格式。当我尝试在wasserstein函数中使用矩阵时,我最终遇到了这个错误。是否有熟悉该transport软件包的人可以阐明此错误?您对从光栅文件计算此指标的其他方法有什么建议吗?

Error in gen_cost(x, x, threads) : std::bad_alloc
In addition: Warning message:
In transport.pgrid(a, b, p = p, ...) :
  total mass in a and b differs. Normalizing a and b to probability measures (totcontmass=1).

这是我一直在使用的代码:

library(raster)
library(transport)
download.file("https://prd-tnm.s3.amazonaws.com/StagedProducts/Elevation/13/TIFF/n37w115/USGS_13_n37w115.tif",
              "my_elev.tif",
              mode = "wb")
download.file("https://prd-tnm.s3.amazonaws.com/StagedProducts/Elevation/13/TIFF/n42w109/USGS_13_n42w109.tif",
              "my_elev2.tif",
              mode = "wb")


dem <- raster("my_elev.tif")
dem2 <- raster("my_elev2.tif")
plot(dem)

mtrx <- as.matrix(dem)
pgrd <- pgrid(mtrx)

mtrx2 <- as.matrix(dem2)
pgrd2 <- pgrid(mtrx2)

wasserstein(pgrd, pgrd2, p = 1)
4

0 回答 0