Enhance field boundary loading with success flags and improve dummy point handling in hexbin map generation
This commit is contained in:
parent
3d3df151d3
commit
53bfc20f96
|
|
@ -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) %>%
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
)
|
||||
#
|
||||
|
|
|
|||
Loading…
Reference in a new issue