library(dplyr)\nlibrary(tools)\nrequire(data.table)\nrequire(rio)\n\n###calculate GDD function\ngdd_calc <- function(T_min, T_max) {\n T_min_ <- T_min\n T_max_ <- T_max\n mint <- ifelse(T_min_ < 0, 0, ifelse(T_min_ > 30, 30, T_min_))\n maxt <- ifelse(T_max_ < 0, 0, ifelse(T_max_ > 30, 30, T_max_))\n gdd <- (mint + maxt) / 2 - 0\n return(gdd)\n}\n\n# 获取文件夹中的所有文件名\nfile_list <- list.files("E:/trainingdata/wheatOUTfile/75csv/", pattern = ".csv", full.names = TRUE)\n\n# 创建空的数据框来保存结果\noutfile <- data.frame()\n\n# 遍历每个文件进行处理\nfor (file in file_list) {\n print(file)\n \n # 读取文件\n f1 <- import(file)\n \n # 获取文件名\n file_name <- basename(file)\n \n # 年份\n i <- 1981\n ii <- i+1\n \n f1$day <- as.numeric(f1$day)\n \n # the doy at sowing\n a <- filter(f1, year == i, StageName == "sowing")$day\n b <- filter(f1, year == ii, StageName == "maturity")$day\n \n f2 <- filter(f1, (year == i) & (day >= a))\n f3 <- filter(f1, (year == ii) & (day <= b))\n \n df <- rbind(f2, f3)\n df$file_name <- file_name\n \n mint <- df$MinT\n maxt <- df$MaxT\n \n gdd <- gdd_calc(mint, maxt)\n \n df$GDD <- gdd\n \n avg_temperature <- mean(df$MaxT, na.rm = TRUE)\n avg_vpd <- mean(df$vpd_est, na.rm = TRUE) \n total_Radn <-sum(df$Radn, na.rm = TRUE)\n total_rainfall <-sum(df$Rain, na.rm = TRUE)\n \n total_GDD <- sum(gdd, na.rm = TRUE) # Calculate total GDD\n sw_columns <- c("sw(1)", "sw(2)", "sw(3)", "sw(4)", "sw(5)", "sw(6)")\n sum_sowing <- sum(df[df$StageName == "sowing", sw_columns], na.rm = TRUE)\n sum_maturity <- sum(df[df$StageName == "maturity", sw_columns], na.rm = TRUE)\n difference <- sum_sowing - sum_maturity\n \n df$total_gdd <- total_GDD\n df$Maxtmean <- avg_temperature\n df$rainfall <- total_rainfall\n df$VPD <- avg_vpd\n df$total_Radn <- total_Radn\n df$SWS <- difference\n \n if (i == 1981) {\n outfile <- df\n } else {\n outfile <- rbind(outfile, df)\n }\n}\n\noutfile %>% \n export("E:/trainingdata/wheatOUTfile/75csv/Hebei_bazhouout_maturity.csv", row.names = FALSE)\n


原文地址: https://www.cveoy.top/t/topic/pHp3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录