You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非规则时序遥感影像随机森林作物分类数据处理与建模咨询

问题解答

1. 合并宽表并转换为长表

假设提取的宽表(记为extracted_bands)每行对应一个样本点,列名格式为波段名_影像序号(如B1_1、B2_37),且行顺序与s_points的样本点顺序一致;或两个数据框均包含唯一标识的sample_id列。

步骤1:合并数据框

若存在sample_id列:

library(dplyr)
combined_df <- inner_join(s_points, extracted_bands, by = "sample_id")

若无sample_id但行顺序匹配:

combined_df <- bind_cols(s_points, extracted_bands)

步骤2:转换为长表

使用tidyr::pivot_longer重塑格式,按时间(影像序号)和波段分组:

library(tidyr)
long_df <- combined_df %>%
  pivot_longer(
    cols = starts_with("B"), # 匹配所有波段列,可根据实际列名调整
    names_to = c("band", "image_idx"),
    names_sep = "_", # 假设列名用下划线分隔波段与影像序号
    values_to = "reflectance"
  ) %>%
  mutate(image_idx = as.integer(image_idx)) # 将影像序号转为整数类型

最终长表将包含sample_id、crop_class、band、image_idx、reflectance列,满足时序样本的长格式需求。

2. 训练随机森林分类模型

随机森林需要每个样本一行,所有波段特征为列,作物类别为标签的宽格式数据,直接使用合并后的combined_df即可:

步骤1:准备训练数据

# 分离特征与标签
features <- combined_df %>% select(-sample_id, -crop_class)
labels <- factor(combined_df$crop_class) # 转为因子类型适配分类任务

# 划分训练集与测试集(可选)
set.seed(123) # 设置随机种子保证可复现
train_idx <- sample(nrow(combined_df), 0.7 * nrow(combined_df))
train_features <- features[train_idx, ]
train_labels <- labels[train_idx]
test_features <- features[-train_idx, ]
test_labels <- labels[-train_idx]

步骤2:训练模型

推荐使用ranger包(比基础randomForest更快,支持并行):

library(ranger)
rf_model <- ranger(
  y = train_labels,
  x = train_features,
  num.trees = 500, # 树的数量可按需调整
  importance = "impurity", # 计算特征重要性
  seed = 123
)

若使用randomForest包:

library(randomForest)
rf_model <- randomForest(
  x = train_features,
  y = train_labels,
  ntree = 500,
  importance = TRUE,
  seed = 123
)

步骤3:模型评估

# 预测测试集
test_pred <- predict(rf_model, test_features)
# 生成混淆矩阵
table(test_pred, test_labels)
# 计算准确率
mean(test_pred == test_labels)

3. 非规则时序下gdalcubes的适用性

针对非规则时序遥感影像,gdalcubes是更合适的工具,核心优势如下:

  • 时序规整化:可将非规则时间间隔的影像重采样为规则时序(如每周、每10天),解决影像时间错位问题,便于提取稳定的时序特征。
  • 内置时序处理:支持直接计算时序统计量(均值、标准差)、物候参数(植被物候期)、时序滤波(Savitzky-Golay平滑),这类特征对作物分类精度的提升远高于单波段简单堆叠。
  • 内存高效:无需将所有影像合并为单个大SpatRaster,通过虚拟立方体处理,降低内存压力,适配37景12波段的大数据量场景。

若分类任务需利用作物生长周期的光谱变化特征,优先用gdalcubes构建时序立方体、提取特征后再输入模型;若仅使用静态光谱信息分类,terra工作流也可满足需求,但处理非规则时序的灵活性远不及gdalcubes。

内容的提问来源于stack exchange,提问作者talocodat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:25:19