【问题标题】:Error in R yaImpute: cannot use AsciiGridImpute function (kNN, GBM)R yaImpute 中的错误:无法使用 AsciiGridImpute 函数(kNN,GBM)
【发布时间】:2019-10-25 01:51:30
【问题描述】:

我正在使用遥感(Landsat 5 30 米分辨率图像),并希望使用 Landsat 波段的反射率和植被指数作为 X 预测因子以及一组基于地面的生物量测量作为 Y 输出来估计森林树木生物量。我在 yaImpute 包 (R) 中构建了 kNN 模型,并使用相同的数据 - 包 gbm (R) 中的集成提升模型。

现在我想画一张它的光栅图。函数AsciiGridImpute()(用于yai 对象)和AsciiGridPredict()(用于其他对象,如GBM)必须有所帮助。但是我得到了一个错误。

首先,我有 yai-object 和模型,impute 有观察值和预测值:

test_yai <- yai(x = x_center_raw_imp, y = center_knn_raw_imp$dead, k = 10, method = "randomForest")

test_impute <- impute(test_yai, ancillaryData = center_knn_raw_imp$dead)

yai 对象建立在 10 个变量之上:

Coastal, Blue, Green, Red, NIR, SWIR1, SWIR2, NDVI, IPVI, GRVI

对于AsciiGridImpute() 函数,我需要x 变量列表、输出文件和模型列表。 所以,有了我的卫星图像的光栅对象,我首先制作了 ascii 文件。

names(Oster_GEE_mask) <- c("Coastal", "Blue", "Green", "Red", "NIR", "SWIR1", "SWIR2", "NDVI", "IPVI", "GRVI") # name layers of raster object as variables in yai object, i.e. kNN model
writeRaster(Oster_GEE_mask[[1]], filename = "Coastal.asc", format="ascii")

等等。所以我为所有 10 个变量编写了 ascii 文件。那么

xfiles <- list(Coastal = "Coastal.asc", Blue = "Blue.asc", Green = "Green.asc",
               Red = "Red.asc", NIR = "NIR.asc", SWIR1 = "SWIR1.asc",
               SWIR2 = "SWIR2.asc", NDVI = "NDVI.asc", IPVI = "IPVI.asc",
               GRVI = "GRVI.asc") # list of my variables
outfiles <- list(dead = "dead.asc") # as I predicted "dead" column in my yai object, I named output file in same way

以及创建栅格地图的功能:

AsciiGridImpute(test_yai, xfiles, outfiles)

但这里有一个错误!

    Rows per dot:  12  Rows to do: 1281 
ToDo: ..........................................................................................................
Done: Error in rownames<-(`*tmp*`, value = saveNames) : 
  attempt to set 'rownames' on an object with no dimensions

yai 对象的变量集与我的 x 文件中的名称相同。有什么问题? (使用 gbm 对象我得到了同样的错误,改用 AsciiGridPredict()

【问题讨论】:

    标签: r knn qgis gbm


    【解决方案1】:

    我必须阅读 Crookston 等人的著作。 (2008 年)首先...

    AsciiGridImpute(test_yai, xfiles, outfiles, ancillaryData = x_center_raw_imp) # while I tried first to use object 'impute' as ancillaryData instead of reference file with all variables...
    

    但是,我无法在 AsciiGridPredict() 中实现 gbm() 函数。在这里我不会找到解决方案,貌似需要请科学家们...

    【讨论】:

      猜你喜欢
      • 2016-01-22
      • 2014-10-20
      • 2015-06-22
      • 2017-03-18
      • 2016-01-16
      • 2023-02-06
      • 2016-01-03
      • 2018-02-15
      相关资源
      最近更新 更多