Ошибка в R yaImpute: невозможно использовать функцию AsciiGridImpute (kNN, GBM) - PullRequest
0 голосов
/ 10 июня 2019

Я работаю с дистанционным зондированием (снимки Landsat 5 с разрешением 30 м) и хочу оценить биомассу лесных деревьев с использованием коэффициентов отражения и растительности полос Landsat в качестве X-предикторов и набора наземных измерений биомассы в качестве Y-выхода.Я построил модель kNN в пакете yaImpute (R) и использовал ту же модель усиления ансамбля в пакете gbm (R).

Теперь я хочу нарисовать растровую карту этого.Функции AsciiGridImpute() (для yai объектов) и AsciiGridPredict() (для других объектов, таких как GBM) должны помочь.Но я получил ошибку.

Сначала у меня есть yai -объект с моделью и 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")

И т.д.Итак, я написал файлы ASCII для всех 10 переменных.Тогда

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 такой жена имена в моих секретных материалах.Что может быть не так?(с объектом gbm я получил ту же ошибку, используя вместо нее AsciiGridPredict())

1 Ответ

0 голосов
/ 12 июня 2019

Я должен был прочитать Crookston et al. (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...

Однако у меня проблемы с реализацией функции gbm() в AsciiGridPredict(). Здесь я не найду решения, похоже, ученых нужно задавать ...

...