Wheat Growth Stage Analysis: Calculating GDD and Extracting Maturity Data from Multiple CSV Files
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# Specify the folder path\nfolder_path <- "E:/trainingdata/wheatOUTfile/75csv/"\n\n# Get the file names in the folder\nfile_names <- list.files(path = folder_path, pattern = ".csv", full.names = TRUE)\n\n# Create an empty dataframe to store the output\noutfile_maturity <- data.frame()\n\n# Loop through each file\nfor (file_name in file_names) {\n # Read data\n f1 <- import(file_name)\n \n # Extract the file name\n file_name <- basename(file_name)\n \n # Year\n year <- substr(file_name, 1, 4)\n \n # Next year\n next_year <- as.numeric(year) + 1\n \n f1$day <- as.numeric(f1$day)\n \n # The doy at sowing\n a <- filter(f1, year == year, StageName == "sowing")$day\n \n b <- filter(f1, year == next_year, StageName == "maturity")$day\n \n f2 <- filter(f1, (year == year) & (day >= a))\n \n f3 <- filter(f1, (year == next_year) & (day <= b))\n \n df <- rbind(f2, f3)\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 total_GDD <- sum(gdd, na.rm = TRUE)\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 df$FileName <- file_name\n \n outfile_maturity <- rbind(outfile_maturity, df)\n}\n\noutfile_maturity %>% \n export("E:/trainingdata/wheatOUTfile/75csv/Hebei_bazhouout_maturity.csv", row.names = FALSE)
原文地址: https://www.cveoy.top/t/topic/pHp6 著作权归作者所有。请勿转载和采集!