diff --git a/r_app/91_CI_report_with_kpis_cane_supply.Rmd b/r_app/91_CI_report_with_kpis_cane_supply.Rmd index 209d271..df3e4d1 100644 --- a/r_app/91_CI_report_with_kpis_cane_supply.Rmd +++ b/r_app/91_CI_report_with_kpis_cane_supply.Rmd @@ -101,12 +101,15 @@ paths <- setup_project_directories(project_dir) assign("paths", paths, envir = globalenv()) # Load field boundaries for hexbin map and spatial operations +# Uses: load_field_boundaries, field_boundaries_sf, assign(..., envir = globalenv()), safe_log tryCatch({ boundaries_list <- load_field_boundaries(paths$data_dir) field_boundaries_sf <- boundaries_list$field_boundaries_sf assign("field_boundaries_sf", field_boundaries_sf, envir = globalenv()) + assign("field_boundaries_loaded", TRUE, envir = globalenv()) safe_log("✓ Field boundaries loaded successfully") }, error = function(e) { + assign("field_boundaries_loaded", FALSE, envir = globalenv()) safe_log(paste("⚠ Could not load field boundaries:", e$message), "WARNING") safe_log("Hexbin map will not be available", "WARNING") }) @@ -558,6 +561,10 @@ tryCatch({ dummy_point <- st_as_sf(dummy_point, coords = c("X", "Y"), crs = st_crs(points_ready)) dummy_point <- cbind(dummy_point, st_coordinates(dummy_point)) + # Mark dummy point with anchor flag before binding + # Referenced: dummy_point, st_as_sf, st_coordinates, area_ac + dummy_point$anchor_dummy <- TRUE + # Add dummy point to ensure consistent hexbin grid anchoring points_ready <- rbind(points_ready, dummy_point) points_not_ready <- rbind(points_not_ready, dummy_point) @@ -639,6 +646,11 @@ tryCatch({ ) ) + # Remove dummy point rows after grid anchoring to prevent dummy cells in plot + # Referenced: points_ready, points_not_ready, anchor_dummy flag filtering + points_ready <- points_ready %>% filter(!anchor_dummy, na.rm = TRUE) + points_not_ready <- points_not_ready %>% filter(!anchor_dummy, na.rm = TRUE) + }, error = function(e) { warning("Error creating hexbin map:", e$message) }) @@ -827,8 +839,7 @@ if (exists("summary_data") && !is.null(summary_data) && "field_analysis" %in% na .groups = "drop" ) %>% rename("Cloud Category" = Cloud_category) %>% - arrange("Cloud Category") - + arrange(`Cloud Category`) if (nrow(cloud_summary) > 0) { # Create flextable ft <- flextable(cloud_summary) %>% diff --git a/r_app/MANUAL_PIPELINE_RUNNER.R b/r_app/MANUAL_PIPELINE_RUNNER.R index ec4ae39..3b1172b 100644 --- a/r_app/MANUAL_PIPELINE_RUNNER.R +++ b/r_app/MANUAL_PIPELINE_RUNNER.R @@ -437,9 +437,9 @@ # # rmarkdown::render( rmarkdown::render( - "r_app/90_CI_report_with_kpis_cane_supply.Rmd", + "r_app/90_CI_report_with_kpis_agronomic_support.Rmd", params = list(data_dir = "angata", report_date = as.Date("2026-02-04")), - output_file = "SmartCane_Report_cane_supply_angata_2026-02-10_FIXED.docx", + output_file = "SmartCane_Report_agronomic_support_aura_2026-02-10_FIXED.docx", output_dir = "laravel_app/storage/app/angata/reports" ) #