小麦生长季度GDD、降雨量和气象变量计算:河北省霸州地区
"f1 <- import("E:/trainingdata/wheatOUTfile/75csv/Hebei_bazhou.csv") \n#year i <- 1981
ii <- i+1
f1$day <- as.numeric(f1$day)
#the doy at sowing a <- filter(f1, year == i, StageName == "sowing")$day
b <- filter(f1, year == ii, StageName == "maturity")$day
f2 <- filter(f1, (year == i) & (day >= a))
f3 <- filter(f1, (year == ii) & (day <= b))
df <- rbind(f2, f3)
#df$sowyear <- 1981
mint <- df$MinT maxt <- df$MaxT
gdd <- gdd_calc(mint, maxt)
df$GDD <- gdd
###----------------------------------------------------------------------------
outfile <- data.frame()
for (i in 1981: 2018){ print(i) ii <- i+1
f1$day <- as.numeric(f1$day)
#the doy at sowing a <- filter(f1, year == i, StageName == "sowing")$day
b <- filter(f1, year == ii, StageName == "maturity")$day
f2 <- filter(f1, (year == i) & (day >= a))
f3 <- filter(f1, (year == ii) & (day <= b))
df <- rbind(f2, f3) #df$sowyear <- 1981
mint <- df$MinT maxt <- df$MaxT
gdd <- gdd_calc(mint, maxt)
df$GDD <- gdd
avg_temperature <- mean(df$MaxT, na.rm = TRUE) avg_vpd <- mean(df$vpd_est, na.rm = TRUE) total_Radn <-sum(df$Radn, na.rm = TRUE) total_rainfall <-sum(df$Rain, na.rm = TRUE)
total_GDD <- sum(gdd, na.rm = TRUE) # Calculate total GDD
Calculate the difference between sum_sowing and sum_maturity for the current year
sw_columns <- c("sw(1)", "sw(2)", "sw(3)", "sw(4)", "sw(5)", "sw(6)" ) sum_sowing <- sum(df[df$StageName == "sowing", sw_columns], na.rm = TRUE) sum_maturity <- sum(df[df$StageName == "maturity", sw_columns], na.rm = TRUE) difference <- sum_sowing - sum_maturity
df$total_gdd <- total_GDD df$Maxtmean <- avg_temperature df$rainfall <- total_rainfall df$VPD <- avg_vpd df$total_Radn <- total_Radn df$SWS <- difference if (i == 1981) { outfile <- df } else { outfile <- rbind(outfile, df) } }
outfile %>% export("E:/trainingdata/wheatOUTfile/75csv/Hebei_bazhouout.csv", row.names = FALSE)
outfile_maturity <- outfile[outfile$StageName == "maturity", ] outfile_maturity %>% export("E:/trainingdata/wheatOUTfile/75csv/Hebei_bazhouout_maturity.csv", row.names = FALSE)
这是计算一个文件中连续年的结果,现在需要遍历文件夹中所有的文件,将计算结果输出到一个csv文件中,并增加一列为每个原始文件的名字内容:您可以使用以下代码来遍历文件夹中的所有文件,并将计算结果输出到一个CSV文件中,并添加一列为每个原始文件的名字:
# 获取文件夹中所有CSV文件的路径
folder_path <- \"E:\/trainingdata\/wheatOUTfile\/75csv\/\"
file_paths <- list.files(path = folder_path, pattern = \"*.csv\", full.names = TRUE)
# 创建一个空的结果数据框
result <- data.frame()
# 遍历每个文件
for (file_path in file_paths) {
# 导入文件数据
f1 <- read.csv(file_path)
# 处理文件数据...
# 计算结果...
# 添加原始文件名列
df$filename <- basename(file_path)
# 将结果添加到结果数据框
result <- rbind(result, df)
}
# 将结果输出到CSV文件
output_file <- \"E:\/trainingdata\/wheatOUTfile\/75csv\/combined_results.csv\"
write.csv(result, output_file, row.names = FALSE)
请注意,您需要根据您的文件夹路径和文件命名模式进行相应的更改。
原文地址: https://www.cveoy.top/t/topic/pGd7 著作权归作者所有。请勿转载和采集!