library(here) library('readxl') #chemba laravel_storage_dir <- here("laravel_app/storage/app", project_dir) reports_dir <- here(laravel_storage_dir, "reports") log_dir <- here(laravel_storage_dir, "logs") planet_tif_folder <- here(laravel_storage_dir, "merged_tif") merged_final <- here(laravel_storage_dir, "merged_final_tif") planet_tif_folder <- here(laravel_storage_dir, "merged_tif") merged_final <- here(laravel_storage_dir, "merged_final_tif") data_dir <- here(laravel_storage_dir, "Data") extracted_CI_dir <- here(data_dir, "extracted_ci") daily_CI_vals_dir <- here(extracted_CI_dir, "daily_vals") cumulative_CI_vals_dir <- here(extracted_CI_dir, "cumulative_vals") weekly_CI_mosaic <- here(laravel_storage_dir, "weekly_mosaic") daily_vrt <- here(data_dir, "vrt") harvest_dir <- here(data_dir, "HarvestData") dir.create(here(laravel_storage_dir), showWarnings = FALSE) dir.create(here(reports_dir), showWarnings = FALSE) dir.create(here(data_dir), showWarnings = FALSE) dir.create(here(log_dir), showWarnings = FALSE) dir.create(here(extracted_CI_dir), showWarnings = FALSE) dir.create(here(daily_CI_vals_dir), showWarnings = FALSE) dir.create(here(cumulative_CI_vals_dir), showWarnings = FALSE) dir.create(here(weekly_CI_mosaic),showWarnings = FALSE) dir.create(here(daily_vrt), showWarnings = FALSE) dir.create(merged_final,showWarnings = FALSE) dir.create(harvest_dir,showWarnings = FALSE) field_boundaries_sf <- st_read(here(data_dir, "pivot.geojson"), crs = 4326) names(field_boundaries_sf) <- c("field", "sub_field", "geometry") field_boundaries <- field_boundaries_sf %>% terra::vect() harvesting_data <- read_excel(here(data_dir, "harvest.xlsx")) %>% dplyr::select( c( "field", "sub_field", "year", "season_start", "season_end", "age", "sub_area", "tonnage_ha" ) ) %>% mutate( field = as.character(field), sub_field = as.character(sub_field), year = as.numeric(year), season_start = as.Date(season_start, format="%d/%m/%Y"), season_end = as.Date(season_end, format="%d/%m/%Y"), age = as.numeric(age), sub_area = as.character(sub_area), tonnage_ha = as.numeric(tonnage_ha) ) %>% mutate( season_end = case_when(season_end > Sys.Date() ~ Sys.Date(), is.na(season_end) ~ Sys.Date(), TRUE ~ season_end), age = round(as.numeric(season_end - season_start) / 7, 0) ) log_file <- here(log_dir, paste0(format(Sys.Date(), "%Y%m%d"), ".log")) # Create a logging function log_message <- function(message) { cat(message, "\n", file = log_file, append = TRUE) } log_head <- function(list) { log_message(paste(capture.output(str(head(list))), collapse = "\n")) }