Я работаю с дистанционным зондированием (снимки 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()
)