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

如何将R处理后的栅格输出文件名改为输入文件名并指定输出目录?

解决R语言terra包输出栅格文件名与输入一致并指定输出目录的问题

直接修改代码即可实现需求,核心是从输入文件路径中提取原文件名,再与目标输出目录拼接:

library(terra)
# 注意:如果你的文件后缀是.tif而非.tiff,把pattern改成"\\.tif$"(.是正则通配符,需转义)
f <- list.files(path="F:/Data/", pattern="\\.tiff$", full.names=TRUE)
r <- rast(f)
t <- clamp(r, 50, 750, values=FALSE)
x <- 1/10000 * t + 0              

# 指定输出目录
out_dir <- "F:/Data/Out"
# 确保输出目录存在,不存在则自动创建
if (!dir.exists(out_dir)) dir.create(out_dir, recursive = TRUE)
# 生成输出文件的完整路径:输出目录 + 原始文件名
outnames <- file.path(out_dir, basename(f))

# 按层输出到指定路径,文件名与输入完全一致
writeRaster(x, outnames, overwrite=TRUE)
outnames

关键代码说明

  • basename(f):从完整文件路径中提取纯文件名(比如从F:/Data/20200110.tif得到20200110.tif)
  • file.path(out_dir, basename(f)):自动拼接输出目录和文件名,避免手动写路径分隔符出错
  • dir.create(out_dir, recursive = TRUE):自动创建多级输出目录,无需手动提前创建
  • writeRaster的overwrite=TRUE:若输出目录已有同名文件会直接覆盖,不需要可删除该参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:53:19