Package: multiscape 1.4.4

multiscape: Multi-Action, Multi-Objective Spatial Planning

Provides a modular framework for exact multi-objective spatial planning using mixed-integer programming. The package supports the definition of planning problems through planning units, features, management actions, action effects, spatial relations, targets, constraints, and objective functions. It enables the optimisation of spatial planning portfolios under considerations such as boundary structure, connectivity, and fragmentation. Supported multi-objective methods include weighted-sum aggregation, epsilon-constraint, and the augmented epsilon-constraint method. Problems can be solved with several commercial and open-source optimisation solvers. Optional solver backends include the 'gurobi' R package, which is distributed with the Gurobi Optimizer installation <https://docs.gurobi.com/projects/optimizer/en/13.0/reference/r/setup.html>, and the 'rcbc' R package, available from GitHub at <https://github.com/dirkschumacher/rcbc>. For background on multi-objective optimisation methods, see Halffmann et al. (2022) <doi:10.1002/mcda.1780>; for the augmented epsilon-constraint method, see Mavrotas (2009) <doi:10.1016/j.amc.2009.03.037>.

Authors:José Salgado-Rojas [aut, cre], Matías Moreno-Faguett [aut], Victoria Madrid-Ayala [aut], Sara Pineda-Zapata [aut], Virgilio Hermoso [aut], Núria Aquilué [aut]

multiscape_1.4.4.tar.gz
multiscape_1.4.4.zip(r-4.7-x86_64)multiscape_1.4.4.zip(r-4.7-arm64)multiscape_1.4.4.zip(r-4.6-x86_64)multiscape_1.4.4.zip(r-4.6-arm64)multiscape_1.4.4.zip(r-4.5-x86_64)
multiscape_1.4.4.tgz(r-4.6-x86_64)multiscape_1.4.4.tgz(r-4.6-arm64)multiscape_1.4.4.tgz(r-4.5-x86_64)multiscape_1.4.4.tgz(r-4.5-arm64)
multiscape_1.4.4.tar.gz(r-4.7-arm64)multiscape_1.4.4.tar.gz(r-4.7-x86_64)multiscape_1.4.4.tar.gz(r-4.6-arm64)multiscape_1.4.4.tar.gz(r-4.6-x86_64)
manual.pdf |manual.html✨
DESCRIPTION |NEWS
card.svg |card.png
multiscape/json (API)

