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())
|
assign("paths", paths, envir = globalenv())
|
||||||
|
|
||||||
# Load field boundaries for hexbin map and spatial operations
|
# Load field boundaries for hexbin map and spatial operations
|
||||||
|
# Uses: load_field_boundaries, field_boundaries_sf, assign(..., envir = globalenv()), safe_log
|
||||||
tryCatch({
|
tryCatch({
|
||||||
boundaries_list <- load_field_boundaries(paths$data_dir)
|
boundaries_list <- load_field_boundaries(paths$data_dir)
|
||||||
field_boundaries_sf <- boundaries_list$field_boundaries_sf
|
field_boundaries_sf <- boundaries_list$field_boundaries_sf
|
||||||
assign("field_boundaries_sf", field_boundaries_sf, envir = globalenv())
|
assign("field_boundaries_sf", field_boundaries_sf, envir = globalenv())
|
||||||
|
assign("field_boundaries_loaded", TRUE, envir = globalenv())
|
||||||
safe_log("✓ Field boundaries loaded successfully")
|
safe_log("✓ Field boundaries loaded successfully")
|
||||||
}, error = function(e) {
|
}, error = function(e) {
|
||||||
|
assign("field_boundaries_loaded", FALSE, envir = globalenv())
|
||||||
safe_log(paste("⚠ Could not load field boundaries:", e$message), "WARNING")
|
safe_log(paste("⚠ Could not load field boundaries:", e$message), "WARNING")
|
||||||
safe_log("Hexbin map will not be available", "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 <- st_as_sf(dummy_point, coords = c("X", "Y"), crs = st_crs(points_ready))
|
||||||
dummy_point <- cbind(dummy_point, st_coordinates(dummy_point))
|
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
|
# Add dummy point to ensure consistent hexbin grid anchoring
|
||||||
points_ready <- rbind(points_ready, dummy_point)
|
points_ready <- rbind(points_ready, dummy_point)
|
||||||
points_not_ready <- rbind(points_not_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) {
|
}, error = function(e) {
|
||||||
warning("Error creating hexbin map:", e$message)
|
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"
|
.groups = "drop"
|
||||||
) %>%
|
) %>%
|
||||||
rename("Cloud Category" = Cloud_category) %>%
|
rename("Cloud Category" = Cloud_category) %>%
|
||||||
arrange("Cloud Category")
|
arrange(`Cloud Category`)
|
||||||
|
|
||||||
if (nrow(cloud_summary) > 0) {
|
if (nrow(cloud_summary) > 0) {
|
||||||
# Create flextable
|
# Create flextable
|
||||||
ft <- flextable(cloud_summary) %>%
|
ft <- flextable(cloud_summary) %>%
|
||||||
|
|
|
||||||
|
|
@ -437,9 +437,9 @@
|
||||||
#
|
#
|
||||||
# rmarkdown::render(
|
# rmarkdown::render(
|
||||||
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")),
|
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"
|
output_dir = "laravel_app/storage/app/angata/reports"
|
||||||
)
|
)
|
||||||
#
|
#
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue