ff_run: using the Forest Foresight package for training and predicting
Forest Foresight has developed the ForestForesight package in R, which contains a few distinct functions, some helper functions and a main function called ff_run. This page will discuss the ff_run function. The other subpages will concern themselves with the underlying functions, particularly:
ff_prep
ff_dqc
ff_train
ff_predict
ff_analyze
ff_polygonize
ff_accuracyreport
ff_importance
ff_structurecheck
For all the functionalities of every function please go to the manual in R to get the latest info, or type help({name of function}) directly in the Rstudio terminal to get the help of every function.
Exercise
In this exercise, you'll use the ff_run
function to predict deforestation in Peru. You'll create training data, validation data, train a model, make predictions, and analyze the results.
library(ForestForesight)
# Step 1: Set up the parameters
ff_folder <- "/path/to/your/forestforesight/data"
country_code <- "PER"
train_start <- "2023-06-01"
train_end <- "2023-12-31"
validation_start <- "2023-06-01"
validation_end <- "2023-12-01"
prediction_date <- "2024-01-01"
# Step 2: Create date ranges for training and validation
train_dates <- ForestForesight::daterange(train_start, train_end)
validation_dates <- ForestForesight::daterange(validation_start, validation_end)
# Step 3: Set up file paths for saving results
model_save_path <- "/path/to/save/peru_deforestation_model.model"
predictions_save_path <- "/path/to/save/peru_deforestation_prediction.tif"
accuracy_csv_path <- "/path/to/save/peru_deforestation_accuracy.csv"
importance_csv_path <- "/path/to/save/peru_feature_importance.csv"
# Step 4: Run the ff_run function
prediction_result <- ff_run(
country = country_code,
prediction_dates = prediction_date,
ff_folder = ff_folder,
train_dates = train_dates,
validation_dates = validation_dates,
save_path = model_save_path,
save_path_predictions = predictions_save_path,
accuracy_csv = accuracy_csv_path,
importance_csv = importance_csv_path,
verbose = TRUE,
autoscale_sample = TRUE
)
# Step 5: Plot the prediction result
if (!is.na(prediction_result)) {
plot(prediction_result, main = "Deforestation Prediction for Peru")
}
# Step 6: Print a summary of the results
cat("Prediction completed. Results saved to disk:\n")
cat("Model:", model_save_path, "\n")
cat("Prediction raster:", predictions_save_path, "\n")
cat("Accuracy CSV:", accuracy_csv_path, "\n")
cat("Feature importance CSV:", importance_csv_path, "\n")
# Optional: Load and print the first few lines of the accuracy CSV
if (file.exists(accuracy_csv_path)) {
accuracy_data <- read.csv(accuracy_csv_path)
cat("\nFirst few lines of accuracy data:\n")
print(head(accuracy_data))
}
This exercise does the following:
Sets up the necessary parameters, including date ranges for training and validation.
Specifies file paths for saving the model, predictions, accuracy metrics, and feature importance.
Calls the
ff_run
function with the specified parameters.Plots the prediction result if available.
Prints a summary of where the results are saved.
Optionally loads and displays the first few lines of the accuracy CSV file.
To complete this exercise:
Make sure you have the ForestForesight package and its dependencies installed.
Replace the
/path/to/your/forestforesight/data
with the actual path to your ForestForesight data folder.Adjust the file paths for saving results as needed.
Run the script and observe the output, including the plot and the saved files.
Review the contents of the saved CSV files to understand the accuracy metrics and feature importance.
Â