Skip to contents

Add constraint to a restoration problem (restopt_problem()) object to forbid the creation to new patches. All restored areas must be connected to an existing habitat area.

Usage

add_no_new_patch_constraint(problem)

Arguments

problem

restopt_problem() Restoration problem object.

Value

An updated restoration problem (restopt_problem()) object.

Details

A patch is a spatially continuous set of habitat and restoration planning units. This constraints applies on the union of the set of planning units that are selected for restoration and the initial habitat patches, and forbids the creation of new patches. All areas selected for restoration must be connected to initially existing habitat areas. This constraint is particularly useful for fragmentation reduction scenarios, where most of the time it is desirable to extend and merge existing patches, instead of creating new ones. In such cases, it also reduces the combinatorial complexity by filtering areas that cannot be connected to existing patches.

Examples

if (FALSE) { # \dontrun{
# load data
habitat_data <- rast(
  system.file("extdata", "habitat_hi_res.tif", package = "restoptr")
)

# create problem
p <- restopt_problem(
    existing_habitat = habitat_data,
    aggregation_factor = 16,
    habitat_threshold = 0.7
  ) %>%
  add_restorable_constraint(
    min_restore = 10,
    max_restore = 100,
  ) %>%
  add_no_new_patch_constraint()

# plot preprocessed data
plot(rast(list(p$data$existing_habitat, p$data$restorable_habitat)), nc = 2)

# print problem
print(p)

# Solve problem
s <- solve(p)
# plot solution
plot(s)
} # }