# Install 'multiscape' in R:
install.packages('multiscape', repos = c('https://josesalgr.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/josesalgr/multiscape/issues

Pkgdown/docs site:https://josesalgr.github.io

Uses libs:
  • c++– GNU Standard C++ Library v3
Datasets:

On CRAN:

Conda:

cpp

6.15 score 1 stars 19 scripts 468 downloads 86 exports 52 dependencies

Last updated from:00bc6c00d9. Checks:14 OK, 1 FAIL. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-arm64OK379
linux-devel-x86_64OK440
source / vignettesOK845
linux-release-arm64OK493
linux-release-x86_64OK605
macos-release-arm64OK262
macos-release-x86_64OK567
macos-oldrel-arm64OK307
macos-oldrel-x86_64OK618
windows-devel-arm64OK552
windows-devel-x86_64OK697
windows-release-arm64OK578
windows-release-x86_64OK777
windows-oldrel-x86_64OK603
wasm-releaseFAIL328

Exports:%>%add_action_setsadd_actionsadd_benefitsadd_constraint_action_cardinalityadd_constraint_action_excludesadd_constraint_action_requiresadd_constraint_action_togetheradd_constraint_areaadd_constraint_budgetadd_constraint_locked_actionsadd_constraint_locked_planning_unitsadd_constraint_locked_puadd_constraint_targets_absoluteadd_constraint_targets_relativeadd_effectsadd_lossesadd_objective_max_benefitadd_objective_max_effectadd_objective_max_net_profitadd_objective_max_profitadd_objective_min_costadd_objective_min_effectadd_objective_min_fragmentation_actionadd_objective_min_fragmentation_planning_unitsadd_objective_min_fragmentation_puadd_objective_min_intervention_impactadd_objective_min_lossadd_profitadd_spatial_boundaryadd_spatial_distanceadd_spatial_knnadd_spatial_queenadd_spatial_relationsadd_spatial_rookcompile_modelcreate_problemfrontier_distancesfrontier_extremesfrontier_kneefrontier_neighborsget_action_setsget_actionsget_featuresget_objectivesget_planning_unitsget_puget_runsget_solution_statesget_targetslinkage_contrastslinkage_distanceslinkage_transitionlinkage_turnoverload_ecosystem_servicesload_mesetaload_sim_features_rasterload_sim_multiactionmo_controlplot_spatial_actionsplot_spatial_featuresplot_spatial_planning_unitsplot_spatial_puplot_tradeoffProblemrun_gridrun_manualselection_consistencyselection_frequencyselection_similarityset_method_augmeconset_method_epsilon_constraintset_method_weighted_sumset_runs_controlset_runs_gridset_runs_manualset_solverset_solver_cbcset_solver_cplexset_solver_gurobiset_solver_symphonysolution_appendsolution_filtersolution_uniqueSolutionSetsolve

Dependencies:assertthatBHclassclassIntclicpp11DBIdplyre1071exactextractrfarvergenericsggplot2ggrepelgluegtableisobandKernSmoothlabelinglatticelifecyclemagrittrMatrixmatrixStatsmoocorepillarpkgconfigprotoproxyR6RANNrasterrbibutilsRColorBrewerRcppRcppArmadilloRdpackrlangs2S7scalessfspterratibbletidyselectunitsutf8vctrsviridisLitewithrwk

Multi-objective forest restoration planning in a highly productive landscape
Overview | Planning formulation | Landscape and ecosystem-service data | Define the restoration decision context | Build the planning problem | Express restoration effects as deficits | Register five restoration objectives | Generate alternatives with AUGMECON | Examine the many-objective solution set | Run design and objective values | Read the solution set as a sequence of decisions | How much deficit targeting accompanies additional cost? | Compare the complete performance profile of each plan | Identify extremes and representative compromises | Connect objective performance to spatial decisions | Compare decision-space similarity | Interpretation and limitations

Last update: 2026-10-12
Started: 2026-07-30

Planning with concurrent management actions
1. Start from one spatial landscape | 2. Name combinations with action sets | 3. Change the number of actions allowed in each unit | 4. Specify dependencies and compatibility | Directional requirements and alternatives | Exclusions and selection together | 5. Compare three spatial prescriptions | 6. Distinguish selecting a combination from describing its joint effect | 7. Practical rules and common pitfalls

Last update: 2026-10-11
Started: 2026-10-11

Joint effects and interactions between management actions
Preserve inputs and record assumptions | Exact activation and model size | Solve with all three MO methods | Negative interactions, net benefit, and final loss | Targets on joint outcomes

Last update: 2026-10-06
Started: 2026-10-06

Repeated calls and alternative problem configurations
Build a common base | Compare solver settings and MO methods | Accumulate independent constraints | Accumulate compatible locks

Last update: 2026-10-06
Started: 2026-10-06

From reserve selection to multi-objective conservation planning
Overview | The MaPP Rwanda training case | Define the reserve problem | Minimum cost and the boundary length modifier | Going beyond a fixed BLM | Compare representative reserve designs | Interpretation | References

Last update: 2026-10-01
Started: 2026-08-03

Choosing a multi-objective optimisation method
The decision comes before the method | Choosing a method | Preferences before or after optimisation | Quick choice | The methods | Weighted sum: state relative preferences | Decision question | Main idea | Use weighted sum when | Use caution when | Epsilon-constraint: state acceptable limits | Use epsilon-constraint when | AUGMECON: construct a cleaner efficient frontier | Use AUGMECON when | A practical workflow | 1. Establish objective ranges | 2. Decide how preferences can be expressed | 3. Start coarse | 4. Inspect both objective values and spatial plans | 5. Document the decision process | Mathematical background | A common mathematical view | Pareto efficiency | What does lexicographic = TRUE mean? | Summary

Last update: 2026-08-13
Started: 2026-07-30

Readme and manuals

Help Manual

Help pageTopics
Register sets of management actionsadd_action_sets
Add management actions to a planning problemadd_actions
Add benefitsadd_benefits
Constrain the number of actions selected per planning unitadd_constraint_action_cardinality
Make actions mutually exclusive within each planning unitadd_constraint_action_excludes
Require companion actions in each planning unitadd_constraint_action_requires
Select actions together within each planning unitadd_constraint_action_together
Add area constraintadd_constraint_area
Add budget constraintadd_constraint_budget
Add locked action decisions to a planning problemadd_constraint_locked_actions
Add locked planning units to a problemadd_constraint_locked_planning_units
Add locked planning units to a problemadd_constraint_locked_pu
Add absolute targetsadd_constraint_targets_absolute
Add relative targetsadd_constraint_targets_relative
Add action effects to a planning problemadd_effects
Add lossesadd_losses
Deprecated benefit objectiveadd_objective_max_benefit
Add objective: maximize signed effectadd_objective_max_effect
Add objective: maximize net profitadd_objective_max_net_profit
Add objective: maximize profitadd_objective_max_profit
Add objective: minimize costadd_objective_min_cost
Add objective: minimise signed effectadd_objective_min_effect
Add objective: minimise action fragmentationadd_objective_min_fragmentation_action
Add objective: minimise planning-unit fragmentationadd_objective_min_fragmentation_planning_units
Add objective: minimize planning-unit fragmentationadd_objective_min_fragmentation_pu
Add objective: minimize intervention impactadd_objective_min_intervention_impact
Deprecated objective: minimize lossadd_objective_min_loss
Add profit to a planning problemadd_profit
Add spatial boundary-length relationsadd_spatial_boundary
Add distance-threshold spatial relationsadd_spatial_distance
Add k-nearest-neighbours spatial relationsadd_spatial_knn
Add queen adjacency from polygonsadd_spatial_queen
Add spatial relationsadd_spatial_relations
Add rook adjacency from polygonsadd_spatial_rook
Compile the optimization model stored in a Problemcompile_model compile_model.Problem
Create a planning problem input objectcreate_problem create_problem,ANY,ANY,missing-method create_problem,ANY,ANY,NULL-method create_problem,ANY,data.frame,data.frame-method create_problem,data.frame,data.frame,data.frame-method
Compute distances to observed ideal or nadir pointsfrontier_distances
Find objective-wise extreme solutionsfrontier_extremes
Identify knee solutions on an observed Pareto frontierfrontier_knee
Identify neighboring solutions in objective spacefrontier_neighbors
Inspect registered action setsget_action_sets
Get action results from a solution setget_actions
Get feature summary from a solution setget_features
Get objective values from a solution setget_objectives
Get planning-unit results from a solution setget_planning_units
Get planning-unit results from a solution setget_pu
Get run-level metadata from a solution setget_runs
Get planning-unit states from stored solutionsget_solution_states
Get target achievement summary from a solution setget_targets
Select informative solution contrastslinkage_contrasts
Compare objective and decision distanceslinkage_distances
Describe the transition between two solutionslinkage_transition
Measure decision turnover along an objective-space neighborhoodlinkage_turnover
Load the ecosystem-services spatial exampleload_ecosystem_services
Load the Meseta Iberica spatial action exampleload_meseta
Example feature rasterload_sim_features_raster
Load the simulated spatial multi-action exampleload_sim_multiaction
Control multi-objective run behaviormo_control
Plot selected actions in spaceplot_spatial_actions
Plot spatial feature values from a solution setplot_spatial_features
Plot selected planning units in spaceplot_spatial_planning_units
Plot selected planning units in spaceplot_spatial_pu
Plot trade-offs from a solution setplot_tradeoff
Problem classProblem problem-class
Define an automatic multi-objective run gridrun_grid
Define a manual multi-objective run designrun_manual
Summarize consistency of planning-unit statesselection_consistency
Calculate selection frequency across solutionsselection_frequency
Calculate structural similarity among solutionsselection_similarity
Configure the augmented epsilon-constraint method (AUGMECON)set_method_augmecon
Configure the epsilon-constraint multi-objective methodset_method_epsilon_constraint
Configure the weighted-sum multi-objective methodset_method_weighted_sum
Control multi-objective run behaviorset_runs_control
Define an automatic multi-objective run gridset_runs_grid
Define a manual multi-objective run designset_runs_manual
Configure solver settingsset_solver
Configure CBC solver settingsset_solver_cbc
Configure CPLEX solver settingsset_solver_cplex
Configure Gurobi solver settingsset_solver_gurobi
Configure SYMPHONY solver settingsset_solver_symphony
Simulated feature distributionsim_dist_features
Simulated featuressim_features
Simulated spatial multi-action planning inputssim_multiaction
Simulated planning unitssim_pu
Simulated planning unitssim_pu_sf
Append solutions from another solution setsolution_append
Filter solutions in a solution setsolution_filter
Keep unique solutions in a solution setsolution_unique
SolutionSet classSolutionSet solutionset-class
Solve a planning problemsolve solve.Problem