{
  "_id": "6adf62d94d02104fb3ebf813",
  "Package": "multiscape",
  "Type": "Package",
  "Version": "1.4.4",
  "Title": "Multi-Action, Multi-Objective Spatial Planning",
  "Description": "Provides a modular framework for exact multi-objective\nspatial planning using mixed-integer programming. The package\nsupports the definition of planning problems through planning\nunits, features, management actions, action effects, spatial\nrelations, targets, constraints, and objective functions. It\nenables the optimisation of spatial planning portfolios under\nconsiderations such as boundary structure, connectivity, and\nfragmentation. Supported multi-objective methods include\nweighted-sum aggregation, epsilon-constraint, and the augmented\nepsilon-constraint method. Problems can be solved with several\ncommercial and open-source optimisation solvers. Optional\nsolver backends include the 'gurobi' R package, which is\ndistributed with the Gurobi Optimizer installation\n<https://docs.gurobi.com/projects/optimizer/en/13.0/reference/r/setup.html>,\nand the 'rcbc' R package, available from GitHub at\n<https://github.com/dirkschumacher/rcbc>. For background on\nmulti-objective optimisation methods, see Halffmann et al.\n(2022) <doi:10.1002/mcda.1780>; for the augmented\nepsilon-constraint method, see Mavrotas (2009)\n<doi:10.1016/j.amc.2009.03.037>.",
  "Authors@R": "c(\nperson('José', 'Salgado-Rojas',\nemail='jose.salgroj@gmail.com',\nrole = c('aut','cre'),\ncomment = c(ORCID = \"0000-0001-9817-2625\")\n),\nperson('Matías', 'Moreno-Faguett',\nemail='matias.moreno.faguett@gmail.com',\nrole = c('aut'),\ncomment = c(ORCID = \"0009-0003-6561-234X\")\n),\nperson('Victoria', 'Madrid-Ayala',\nemail='victoria.madrid@ctfc.cat',\nrole = c('aut'),\ncomment = c(ORCID = \"0009-0008-5678-3418\")\n),\nperson('Sara', 'Pineda-Zapata',\nemail='sara.pineda.zapata@uef.fi',\nrole = c('aut'),\ncomment = c(ORCID = \"0009-0006-8014-0098\")\n),\nperson('Virgilio', 'Hermoso',\nemail='virgilio.hermosoa@gmail.com',\nrole = c('aut'),\ncomment = c(ORCID = \"0000-0003-3205-5033\")\n),\nperson('Núria', 'Aquilué',\nemail='nuria.aquilue@ctfc.cat',\nrole = c('aut'),\ncomment = c(ORCID = \"0000-0001-7911-3144\")\n))",
  "Encoding": "UTF-8",
  "LazyData": "true",
  "License": "GPL (>= 3)",
  "Language": "en-US",
  "RoxygenNote": "7.3.3",
  "URL": "https://josesalgr.github.io/multiscape/",
  "BugReports": "https://github.com/josesalgr/multiscape/issues",
  "Collate": "'RcppExports.R' 'internal.R' 'add_action_max_per_pu.R'\n'add_action_sets.R' 'add_actions.R'\n'add_constraint_action_cardinality.R'\n'add_constraint_action_relations.R' 'add_constraint_area.R'\n'add_constraint_budget.R' 'add_constraint_locked_actions.R'\n'add_constraint_locked_planning_units.R'\n'add_constraint_targets.R' 'add_effects.R' 'add_objectives.R'\n'add_profit.R' 'add_spatial_relations.R' 'internalMO.R'\n'analysis_frontier.R' 'analysis_get.R' 'analysis_linkage.R'\n'analysis_selection.R' 'analysis_solution.R' 'build_model.R'\n'compile_model.R' 'create_problem.R' 'data-sim.R' 'globals.R'\n'joint_effects.R' 'load_sim.R' 'numeric_conditioning.R'\n'package.R' 'plot.R' 'print.R' 'problem-class.R'\n'set_method_augmecon.R' 'set_method_epsilon_constraint.R'\n'set_method_weighted_sum.R' 'set_run_design.R' 'set_solver.R'\n'solutionset-class.R' 'solution-class.R' 'show.R' 'solve.R'\n'utils-pipe.R' 'zzz.R'",
  "Roxygen": "list(markdown = TRUE)",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr, rmarkdown",
  "Config/pak/sysreqs": "libabsl-dev cmake libgdal-dev gdal-bin libgeos-dev\nmake libssl-dev libproj-dev libsqlite3-dev libudunits2-dev",
  "Repository": "https://josesalgr.r-universe.dev",
  "Date/Publication": "2026-10-26 12:03:20 UTC",
  "RemoteUrl": "https://github.com/josesalgr/multiscape",
  "RemoteRef": "HEAD",
  "RemoteSha": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-26 13:48:12 UTC",
    "User": "root"
  },
  "Author": "José Salgado-Rojas [aut, cre] (ORCID:\n<https://orcid.org/0000-0001-9817-2625>),\nMatías Moreno-Faguett [aut] (ORCID:\n<https://orcid.org/0009-0003-6561-234X>),\nVictoria Madrid-Ayala [aut] (ORCID:\n<https://orcid.org/0009-0008-5678-3418>),\nSara Pineda-Zapata [aut] (ORCID:\n<https://orcid.org/0009-0006-8014-0098>),\nVirgilio Hermoso [aut] (ORCID: <https://orcid.org/0000-0003-3205-5033>),\nNúria Aquilué [aut] (ORCID: <https://orcid.org/0000-0001-7911-3144>)",
  "Maintainer": "José Salgado-Rojas <jose.salgroj@gmail.com>",
  "_user": "josesalgr",
  "_type": "src",
  "_file": "multiscape_1.4.4.tar.gz",
  "_fileid": "https://r2.ropensci.org/cc0564f3096fade20e999686a1f1964d31f67d8898e80a8c65a07f71c2db0fc6",
  "_filesize": 10149689,
  "_sha256": "cc0564f3096fade20e999686a1f1964d31f67d8898e80a8c65a07f71c2db0fc6",
  "_expires": "2027-02-03T14:25:26.000Z",
  "_created": "2026-10-26T13:48:12.000Z",
  "_published": "2026-10-26T14:25:29.242Z",
  "_upstream": "https://github.com/josesalgr/multiscape",
  "_status": "success",
  "_maintainer": {
    "name": "José Salgado-Rojas",
    "email": "jose.salgroj@gmail.com",
    "login": "josesalgr",
    "description": "Conservation scientist",
    "uuid": 40737499,
    "orcid": "0000-0001-9817-2625"
  },
  "_jobs": [
    {
      "job": 121611758273,
      "time": 379,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12656093093"
    },
    {
      "job": 121611758271,
      "time": 440,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12656158234"
    },
    {
      "job": 121611758250,
      "time": 493,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12656422777"
    },
    {
      "job": 121611758093,
      "time": 605,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12656647918"
    },
    {
      "job": 121611758351,
      "time": 307,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12657193800"
    },
    {
      "job": 121611758442,
      "time": 618,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12658446984"
    },
    {
      "job": 121611758465,
      "time": 262,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12657382769"
    },
    {
      "job": 121611758454,
      "time": 567,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12658157661"
    },
    {
      "job": 121604387797,
      "time": 845,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12656995832"
    },
    {
      "job": 121611758033,
      "time": 328,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "FAIL",
      "artifact": ""
    },
    {
      "job": 121611758305,
      "time": 552,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12656837121"
    },
    {
      "job": 121611758401,
      "time": 697,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12655644149"
    },
    {
      "job": 121611758477,
      "time": 603,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12656522910"
    },
    {
      "job": 121611758890,
      "time": 578,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12657061949"
    },
    {
      "job": 121611758353,
      "time": 777,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12656997985"
    }
  ],
  "_buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601",
  "_commit": {
    "id": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
    "author": "Salgado Rojas <Y6026159N@gencat.cat>",
    "committer": "Salgado Rojas <Y6026159N@gencat.cat>",
    "message": "New version 1.4.4 with numerical fixes\n",
    "time": 1793016200
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "RcppArmadillo",
      "version": ">= 0.10.1.0.0",
      "role": "LinkingTo"
    },
    {
      "package": "BH",
      "role": "LinkingTo"
    },
    {
      "package": "assertthat",
      "version": ">= 0.2.0",
      "role": "Imports"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "proto",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "Rcpp",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "sf",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "RANN",
      "role": "Imports"
    },
    {
      "package": "exactextractr",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "terra",
      "role": "Imports"
    },
    {
      "package": "ggrepel",
      "role": "Imports"
    },
    {
      "package": "lifecycle",
      "role": "Imports"
    },
    {
      "package": "moocore",
      "role": "Imports"
    },
    {
      "package": "roxygen2",
      "role": "Suggests"
    },
    {
      "package": "prioritizr",
      "role": "Suggests"
    },
    {
      "package": "Rsymphony",
      "version": ">= 0.1-31",
      "role": "Suggests"
    },
    {
      "package": "Rcplex",
      "role": "Suggests"
    },
    {
      "package": "slam",
      "role": "Suggests"
    },
    {
      "package": "rlang",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "raster",
      "role": "Suggests"
    },
    {
      "package": "tmap",
      "role": "Suggests"
    },
    {
      "package": "sp",
      "role": "Suggests"
    },
    {
      "package": "viridis",
      "role": "Suggests"
    },
    {
      "package": "markdown",
      "role": "Suggests"
    },
    {
      "package": "data.table",
      "role": "Suggests"
    },
    {
      "package": "purrr",
      "role": "Suggests"
    },
    {
      "package": "readr",
      "role": "Suggests"
    },
    {
      "package": "tibble",
      "role": "Suggests"
    },
    {
      "package": "reshape2",
      "role": "Suggests"
    },
    {
      "package": "rcbc",
      "role": "Suggests"
    },
    {
      "package": "gurobi",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "josesalgr",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-52",
      "n": 1
    },
    {
      "week": "2026-05",
      "n": 3
    },
    {
      "week": "2026-06",
      "n": 17
    },
    {
      "week": "2026-07",
      "n": 14
    },
    {
      "week": "2026-08",
      "n": 2
    },
    {
      "week": "2026-11",
      "n": 9
    },
    {
      "week": "2026-12",
      "n": 4
    },
    {
      "week": "2026-13",
      "n": 21
    },
    {
      "week": "2026-14",
      "n": 18
    },
    {
      "week": "2026-15",
      "n": 23
    },
    {
      "week": "2026-16",
      "n": 1
    },
    {
      "week": "2026-17",
      "n": 8
    },
    {
      "week": "2026-18",
      "n": 1
    },
    {
      "week": "2026-20",
      "n": 1
    },
    {
      "week": "2026-23",
      "n": 12
    },
    {
      "week": "2026-24",
      "n": 3
    },
    {
      "week": "2026-27",
      "n": 10
    },
    {
      "week": "2026-31",
      "n": 10
    },
    {
      "week": "2026-32",
      "n": 1
    },
    {
      "week": "2026-33",
      "n": 2
    },
    {
      "week": "2026-40",
      "n": 1
    },
    {
      "week": "2026-41",
      "n": 7
    },
    {
      "week": "2026-42",
      "n": 8
    },
    {
      "week": "2026-43",
      "n": 2
    },
    {
      "week": "2026-44",
      "n": 1
    }
  ],
  "_tags": [],
  "_stars": 1,
  "_contributors": [
    {
      "user": "josesalgr",
      "count": 6,
      "uuid": 40737499
    }
  ],
  "_userbio": {
    "uuid": 40737499,
    "type": "user",
    "name": "José Salgado-Rojas",
    "followers": 10,
    "description": "Conservation scientist"
  },
  "_downloads": {
    "count": 468,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/multiscape"
  },
  "_devurl": "https://github.com/josesalgr/multiscape",
  "_pkgdown": "https://josesalgr.github.io/multiscape/",
  "_searchresults": 19,
  "_topics": [
    "cpp"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/multiscape.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_homeurl": "https://github.com/josesalgr/multiscape",
  "_realowner": "josesalgr",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.0.6",
      "date": "2026-04-28"
    },
    {
      "version": "1.0.7",
      "date": "2026-04-30"
    },
    {
      "version": "1.4.2",
      "date": "2026-10-12"
    }
  ],
  "_exports": [
    "%>%",
    "add_action_sets",
    "add_actions",
    "add_benefits",
    "add_constraint_action_cardinality",
    "add_constraint_action_excludes",
    "add_constraint_action_requires",
    "add_constraint_action_together",
    "add_constraint_area",
    "add_constraint_budget",
    "add_constraint_locked_actions",
    "add_constraint_locked_planning_units",
    "add_constraint_locked_pu",
    "add_constraint_targets_absolute",
    "add_constraint_targets_relative",
    "add_effects",
    "add_losses",
    "add_objective_max_benefit",
    "add_objective_max_effect",
    "add_objective_max_net_profit",
    "add_objective_max_profit",
    "add_objective_min_cost",
    "add_objective_min_effect",
    "add_objective_min_fragmentation_action",
    "add_objective_min_fragmentation_planning_units",
    "add_objective_min_fragmentation_pu",
    "add_objective_min_intervention_impact",
    "add_objective_min_loss",
    "add_profit",
    "add_spatial_boundary",
    "add_spatial_distance",
    "add_spatial_knn",
    "add_spatial_queen",
    "add_spatial_relations",
    "add_spatial_rook",
    "compile_model",
    "create_problem",
    "frontier_distances",
    "frontier_extremes",
    "frontier_knee",
    "frontier_neighbors",
    "get_action_sets",
    "get_actions",
    "get_features",
    "get_objectives",
    "get_planning_units",
    "get_pu",
    "get_runs",
    "get_solution_states",
    "get_targets",
    "linkage_contrasts",
    "linkage_distances",
    "linkage_transition",
    "linkage_turnover",
    "load_ecosystem_services",
    "load_meseta",
    "load_sim_features_raster",
    "load_sim_multiaction",
    "mo_control",
    "plot_spatial_actions",
    "plot_spatial_features",
    "plot_spatial_planning_units",
    "plot_spatial_pu",
    "plot_tradeoff",
    "Problem",
    "run_grid",
    "run_manual",
    "selection_consistency",
    "selection_frequency",
    "selection_similarity",
    "set_method_augmecon",
    "set_method_epsilon_constraint",
    "set_method_weighted_sum",
    "set_runs_control",
    "set_runs_grid",
    "set_runs_manual",
    "set_solver",
    "set_solver_cbc",
    "set_solver_cplex",
    "set_solver_gurobi",
    "set_solver_symphony",
    "solution_append",
    "solution_filter",
    "solution_unique",
    "SolutionSet",
    "solve"
  ],
  "_datasets": [
    {
      "name": "sim_dist_features",
      "title": "Simulated feature distribution",
      "object": "sim_dist_features",
      "class": [
        "data.frame"
      ],
      "fields": [
        "pu",
        "feature",
        "amount"
      ],
      "rows": 348021,
      "table": true,
      "tojson": true
    },
    {
      "name": "sim_features",
      "title": "Simulated features",
      "object": "sim_features",
      "class": [
        "data.frame"
      ],
      "fields": [
        "id",
        "name"
      ],
      "rows": 155,
      "table": true,
      "tojson": true
    },
    {
      "name": "sim_multiaction",
      "title": "Simulated spatial multi-action planning inputs",
      "object": "sim_multiaction",
      "class": [
        "list"
      ],
      "fields": [],
      "table": false,
      "tojson": true
    },
    {
      "name": "sim_pu",
      "title": "Simulated planning units",
      "object": "sim_pu",
      "class": [
        "sf",
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "id",
        "cost",
        "geometry"
      ],
      "rows": 11109,
      "table": false,
      "tojson": true
    },
    {
      "name": "sim_pu_sf",
      "title": "Simulated planning units",
      "object": "sim_pu_sf",
      "class": [
        "sf",
        "data.frame"
      ],
      "fields": [
        "id",
        "cost",
        "locked_in",
        "locked_out",
        "area",
        "geometry"
      ],
      "rows": 30496,
      "table": false,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "add_action_sets",
      "title": "Register sets of management actions",
      "topics": [
        "add_action_sets"
      ]
    },
    {
      "page": "add_actions",
      "title": "Add management actions to a planning problem",
      "topics": [
        "add_actions"
      ]
    },
    {
      "page": "add_benefits",
      "title": "Add benefits",
      "topics": [
        "add_benefits"
      ]
    },
    {
      "page": "add_constraint_action_cardinality",
      "title": "Constrain the number of actions selected per planning unit",
      "topics": [
        "add_constraint_action_cardinality"
      ]
    },
    {
      "page": "add_constraint_action_excludes",
      "title": "Make actions mutually exclusive within each planning unit",
      "topics": [
        "add_constraint_action_excludes"
      ]
    },
    {
      "page": "add_constraint_action_requires",
      "title": "Require companion actions in each planning unit",
      "topics": [
        "add_constraint_action_requires"
      ]
    },
    {
      "page": "add_constraint_action_together",
      "title": "Select actions together within each planning unit",
      "topics": [
        "add_constraint_action_together"
      ]
    },
    {
      "page": "add_constraint_area",
      "title": "Add area constraint",
      "topics": [
        "add_constraint_area"
      ]
    },
    {
      "page": "add_constraint_budget",
      "title": "Add budget constraint",
      "topics": [
        "add_constraint_budget"
      ]
    },
    {
      "page": "add_constraint_locked_actions",
      "title": "Add locked action decisions to a planning problem",
      "topics": [
        "add_constraint_locked_actions"
      ]
    },
    {
      "page": "add_constraint_locked_planning_units",
      "title": "Add locked planning units to a problem",
      "topics": [
        "add_constraint_locked_planning_units"
      ]
    },
    {
      "page": "add_constraint_locked_pu",
      "title": "Add locked planning units to a problem",
      "topics": [
        "add_constraint_locked_pu"
      ]
    },
    {
      "page": "add_constraint_targets_absolute",
      "title": "Add absolute targets",
      "topics": [
        "add_constraint_targets_absolute"
      ]
    },
    {
      "page": "add_constraint_targets_relative",
      "title": "Add relative targets",
      "topics": [
        "add_constraint_targets_relative"
      ]
    },
    {
      "page": "add_effects",
      "title": "Add action effects to a planning problem",
      "topics": [
        "add_effects"
      ]
    },
    {
      "page": "add_losses",
      "title": "Add losses",
      "topics": [
        "add_losses"
      ]
    },
    {
      "page": "add_objective_max_benefit",
      "title": "Deprecated benefit objective",
      "topics": [
        "add_objective_max_benefit"
      ]
    },
    {
      "page": "add_objective_max_effect",
      "title": "Add objective: maximize signed effect",
      "topics": [
        "add_objective_max_effect"
      ]
    },
    {
      "page": "add_objective_max_net_profit",
      "title": "Add objective: maximize net profit",
      "topics": [
        "add_objective_max_net_profit"
      ]
    },
    {
      "page": "add_objective_max_profit",
      "title": "Add objective: maximize profit",
      "topics": [
        "add_objective_max_profit"
      ]
    },
    {
      "page": "add_objective_min_cost",
      "title": "Add objective: minimize cost",
      "topics": [
        "add_objective_min_cost"
      ]
    },
    {
      "page": "add_objective_min_effect",
      "title": "Add objective: minimise signed effect",
      "topics": [
        "add_objective_min_effect"
      ]
    },
    {
      "page": "add_objective_min_fragmentation_action",
      "title": "Add objective: minimise action fragmentation",
      "topics": [
        "add_objective_min_fragmentation_action"
      ]
    },
    {
      "page": "add_objective_min_fragmentation_planning_units",
      "title": "Add objective: minimise planning-unit fragmentation",
      "topics": [
        "add_objective_min_fragmentation_planning_units"
      ]
    },
    {
      "page": "add_objective_min_fragmentation_pu",
      "title": "Add objective: minimize planning-unit fragmentation",
      "topics": [
        "add_objective_min_fragmentation_pu"
      ]
    },
    {
      "page": "add_objective_min_intervention_impact",
      "title": "Add objective: minimize intervention impact",
      "topics": [
        "add_objective_min_intervention_impact"
      ]
    },
    {
      "page": "add_objective_min_loss",
      "title": "Deprecated objective: minimize loss",
      "topics": [
        "add_objective_min_loss"
      ]
    },
    {
      "page": "add_profit",
      "title": "Add profit to a planning problem",
      "topics": [
        "add_profit"
      ]
    },
    {
      "page": "add_spatial_boundary",
      "title": "Add spatial boundary-length relations",
      "topics": [
        "add_spatial_boundary"
      ]
    },
    {
      "page": "add_spatial_distance",
      "title": "Add distance-threshold spatial relations",
      "topics": [
        "add_spatial_distance"
      ]
    },
    {
      "page": "add_spatial_knn",
      "title": "Add k-nearest-neighbours spatial relations",
      "topics": [
        "add_spatial_knn"
      ]
    },
    {
      "page": "add_spatial_queen",
      "title": "Add queen adjacency from polygons",
      "topics": [
        "add_spatial_queen"
      ]
    },
    {
      "page": "add_spatial_relations",
      "title": "Add spatial relations",
      "topics": [
        "add_spatial_relations"
      ]
    },
    {
      "page": "add_spatial_rook",
      "title": "Add rook adjacency from polygons",
      "topics": [
        "add_spatial_rook"
      ]
    },
    {
      "page": "compile_model",
      "title": "Compile the optimization model stored in a Problem",
      "topics": [
        "compile_model",
        "compile_model.Problem"
      ]
    },
    {
      "page": "create_problem",
      "title": "Create a planning problem input object",
      "topics": [
        "create_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"
      ]
    },
    {
      "page": "frontier_distances",
      "title": "Compute distances to observed ideal or nadir points",
      "topics": [
        "frontier_distances"
      ]
    },
    {
      "page": "frontier_extremes",
      "title": "Find objective-wise extreme solutions",
      "topics": [
        "frontier_extremes"
      ]
    },
    {
      "page": "frontier_knee",
      "title": "Identify knee solutions on an observed Pareto frontier",
      "topics": [
        "frontier_knee"
      ]
    },
    {
      "page": "frontier_neighbors",
      "title": "Identify neighboring solutions in objective space",
      "concept": [
        "Objective-space analysis"
      ],
      "topics": [
        "frontier_neighbors"
      ]
    },
    {
      "page": "get_action_sets",
      "title": "Inspect registered action sets",
      "topics": [
        "get_action_sets"
      ]
    },
    {
      "page": "get_actions",
      "title": "Get action results from a solution set",
      "topics": [
        "get_actions"
      ]
    },
    {
      "page": "get_features",
      "title": "Get feature summary from a solution set",
      "topics": [
        "get_features"
      ]
    },
    {
      "page": "get_objectives",
      "title": "Get objective values from a solution set",
      "topics": [
        "get_objectives"
      ]
    },
    {
      "page": "get_planning_units",
      "title": "Get planning-unit results from a solution set",
      "topics": [
        "get_planning_units"
      ]
    },
    {
      "page": "get_pu",
      "title": "Get planning-unit results from a solution set",
      "topics": [
        "get_pu"
      ]
    },
    {
      "page": "get_runs",
      "title": "Get run-level metadata from a solution set",
      "topics": [
        "get_runs"
      ]
    },
    {
      "page": "get_solution_states",
      "title": "Get planning-unit states from stored solutions",
      "concept": [
        "SolutionSet inspection"
      ],
      "topics": [
        "get_solution_states"
      ]
    },
    {
      "page": "get_targets",
      "title": "Get target achievement summary from a solution set",
      "topics": [
        "get_targets"
      ]
    },
    {
      "page": "linkage_contrasts",
      "title": "Select informative solution contrasts",
      "concept": [
        "Objective--decision linkage"
      ],
      "topics": [
        "linkage_contrasts"
      ]
    },
    {
      "page": "linkage_distances",
      "title": "Compare objective and decision distances",
      "concept": [
        "Objective--decision linkage"
      ],
      "topics": [
        "linkage_distances"
      ]
    },
    {
      "page": "linkage_transition",
      "title": "Describe the transition between two solutions",
      "concept": [
        "Objective--decision linkage"
      ],
      "topics": [
        "linkage_transition"
      ]
    },
    {
      "page": "linkage_turnover",
      "title": "Measure decision turnover along an objective-space neighborhood",
      "concept": [
        "Objective--decision linkage"
      ],
      "topics": [
        "linkage_turnover"
      ]
    },
    {
      "page": "load_ecosystem_services",
      "title": "Load the ecosystem-services spatial example",
      "topics": [
        "load_ecosystem_services"
      ]
    },
    {
      "page": "load_meseta",
      "title": "Load the Meseta Iberica spatial action example",
      "topics": [
        "load_meseta"
      ]
    },
    {
      "page": "load_sim_features_raster",
      "title": "Example feature raster",
      "topics": [
        "load_sim_features_raster"
      ]
    },
    {
      "page": "load_sim_multiaction",
      "title": "Load the simulated spatial multi-action example",
      "topics": [
        "load_sim_multiaction"
      ]
    },
    {
      "page": "mo_control",
      "title": "Control multi-objective run behavior",
      "topics": [
        "mo_control"
      ]
    },
    {
      "page": "plot_spatial_actions",
      "title": "Plot selected actions in space",
      "topics": [
        "plot_spatial_actions"
      ]
    },
    {
      "page": "plot_spatial_features",
      "title": "Plot spatial feature values from a solution set",
      "topics": [
        "plot_spatial_features"
      ]
    },
    {
      "page": "plot_spatial_planning_units",
      "title": "Plot selected planning units in space",
      "topics": [
        "plot_spatial_planning_units"
      ]
    },
    {
      "page": "plot_spatial_pu",
      "title": "Plot selected planning units in space",
      "topics": [
        "plot_spatial_pu"
      ]
    },
    {
      "page": "plot_tradeoff",
      "title": "Plot trade-offs from a solution set",
      "topics": [
        "plot_tradeoff"
      ]
    },
    {
      "page": "problem-class",
      "title": "Problem class",
      "topics": [
        "Problem",
        "problem-class"
      ]
    },
    {
      "page": "run_grid",
      "title": "Define an automatic multi-objective run grid",
      "topics": [
        "run_grid"
      ]
    },
    {
      "page": "run_manual",
      "title": "Define a manual multi-objective run design",
      "topics": [
        "run_manual"
      ]
    },
    {
      "page": "selection_consistency",
      "title": "Summarize consistency of planning-unit states",
      "concept": [
        "Decision-space analysis"
      ],
      "topics": [
        "selection_consistency"
      ]
    },
    {
      "page": "selection_frequency",
      "title": "Calculate selection frequency across solutions",
      "topics": [
        "selection_frequency"
      ]
    },
    {
      "page": "selection_similarity",
      "title": "Calculate structural similarity among solutions",
      "topics": [
        "selection_similarity"
      ]
    },
    {
      "page": "set_method_augmecon",
      "title": "Configure the augmented epsilon-constraint method (AUGMECON)",
      "topics": [
        "set_method_augmecon"
      ]
    },
    {
      "page": "set_method_epsilon_constraint",
      "title": "Configure the epsilon-constraint multi-objective method",
      "topics": [
        "set_method_epsilon_constraint"
      ]
    },
    {
      "page": "set_method_weighted_sum",
      "title": "Configure the weighted-sum multi-objective method",
      "topics": [
        "set_method_weighted_sum"
      ]
    },
    {
      "page": "set_runs_control",
      "title": "Control multi-objective run behavior",
      "topics": [
        "set_runs_control"
      ]
    },
    {
      "page": "set_runs_grid",
      "title": "Define an automatic multi-objective run grid",
      "topics": [
        "set_runs_grid"
      ]
    },
    {
      "page": "set_runs_manual",
      "title": "Define a manual multi-objective run design",
      "topics": [
        "set_runs_manual"
      ]
    },
    {
      "page": "set_solver",
      "title": "Configure solver settings",
      "topics": [
        "set_solver"
      ]
    },
    {
      "page": "set_solver_cbc",
      "title": "Configure CBC solver settings",
      "topics": [
        "set_solver_cbc"
      ]
    },
    {
      "page": "set_solver_cplex",
      "title": "Configure CPLEX solver settings",
      "topics": [
        "set_solver_cplex"
      ]
    },
    {
      "page": "set_solver_gurobi",
      "title": "Configure Gurobi solver settings",
      "topics": [
        "set_solver_gurobi"
      ]
    },
    {
      "page": "set_solver_symphony",
      "title": "Configure SYMPHONY solver settings",
      "topics": [
        "set_solver_symphony"
      ]
    },
    {
      "page": "sim_dist_features",
      "title": "Simulated feature distribution",
      "topics": [
        "sim_dist_features"
      ]
    },
    {
      "page": "sim_features",
      "title": "Simulated features",
      "topics": [
        "sim_features"
      ]
    },
    {
      "page": "sim_multiaction",
      "title": "Simulated spatial multi-action planning inputs",
      "topics": [
        "sim_multiaction"
      ]
    },
    {
      "page": "sim_pu",
      "title": "Simulated planning units",
      "topics": [
        "sim_pu"
      ]
    },
    {
      "page": "sim_pu_sf",
      "title": "Simulated planning units",
      "topics": [
        "sim_pu_sf"
      ]
    },
    {
      "page": "solution_append",
      "title": "Append solutions from another solution set",
      "topics": [
        "solution_append"
      ]
    },
    {
      "page": "solution_filter",
      "title": "Filter solutions in a solution set",
      "topics": [
        "solution_filter"
      ]
    },
    {
      "page": "solution_unique",
      "title": "Keep unique solutions in a solution set",
      "topics": [
        "solution_unique"
      ]
    },
    {
      "page": "solutionset-class",
      "title": "SolutionSet class",
      "topics": [
        "SolutionSet",
        "solutionset-class"
      ]
    },
    {
      "page": "solve",
      "title": "Solve a planning problem",
      "topics": [
        "solve",
        "solve.Problem"
      ]
    }
  ],
  "_pkglogo": "https://github.com/josesalgr/multiscape/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/josesalgr/multiscape/raw/HEAD/README.md",
  "_rundeps": [
    "assertthat",
    "BH",
    "class",
    "classInt",
    "cli",
    "cpp11",
    "DBI",
    "dplyr",
    "e1071",
    "exactextractr",
    "farver",
    "generics",
    "ggplot2",
    "ggrepel",
    "glue",
    "gtable",
    "isoband",
    "KernSmooth",
    "labeling",
    "lattice",
    "lifecycle",
    "magrittr",
    "Matrix",
    "matrixStats",
    "moocore",
    "pillar",
    "pkgconfig",
    "proto",
    "proxy",
    "R6",
    "RANN",
    "raster",
    "rbibutils",
    "RColorBrewer",
    "Rcpp",
    "RcppArmadillo",
    "Rdpack",
    "rlang",
    "s2",
    "S7",
    "scales",
    "sf",
    "sp",
    "terra",
    "tibble",
    "tidyselect",
    "units",
    "utf8",
    "vctrs",
    "viridisLite",
    "withr",
    "wk"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_vignettes": [
    {
      "source": "choosing_multi_objective_method.Rmd",
      "filename": "choosing_multi_objective_method.html",
      "title": "Choosing a multi-objective optimisation method",
      "engine": "knitr::rmarkdown",
      "headings": [
        "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"
      ],
      "created": "2026-07-30 13:30:39",
      "modified": "2026-08-13 08:02:11",
      "commits": 2
    },
    {
      "source": "reserve-design-rwanda.Rmd",
      "filename": "reserve-design-rwanda.html",
      "title": "From reserve selection to multi-objective conservation planning",
      "engine": "knitr::rmarkdown",
      "headings": [
        "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"
      ],
      "created": "2026-08-03 08:32:12",
      "modified": "2026-10-01 10:55:50",
      "commits": 2
    },
    {
      "source": "Joint_effects.Rmd",
      "filename": "Joint_effects.html",
      "title": "Joint effects and interactions between management actions",
      "engine": "knitr::rmarkdown",
      "headings": [
        "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"
      ],
      "created": "2026-10-06 18:07:30",
      "modified": "2026-10-06 18:07:30",
      "commits": 1
    },
    {
      "source": "Integrated_planning.Rmd",
      "filename": "Integrated_planning.html",
      "title": "Multi-objective forest restoration planning in a highly productive landscape",
      "engine": "knitr::rmarkdown",
      "headings": [
        "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"
      ],
      "created": "2026-07-30 13:30:39",
      "modified": "2026-10-12 10:07:32",
      "commits": 6
    },
    {
      "source": "Planning_with_concurrent_actions.Rmd",
      "filename": "Planning_with_concurrent_actions.html",
      "title": "Planning with concurrent management actions",
      "engine": "knitr::rmarkdown",
      "headings": [
        "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"
      ],
      "created": "2026-10-11 14:19:20",
      "modified": "2026-10-11 14:19:20",
      "commits": 1
    },
    {
      "source": "Repeated_calls.Rmd",
      "filename": "Repeated_calls.html",
      "title": "Repeated calls and alternative problem configurations",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Build a common base",
        "Compare solver settings and MO methods",
        "Accumulate independent constraints",
        "Accumulate compatible locks"
      ],
      "created": "2026-10-06 18:07:30",
      "modified": "2026-10-06 18:07:30",
      "commits": 1
    }
  ],
  "_score": 6.153814864344529,
  "_indexed": true,
  "_nocasepkg": "multiscape",
  "_universes": [
    "josesalgr"
  ],
  "_previous": "1.4.3",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.4.4",
      "date": "2026-10-26T13:54:00.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/1ed88d2a225de581fb02333221f8bba7788f907c9ec68b59e4e5dd03dca911d4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.4.4",
      "date": "2026-10-26T13:55:03.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/f54bb7c589cdfda680aa54bd830dbbbdcbda822c77cb3713fdccef21c224e6ff",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.4.4",
      "date": "2026-10-26T13:55:53.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/89dcd0a2f9a37ae8498e9bfa3c834536eaec9ef03d51927e14fbc17ba887ea69",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.4.4",
      "date": "2026-10-26T13:56:52.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/54ce1658a5ae1b82da566722687150af2cda22311eff5d7c2addf8b575307376",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.4.4",
      "date": "2026-10-26T14:13:46.000Z",
      "arch": "aarch64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/a7d9d55ad46da0beb8fc0786b94b776112b8df1cbeaaa6f6236b6cc82cb3b2c7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.4.4",
      "date": "2026-10-26T14:17:19.000Z",
      "arch": "x86_64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/c585f48fb835e0daa0f7b1417ad04df777a87b02c524f7c965205f59fc0911dd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.4.4",
      "date": "2026-10-26T14:16:59.000Z",
      "arch": "aarch64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/44fdb4c29fed0ac4bc17a9a30e7bf49d06d8409e64ed90de379efdd11b286fdc",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.4.4",
      "date": "2026-10-26T14:18:28.000Z",
      "arch": "x86_64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/74c4cae697fe83dc4a4539eac0d0358f9ec537b8ec08efa7e68b4ce89d0c3360",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.4.4",
      "date": "2026-10-26T13:54:57.000Z",
      "arch": "aarch64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/1bddf2e8855d6682f03405090956624e6585a559ef0d11dd4868125bd63bb2a2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.4.4",
      "date": "2026-10-26T13:53:43.000Z",
      "arch": "x86_64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/4c8519fc9d10af86b1308339f79918587bfcca2cdb285acd5ae0baeffc51a1ab",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.4.4",
      "date": "2026-10-26T13:53:56.000Z",
      "arch": "x86_64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/d3898b79b11b822f5ba80bc00ab016f10e348c3b5daf9236ddac0ca895057314",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.4.4",
      "date": "2026-10-26T13:55:13.000Z",
      "arch": "aarch64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/19f1650e5f0af88f569a4b24f1186ef3ae44a7a84d7942897a927233f9698625",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.4.4",
      "date": "2026-10-26T13:57:27.000Z",
      "arch": "x86_64",
      "commit": "00bc6c00d9c57b8e20b04cf062c6a356849ea7f5",
      "fileid": "https://r2.ropensci.org/31274ce4604f7595927feea2d49d1023f58364244525526c6ba564831937afb2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/josesalgr/actions/runs/40332195601"
    }
  ]
}