请问如何将clay_svm输出为栅格数据?
输出的栅格数据应只有一个波段即layer或band,其值应该为clay_svm的值
rm(list = ls()) # 清除所有数据
# 加载包
library(terra)
library(raster)
library(sp)
library(tidyr)
library(tidyverse)
library(zoo)
library(ncdf4)
library(e1071)#SVM函数
# 读取遥感影像
raster_img_4 <- stack("D:/2 given R/raster/2023_10m_6_1.TIF")
raster_img_6 <- stack("D:/2 given R/raster/2023_10m_8_1.TIF")
#block_size <- 10000000 # 设定每次读取的块大小
ncell(raster_img_6)
df <- as.data.frame(xyFromCell(raster_img_4, 1:ncell(raster_img_4)), stringsAsFactors = FALSE)
names(df) <- c("Longitude", "Latitude")
# 创建足够的列并初始化为NA
for (i in 1:10) {
df[paste0("Band_", i)] <- rep(NA, nrow(df))
}
#读取反射率
for (i in 1:4) {
df[paste0("Band_", i)] <- extract(raster_img_4[[i]], 1:ncell(raster_img_4))
}
df[paste0("Band_", 5)] <- extract(raster_img_6[[2]], 1:ncell(raster_img_6))
df[paste0("Band_", 6)] <- extract(raster_img_6[[3]], 1:ncell(raster_img_6))
df[paste0("Band_", 7)] <- extract(raster_img_6[[4]], 1:ncell(raster_img_6))
df[paste0("Band_", 8)] <- extract(raster_img_6[[5]], 1:ncell(raster_img_6))
df[paste0("Band_", 9)] <- extract(raster_img_6[[7]], 1:ncell(raster_img_6))
df[paste0("Band_", 10)] <- extract(raster_img_6[[8]], 1:ncell(raster_img_6))
#开始反演#
bb<-read.csv("G:/操作/data_clay_log_1.csv",header = TRUE,sep = ",")
library(e1071)#SVM函数
model = svm(Clay~.,data=bb,knernel = "radial")
clay_svm_pred <- predict(model,df,decision.values = TRUE)
clay_svm <- 10^(-clay_svm_pred)#结果处理
#准备输出