
Validate Plot Metadata Before Import
validate_plot_metadata.RdComprehensive validation of plot metadata using database rules and lookup tables. Returns structured results with severity levels (error vs warning). Can interactively fix lookup mismatches using fuzzy matching. Also checks for potential duplicate plots by matching method, country, and coordinates.
Usage
validate_plot_metadata(
data,
column_mappings,
config,
con = NULL,
strict = FALSE,
interactive = TRUE,
fix_on_fly = TRUE
)Arguments
- data
Data frame containing plot metadata to validate
- column_mappings
Named list mapping user columns to schema columns (from map_user_columns())
- config
Routing configuration from get_import_column_routing()
- con
Database connection (optional, will create if NULL)
- strict
Logical: If TRUE, warnings are treated as errors (default FALSE)
- interactive
Logical: If TRUE, allow interactive fixing of lookup mismatches (default TRUE)
- fix_on_fly
Logical: If TRUE, fix issues during validation (default TRUE)
Value
List with validation results:
- valid
Logical: TRUE if no errors (warnings allowed)
- errors
Data frame of error messages
- warnings
Data frame of warning messages (includes duplicate plot warnings)
- summary
Summary statistics
- original_data
Original input data (unchanged)
- cleaned_data
Data with interactive fixes applied (if any)
- changes_made
Data frame documenting what was changed
Examples
if (FALSE) { # \dontrun{
# Map columns first
config <- get_import_column_routing("plots")
mapping_result <- map_user_columns(my_data, config)
# Validate data with interactive fixing (default)
validation <- validate_plot_metadata(
data = my_data,
column_mappings = mapping_result$mappings,
config = config,
interactive = TRUE, # Allow interactive fixing
fix_on_fly = TRUE # Fix during validation
)
# Check results
print_validation_results(validation)
if (!validation$valid) {
stop("Data validation failed!")
}
# Use cleaned data for import
result <- import_plot_metadata(
data = validation$cleaned_data, # Use cleaned version!
column_mappings = mapping_result$mappings,
validation = validation,
config = config
)
} # }