{"id":116526,"name":"restoptr","description":"Aims to identify priority areas for restoration efforts using optimization algorithms.","url":"https://github.com/dimitri-justeau/restoptr","last_synced_at":"2026-04-17T19:00:47.871Z","repository":{"id":39575769,"uuid":"432072532","full_name":"dimitri-justeau/restoptr","owner":"dimitri-justeau","description":"R package for ecological restoration planning","archived":false,"fork":false,"pushed_at":"2025-07-02T09:08:29.000Z","size":76902,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-04-07T14:03:01.579Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://dimitri-justeau.github.io/restoptr/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dimitri-justeau.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-26T06:09:40.000Z","updated_at":"2025-07-02T09:08:34.000Z","dependencies_parsed_at":"2023-11-10T11:34:09.526Z","dependency_job_id":"cc360349-9be2-4e24-a376-6e400af87666","html_url":"https://github.com/dimitri-justeau/restoptr","commit_stats":{"total_commits":204,"total_committers":2,"mean_commits":102.0,"dds":0.2941176470588235,"last_synced_commit":"f6bf438bbfeecb3ffc41dbfb131edb97c25451ba"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/dimitri-justeau/restoptr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimitri-justeau","download_url":"https://codeload.github.com/dimitri-justeau/restoptr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31853279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"dimitri-justeau","name":"Dimitri Justeau-Allaire","uuid":"2606034","kind":"user","description":"","email":"","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/2606034?u=f415c71847dfda0650b50e484f1e564047ee2e1e\u0026v=4","repositories_count":8,"last_synced_at":"2023-03-31T15:58:46.301Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/dimitri-justeau","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-04T08:16:00.100Z","updated_at":"2023-03-31T15:58:46.308Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimitri-justeau","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimitri-justeau/repositories"},"packages":[{"id":11729474,"name":"github.com/dimitri-justeau/restoptr","ecosystem":"go","description":null,"homepage":null,"licenses":"gpl-3.0","normalized_licenses":["GPL-3.0"],"repository_url":"https://github.com/dimitri-justeau/restoptr","keywords_array":[],"namespace":null,"versions_count":5,"first_release_published_at":"2022-10-13T12:52:35.000Z","latest_release_published_at":"2025-07-02T09:07:49.000Z","latest_release_number":"v1.1.1","last_synced_at":"2026-04-15T18:01:32.785Z","created_at":"2025-06-04T10:54:52.878Z","updated_at":"2026-04-15T18:01:32.785Z","registry_url":"https://pkg.go.dev/github.com/dimitri-justeau/restoptr","install_command":"go get github.com/dimitri-justeau/restoptr","documentation_url":"https://pkg.go.dev/github.com/dimitri-justeau/restoptr#section-documentation","metadata":{},"repo_metadata":{"id":39575769,"uuid":"432072532","full_name":"dimitri-justeau/restoptr","owner":"dimitri-justeau","description":"R package for ecological restoration planning","archived":false,"fork":false,"pushed_at":"2024-07-15T12:12:31.000Z","size":69930,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-02T14:56:08.825Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://dimitri-justeau.github.io/restoptr/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dimitri-justeau.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-26T06:09:40.000Z","updated_at":"2024-07-15T12:12:35.000Z","dependencies_parsed_at":"2023-11-10T11:34:09.526Z","dependency_job_id":"cc360349-9be2-4e24-a376-6e400af87666","html_url":"https://github.com/dimitri-justeau/restoptr","commit_stats":{"total_commits":204,"total_committers":2,"mean_commits":102.0,"dds":0.2941176470588235,"last_synced_commit":"f6bf438bbfeecb3ffc41dbfb131edb97c25451ba"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimitri-justeau","download_url":"https://codeload.github.com/dimitri-justeau/restoptr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":257916107,"owners_count":22622505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"repo_metadata_updated_at":"2025-06-04T11:05:38.613Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.764254255794306,"dependent_packages_count":5.401293307900869,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.582773781847587},"purl":"pkg:golang/github.com/dimitri-justeau/restoptr","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/dimitri-justeau/restoptr","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/dimitri-justeau/restoptr","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/dimitri-justeau/restoptr/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-06-04T07:06:00.480Z","issues_count":42,"pull_requests_count":13,"avg_time_to_close_issue":2964862.285714286,"avg_time_to_close_pull_request":1007753.5384615385,"issues_closed_count":42,"pull_requests_closed_count":13,"pull_request_authors_count":1,"issue_authors_count":4,"avg_comments_per_issue":2.5,"avg_comments_per_pull_request":4.230769230769231,"merged_pull_requests_count":13,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/issues","maintainers":[{"login":"jeffreyhanson","count":50,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeffreyhanson"},{"login":"dimitri-justeau","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dimitri-justeau"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fdimitri-justeau%2Frestoptr/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fdimitri-justeau%2Frestoptr/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fdimitri-justeau%2Frestoptr/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fdimitri-justeau%2Frestoptr/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fdimitri-justeau%2Frestoptr/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2100075,"maintainers_count":0,"namespaces_count":781751,"keywords_count":112812,"github":"golang","metadata":{"funded_packages_count":53481},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-16T05:07:48.212Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":4466586,"name":"restoptr","ecosystem":"cran","description":"Ecological Restoration Planning","homepage":"https://dimitri-justeau.github.io/restoptr/","licenses":"GPL (≥ 3)","normalized_licenses":["CNRI-Python-GPL-Compatible"],"repository_url":"https://github.com/dimitri-justeau/restoptr","keywords_array":[],"namespace":null,"versions_count":9,"first_release_published_at":"2022-06-09T00:00:00.000Z","latest_release_published_at":"2025-07-02T00:00:00.000Z","latest_release_number":"1.1.1","last_synced_at":"2026-04-15T18:01:31.145Z","created_at":"2022-06-14T14:01:10.611Z","updated_at":"2026-04-15T18:01:31.146Z","registry_url":"https://cran.r-project.org/package=restoptr","install_command":null,"documentation_url":"http://cran.r-project.org/web/packages/restoptr/restoptr.pdf","metadata":{},"repo_metadata":{"id":39575769,"uuid":"432072532","full_name":"dimitri-justeau/restoptr","owner":"dimitri-justeau","description":"R package for ecological restoration planning","archived":false,"fork":false,"pushed_at":"2024-07-15T12:12:31.000Z","size":69930,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-29T20:33:59.782Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://dimitri-justeau.github.io/restoptr/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dimitri-justeau.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-11-26T06:09:40.000Z","updated_at":"2024-07-15T12:12:35.000Z","dependencies_parsed_at":"2023-11-10T11:34:09.526Z","dependency_job_id":"cc360349-9be2-4e24-a376-6e400af87666","html_url":"https://github.com/dimitri-justeau/restoptr","commit_stats":{"total_commits":203,"total_committers":2,"mean_commits":101.5,"dds":"0.29556650246305416","last_synced_commit":"16baeffc1eab97ec1a684aba195cd60b749205ee"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimitri-justeau","download_url":"https://codeload.github.com/dimitri-justeau/restoptr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222130901,"owners_count":16936299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"dimitri-justeau","name":"Dimitri Justeau-Allaire","uuid":"2606034","kind":"user","description":"","email":"","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/2606034?u=f415c71847dfda0650b50e484f1e564047ee2e1e\u0026v=4","repositories_count":8,"last_synced_at":"2023-03-31T15:58:46.301Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/dimitri-justeau","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-04T08:16:00.100Z","updated_at":"2023-03-31T15:58:46.308Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimitri-justeau","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimitri-justeau/repositories"},"tags":[{"name":"v1.0.5","sha":"e6b69c1e49e0bcdddfb6f18162eb07b49585f5b3","kind":"commit","published_at":"2023-05-15T08:34:21.000Z","download_url":"https://codeload.github.com/dimitri-justeau/restoptr/tar.gz/v1.0.5","html_url":"https://github.com/dimitri-justeau/restoptr/releases/tag/v1.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/tags/v1.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/tags/v1.0.5/manifests"},{"name":"v1.0.2","sha":"32d85fa83f68c34ef31994c9768c7f04713112f0","kind":"commit","published_at":"2022-10-13T12:52:35.000Z","download_url":"https://codeload.github.com/dimitri-justeau/restoptr/tar.gz/v1.0.2","html_url":"https://github.com/dimitri-justeau/restoptr/releases/tag/v1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/tags/v1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/tags/v1.0.2/manifests"}]},"repo_metadata_updated_at":"2024-10-29T23:12:24.373Z","dependent_packages_count":0,"downloads":893,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":42.117234516419465,"dependent_repos_count":35.45467469080226,"dependent_packages_count":29.796711368051938,"stargazers_count":22.489693408520115,"forks_count":28.830024167180024,"average":31.73766763019476},"purl":"pkg:cran/restoptr","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/cran/restoptr","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/cran/restoptr","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/cran/restoptr/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-10-29T19:31:43.605Z","issues_count":42,"pull_requests_count":13,"avg_time_to_close_issue":2964862.285714286,"avg_time_to_close_pull_request":1007753.5384615385,"issues_closed_count":42,"pull_requests_closed_count":13,"pull_request_authors_count":1,"issue_authors_count":4,"avg_comments_per_issue":2.5,"avg_comments_per_pull_request":4.230769230769231,"merged_pull_requests_count":13,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/issues","maintainers":[{"login":"jeffreyhanson","count":50,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeffreyhanson"},{"login":"dimitri-justeau","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dimitri-justeau"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/restoptr/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/restoptr/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/restoptr/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/restoptr/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages/restoptr/codemeta","maintainers":[{"uuid":"dimitri.justeau@gmail.com","login":null,"name":"Dimitri Justeau-Allaire","email":"dimitri.justeau@gmail.com","url":null,"packages_count":2,"html_url":null,"role":null,"created_at":"2022-11-14T16:41:23.784Z","updated_at":"2022-11-14T16:41:23.784Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/maintainers/dimitri.justeau@gmail.com/packages"}],"registry":{"name":"cran.r-project.org","url":"https://cran.r-project.org","ecosystem":"cran","default":true,"packages_count":28010,"maintainers_count":15530,"namespaces_count":0,"keywords_count":0,"github":"r-project-org","metadata":{"icon_url":"https://cran.r-project.org/CRANlogo.png","funded_packages_count":546},"icon_url":"https://cran.r-project.org/CRANlogo.png","created_at":"2022-04-06T16:32:25.637Z","updated_at":"2026-04-03T06:40:33.945Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/cran.r-project.org/namespaces"}}],"commits":{"id":726108,"full_name":"dimitri-justeau/restoptr","default_branch":"master","total_commits":220,"total_committers":2,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":110.0,"dds":0.2727272727272727,"past_year_total_commits":16,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":16.0,"past_year_dds":0.0,"last_synced_at":"2026-04-16T17:58:21.649Z","last_synced_commit":"df50916304a5d50bb9aa249e5df93a4aca6cc650","created_at":"2023-03-09T13:16:00.330Z","updated_at":"2026-04-16T17:58:21.600Z","committers":[{"name":"Dimitri","email":"dimitri.justeau@gmail.com","login":"dimitri-justeau","count":160},{"name":"Jeffrey Hanson","email":"jeffrey.hanson@uqconnect.edu.au","login":"jeffreyhanson","count":60}],"past_year_committers":[{"name":"Dimitri Justeau-Allaire","email":"dimitri.justeau@gmail.com","login":"dimitri-justeau","count":16}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-17T00:00:13.716Z","repositories_count":6214336,"commits_count":900640983,"contributors_count":34925210,"owners_count":1144572,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"dimitri-justeau/restoptr","html_url":"https://github.com/dimitri-justeau/restoptr","last_synced_at":"2026-04-15T18:01:26.938Z","status":"active","issues_count":42,"pull_requests_count":13,"avg_time_to_close_issue":2964862.285714286,"avg_time_to_close_pull_request":1007753.5384615385,"issues_closed_count":42,"pull_requests_closed_count":13,"pull_request_authors_count":1,"issue_authors_count":4,"avg_comments_per_issue":2.5,"avg_comments_per_pull_request":4.230769230769231,"merged_pull_requests_count":13,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-10T23:06:05.350Z","updated_at":"2026-04-15T18:01:26.938Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimitri-justeau%2Frestoptr/issues","issue_labels_count":{"documentation":15,"enhancement":15,"question":6,"bug":2},"pull_request_labels_count":{},"issue_author_associations_count":{"COLLABORATOR":37,"OWNER":3,"NONE":2},"pull_request_author_associations_count":{"COLLABORATOR":13},"issue_authors":{"jeffreyhanson":37,"dimitri-justeau":3,"rsbivand":1,"rhijmans":1},"pull_request_authors":{"jeffreyhanson":13},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-17T00:00:09.649Z","repositories_count":14298493,"issues_count":34553064,"pull_requests_count":113103836,"authors_count":11236921,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"jeffreyhanson","count":50,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeffreyhanson"},{"login":"dimitri-justeau","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/dimitri-justeau"}],"active_maintainers":[]},"events":{"total":{"ReleaseEvent":1,"PushEvent":9,"CreateEvent":1},"last_year":{"ReleaseEvent":1,"PushEvent":9,"CreateEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"cran","filepath":"DESCRIPTION","sha":null,"kind":"manifest","created_at":"2022-09-04T07:31:46.446Z","updated_at":"2022-09-04T07:31:46.446Z","repository_link":"https://github.com/dimitri-justeau/restoptr/blob/master/DESCRIPTION","dependencies":[{"id":3768813061,"package_name":"R","ecosystem":"cran","requirements":"\u003e= 4.1.0","direct":true,"kind":"depends","optional":false},{"id":3768813062,"package_name":"terra","ecosystem":"cran","requirements":"\u003e= 1.5","direct":true,"kind":"depends","optional":false},{"id":3768813063,"package_name":"rJava","ecosystem":"cran","requirements":"\u003e= 1.0.5","direct":true,"kind":"depends","optional":false},{"id":3768813064,"package_name":"units","ecosystem":"cran","requirements":"\u003e= 0.8","direct":true,"kind":"depends","optional":false},{"id":3768813065,"package_name":"utils","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":3768813066,"package_name":"assertthat","ecosystem":"cran","requirements":"\u003e= 0.2.1","direct":true,"kind":"imports","optional":false},{"id":3768813067,"package_name":"magrittr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":3768813068,"package_name":"crayon","ecosystem":"cran","requirements":"\u003e= 1.4.1","direct":true,"kind":"imports","optional":false},{"id":3768813069,"package_name":"methods","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":3768813070,"package_name":"testthat","ecosystem":"cran","requirements":"\u003e= 2.0.1","direct":true,"kind":"suggests","optional":false},{"id":3768813071,"package_name":"knitr","ecosystem":"cran","requirements":"\u003e= 1.2.0","direct":true,"kind":"suggests","optional":false},{"id":3768813072,"package_name":"roxygen2","ecosystem":"cran","requirements":"\u003e= 6.1.1","direct":true,"kind":"suggests","optional":false},{"id":3768813073,"package_name":"rmarkdown","ecosystem":"cran","requirements":"\u003e= 1.10","direct":true,"kind":"suggests","optional":false},{"id":3768813074,"package_name":"landscapemetrics","ecosystem":"cran","requirements":"\u003e= 1.5.4","direct":true,"kind":"suggests","optional":false},{"id":3768813075,"package_name":"raster","ecosystem":"cran","requirements":"\u003e= 3.5","direct":true,"kind":"suggests","optional":false},{"id":3768813076,"package_name":"rgdal","ecosystem":"cran","requirements":"*","direct":true,"kind":"suggests","optional":false},{"id":3768813077,"package_name":"vegan","ecosystem":"cran","requirements":"\u003e= 2.5.7","direct":true,"kind":"suggests","optional":false},{"id":3768813078,"package_name":"cluster","ecosystem":"cran","requirements":"\u003e= 2.1.2","direct":true,"kind":"suggests","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/R-CMD-check-macos.yaml","sha":null,"kind":"manifest","created_at":"2023-01-30T03:15:37.320Z","updated_at":"2023-01-30T03:15:37.320Z","repository_link":"https://github.com/dimitri-justeau/restoptr/blob/master/.github/workflows/R-CMD-check-macos.yaml","dependencies":[{"id":7238738240,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7238738241,"package_name":"actions/setup-java","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738242,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738243,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738244,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7238738245,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/R-CMD-check-ubuntu.yaml","sha":null,"kind":"manifest","created_at":"2023-01-30T03:15:37.345Z","updated_at":"2023-01-30T03:15:37.345Z","repository_link":"https://github.com/dimitri-justeau/restoptr/blob/master/.github/workflows/R-CMD-check-ubuntu.yaml","dependencies":[{"id":7238738247,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7238738248,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738249,"package_name":"actions/setup-java","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738250,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738251,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7238738252,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/R-CMD-check-windows.yaml","sha":null,"kind":"manifest","created_at":"2023-01-30T03:15:37.359Z","updated_at":"2023-01-30T03:15:37.359Z","repository_link":"https://github.com/dimitri-justeau/restoptr/blob/master/.github/workflows/R-CMD-check-windows.yaml","dependencies":[{"id":7238738254,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7238738255,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738256,"package_name":"actions/setup-java","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738257,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738258,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/documentation.yaml","sha":null,"kind":"manifest","created_at":"2023-01-30T03:15:37.373Z","updated_at":"2023-01-30T03:15:37.373Z","repository_link":"https://github.com/dimitri-justeau/restoptr/blob/master/.github/workflows/documentation.yaml","dependencies":[{"id":7238738261,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7238738262,"package_name":"r-lib/actions/setup-r","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738263,"package_name":"actions/setup-java","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738264,"package_name":"r-lib/actions/setup-pandoc","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":7238738265,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]}],"score":9.886748228531829,"created_at":"2023-10-15T00:04:49.990Z","updated_at":"2026-04-17T19:00:47.886Z","avatar_url":"https://github.com/dimitri-justeau.png","language":"R","category":"Biosphere","sub_category":"Conservation and Restoration","monthly_downloads":893,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"---\noutput:\n  rmarkdown::github_document:\n    html_preview: no\n---\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(fig.path = \"man/figures/README-\", fig.align = \"center\",\n                      fig.height = 4.5, fig.width = 4.5)\n```\n\n\u003c!--- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n# restoptr \u003cimg src=\"man/figures/logo.png\" align=\"right\" width=\"140px\"/\u003e\n## Ecological Restoration Planning\n\n[![lifecycle](https://img.shields.io/badge/Lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html)\n[![R-CMD-check-Ubuntu](https://github.com/dimitri-justeau/restoptr/actions/workflows/R-CMD-check-ubuntu.yaml/badge.svg)](https://github.com/dimitri-justeau/restoptr/actions)\n[![R-CMD-check-Windows](https://github.com/dimitri-justeau/restoptr/actions/workflows/R-CMD-check-windows.yaml/badge.svg)](https://github.com/dimitri-justeau/restoptr/actions)\n[![R-CMD-check-MacOS](https://github.com/dimitri-justeau/restoptr/actions/workflows/R-CMD-check-macos.yaml/badge.svg)](https://github.com/dimitri-justeau/restoptr/actions)\n[![Coverage Status](https://codecov.io/github/dimitri-justeau/restoptr/coverage.svg?branch=master)](https://app.codecov.io/gh/dimitri-justeau/restoptr)\n[![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/restoptr)](https://github.com/dimitri-justeau/restoptr)\n[![Downloads](https://cranlogs.r-pkg.org/badges/restoptr)](https://CRAN.R-project.org/package=restoptr)\n\n```{r, include = FALSE}\ndevtools::load_all()\n```\n\n\u003cp id=\"logo-credit\" align=\"right\"\u003eLogo by Camille Salmon\u003c/p\u003e\n\n## Overview\n\nThe `restoptr` R package provides a flexible framework for ecological restoration planning. It aims to identify priority areas for restoration efforts using optimization algorithms (based on Justeau-Allaire _et al._ 2021). Priority areas can be identified by maximizing landscape indices, such as the effective mesh size (Jaeger 2000), or the integral index of connectivity (Pascual-Hortal \u0026 Saura 2006). Additionally, constraints can be used to ensure that priority areas exhibit particular characteristics (e.g., ensure that particular places are not selected for restoration, ensure that priority areas form a single contiguous network). Furthermore, multiple near-optimal solutions can be generated to explore multiple options in restoration planning. The package leverages the [Choco-solver](https://choco-solver.org/) software to perform optimization using constraint programming (CP) techniques (Prud'homme _et al._ 2016).\n\n## Installation\n\n### Package installation\n\nThe latest official version of the _restoptr R_ package can be installed from the [Comprehensive R Archive Network (CRAN)](https://cran.r-project.org/) using the following _R_ code.\n\n```{r, eval = FALSE}\ninstall.packages(\"restoptr\", repos = \"https://cran.rstudio.com/\")\n```\n\nAlternatively, the latest developmental version can be installed using the following _R_ code. Please note that while developmental versions may contain additional features not present in the official version, they may also contain coding errors.\n\n```{r, eval = FALSE}\nif (!require(remotes)) install.packages(\"remotes\")\nremotes::install_github(\"dimitri-justeau/restoptr\")\n```\n\n### System dependencies\n\nThe packages requires a Java Runtime Environment (JRE), version 8 or higher. Below we provide platform-specific instructions to install it.\n\n#### _Windows_\n\nPlease install the latest Java Runtime Environment for Windows (see Oracle JDK, [OpenJDK](https://openjdk.org/install/), or [GraalVM](https://www.graalvm.org/downloads/)). You also need to install [Maven](https://maven.apache.org/). After downloading the file, please run installer to install Java on your system. You will also need to ensure that the `PATH` environmental variable if configured so that _R_ can access Java. _restoptr_ relies on _rJava_ for the communication between _R_ and _Java_. If you have any trouble during the installation of _restopt_ due to _rJava_, please refer to _rJava_'s documentation: https://rforge.net/rJava/index.html.\n\n#### _Ubuntu_\n\nFor recent versions of Ubuntu (18.04 and later), the Java libraries are available through official repositories. They can be installed using the following system commands.\n\n```{bash, eval = FALSE}\nsudo apt-get install default-jdk\n```\n\nIf you want to install a specific JRE version, please follow instructions from Oracle, [OpenJDK](https://openjdk.org/install/), or [GraalVM](https://www.graalvm.org/downloads/).\n\n#### _Linux_\n\nPlease follow instructions from Oracle, [OpenJDK](https://openjdk.org/install/), or [GraalVM](https://www.graalvm.org/downloads/).\n\n#### _MacOS_\n\nThe easiest way to install the Java libraries is using [HomeBrew](https://brew.sh/). After installing HomeBrew, the Java libraries can be installed using the following system commands.\n\n```{bash, eval = FALSE}\nbrew install openjdk\n```\n\nPlease note that you might also need to ensure that the `PATH` environmental variable if configured so that _R_ can access Java.\n\n### Building the Java core library from source (optional)\n\nThe package relies on a core Java library called [`restopt`](https://github.com/dimitri-justeau/restopt). This Java library handles the constrained optimization process via the [Choco-solver](https://choco-solver.org/) software. Although this library is automatically included with the package, it can be manually compile from source if needed. **Please note that this step is entirely optional, and is not needed to install the package.** To compile the Java library, a the [Maven](https://maven.apache.org/) software needs to be installed as well as a Java Development Kit (JDK) (version 8+) is required (e.g., see Oracle JDK, [OpenJDK](https://openjdk.org/install/), or [GraalVM](https://www.graalvm.org/downloads/)). After installing these dependencies, the following procedures can be used to compile the Java library and it along with the package.\n\nFirst clone the repository and update the source code.\n\n```{bash, eval = FALSE}\ngit clone https://github.com/dimitri-justeau/restoptr.git\ncd restoptr\ngit submodule update --init --recursive\ngit pull --recurse-submodules\n```\n\nNext, compile the core Java library with Maven.\n\n```{bash, eval = FALSE}\ncd restopt\nmvn clean package -DskipTests\n```\n\nNext, copy the resulting Java library (.jar) file into `java` directory.\n\n```{bash, eval = FALSE}\ncp target/restopt-*.jar ../java/\n```\n\nFinally, the package can be installed with the newly compiled Java library  using the following _R_ command.\n\n```{r, eval = FALSE}\nif (!require(remotes)) install.packages(\"remotes\")\nremotes::install_local(\".\")\n```\n\n## Usage\n\nHere we will provide a short tutorial on using the _restoptr R_ package to identify priority areas for restoration. As part of this tutorial, we will use an example dataset that is distributed with the package (obtained from Justeau-Allaire _et al._ 2021). This example dataset contains data for prioritizing forest restoration efforts within a protected area in New Caledonia. We will begin the tutorial by loading the package. If you haven't already, please install the package (see above for installation instructions).\n\n```{r \"load_package\"}\n# load package\nlibrary(restoptr)\n```\n\nTo identify priorities for restoration, we require information on the location of places that do and do not currently contain suitable habitat. We will now import data to describe which places within the protected area contain forest habitat (imported as the `habitat_data` object). Specifically, this object is a spatial grid (i.e., raster layer). Each grid cell corresponds to a candidate place for restoration (termed planning unit), and their values indicate the absence or presence of forest within each planning unit (using values of zero and one, respectively).\n\n```{r \"habitat_data\", out.width = \"100%\", fig.width = 10}\n# import data\nhabitat_data \u003c- rast(\n  system.file(\"extdata\", \"habitat_hi_res.tif\", package = \"restoptr\")\n)\n\n# preview data\nprint(habitat_data)\n\n# visualize data\nplot(habitat_data, plg = list(x = \"topright\"))\n```\n\nRestoration efforts are often limited in terms of the places where they can be implemented. For example, restoration efforts may not be feasible in dense cities. In our example, some places are not feasible for restoration because they cannot be accessed by existing tracks within the protected area. We will now import data to describe which places are not feasible for restoration (imported as the `locked_out_data` object). This object -- similar to the habitat data -- is a spatial grid. The grid cell values in this object indicate which planning units should be considered available for restoration or not (using values of zero and one, respectively).\n\n```{r \"locked_out_data\", out.width = \"100%\", fig.width = 10}\n# import data\nlocked_out_data \u003c- rast(\n  system.file(\"extdata\", \"locked_out.tif\", package = \"restoptr\")\n)\n\n# preview data\nprint(locked_out_data)\n\n# visualize data\nplot(locked_out_data, plg = list(x = \"topright\"))\n```\n\nWe now will build a restoration optimization problem (stored in the `problem` object). This object will specify all the data, settings, and optimization criteria for identifying priority areas. Specifically, we will initialize the problem with the `habitat_data` object to specify which planning units already contain suitable habitat (with the `restopt_problem()` function). To reduce run time, we will also initialize it with parameters to aggregate the spatial data (i.e., `aggregation_factor` and `habitat_threshold`). Next, we will specify that the objective function for the optimization process is to maximize connectivity based on the effective mesh size metric (with the `set_max_mesh_objective()` function). We will then specify constraints to ensure that the priority areas exhibit particular characteristics. These constraints will be used to ensure that (i) certain planning units are not selected for restoration (with the `add_locked_out_constraint()` function), (ii) the total amount of restored area should range between 90 and 220 ha (with the `add_restorable_constraint()` function), and (iii) limit the spatial extent of the priority areas to be within 2.4 km (with the `add_compactness_constraint()` function).\n\n```{r \"problem\"}\n# build restoration optimization problem\nproblem \u003c-\n  ## initialize problem with habitat data\n  restopt_problem(\n    existing_habitat = habitat_data,\n    aggregation_factor = 16,\n    habitat_threshold = 0.7\n  ) %\u003e%\n  ## set objective function is to maximize effective mesh size\n  set_max_mesh_objective() %\u003e%\n  ## add constraint to ensure that certain places are not selected\n  add_locked_out_constraint(locked_out_data) %\u003e%\n  ## add constraint to limit total amount of restored area\n  add_restorable_constraint(90, 220, unit = \"ha\") %\u003e%\n  ## add constraint to limit spatial extent of priority areas\n  add_compactness_constraint(2.4, unit = \"km\")\n\n# preview problem\nprint(problem)\n```\n\nAfter building the problem, we can solve it to identify priority areas for restoration (with the `solve()` function). The solution is a raster layer containing values that indicate if planning units: (`0`) were locked out, (`1`) do not contain existing habitat, (`2`) contain existing habitat, or (`3`) selected as a priority area for restoration.\n\n```{r \"solution\", out.width = \"100%\", fig.width = 10}\n# solve problem to identify priority areas\nsolution \u003c- solve(problem)\n\n# preview solution\nprint(solution)\n\n# visualize solution\nplot(\n  solution,\n  main = \"Solution\",\n  col = c(\"#E5E5E5\", \"#fff1d6\", \"#b2df8a\", \"#1f78b4\"),\n  plg = list(x = \"topright\")\n)\n```\n\nFinally, we can access additional information on the solution (with the  `get_metadata()` function).\n\n```{r \"metadata\"}\n# access information on the solution\n## N.B. spatial units are expressed as hectares\nget_metadata(solution, area_unit = \"ha\")\n```\n\nThis has just been a short taster of the package. For an extended tutorial on using the package, please refer to the vignette.\n\n## Citation\n\nPlease cite the _restoptr R_ package when using it in publications.\n\n\u003e Justeau‐Allaire, D., Hanson, J. O., Lannuzel, G., Vismara, P., Lorca, X., \u0026 Birnbaum, P. (2023). restoptr: an R package for ecological restoration planning. Restoration Ecology, e13910. https://doi.org/10.1111/rec.13910\n\n## Getting help\n\nIf you have any questions about using the package, suggestions for improvements, or if you detect a bug, please [open an issue in online code repository](https://github.com/dimitri-justeau/restoptr/issues/new/choose). We designed the package to make it relatively easy to add new functionality, and would be delighted to hear from you.\n\n## References\n\nJaeger, J. A. G. (2000). Landscape division, splitting index, and effective mesh size: New measures of landscape fragmentation. _Landscape Ecology_, 15(2), 115-‑130.\n\nJusteau-Allaire, D., Vieilledent, G., Rinck, N., Vismara, P., Lorca, X., \u0026 Birnbaum, P. (2021). Constrained optimization of landscape indices in conservation planning to support ecological restoration in New Caledonia. _Journal of Applied Ecology_, 58(4), 744‑-754.\n\nPascual-Hortal, L., \u0026 Saura, S. (2006). Comparison and development of new graph-based landscape connectivity indices: Towards the priorization of habitat patches and corridors for conservation. _Landscape Ecology_, 21(7), 959-‑967.\n\nPrud'homme, C., Fages, J.-G., \u0026 Lorca, X. (2016). Choco Solver Documentation. {TASC, INRIA Rennes, LINA CNRS UMR 6241, COSLING S.A.S. Available at \u003chttps://choco-solver.org/\u003e.\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.1111/rec.13910"],"works":{"https://doi.org/10.1111/rec.13910":{"id":"https://openalex.org/W4361269188","doi":"https://doi.org/10.1111/rec.13910","title":"\u003cscp\u003e\u003ci\u003erestoptr\u003c/i\u003e\u003c/scp\u003e: an R package for ecological restoration planning","display_name":"\u003cscp\u003e\u003ci\u003erestoptr\u003c/i\u003e\u003c/scp\u003e: an R package for ecological restoration planning","publication_year":2023,"publication_date":"2023-04-13","ids":{"openalex":"https://openalex.org/W4361269188","doi":"https://doi.org/10.1111/rec.13910"},"language":"en","primary_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1111/rec.13910","pdf_url":null,"source":{"id":"https://openalex.org/S191257319","display_name":"Restoration Ecology","issn_l":"1061-2971","issn":["1526-100X","1061-2971"],"is_oa":false,"is_in_doaj":false,"host_organization":"https://openalex.org/P4310320503","host_organization_name":"Wiley-Blackwell","host_organization_lineage":["https://openalex.org/P4310320503","https://openalex.org/P4310320595"],"host_organization_lineage_names":["Wiley-Blackwell","Wiley"],"type":"journal"},"license":"cc-by-nc","version":"publishedVersion","is_accepted":true,"is_published":true},"type":"article","type_crossref":"journal-article","open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://doi.org/10.1111/rec.13910","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5054917451","display_name":"Dimitri Justeau‐Allaire","orcid":"https://orcid.org/0000-0003-4129-0764"},"institutions":[{"id":"https://openalex.org/I131077856","display_name":"Centre de Coopération Internationale en Recherche Agronomique pour le Développement","ror":"https://ror.org/05kpkpg04","country_code":"FR","type":"facility","lineage":["https://openalex.org/I131077856"]},{"id":"https://openalex.org/I19894307","display_name":"University of Montpellier","ror":"https://ror.org/051escj72","country_code":"FR","type":"education","lineage":["https://openalex.org/I19894307","https://openalex.org/I2802056588"]},{"id":"https://openalex.org/I1294671590","display_name":"French National Centre for Scientific Research","ror":"https://ror.org/02feahw73","country_code":"FR","type":"government","lineage":["https://openalex.org/I1294671590"]},{"id":"https://openalex.org/I4210166444","display_name":"Institut de Recherche pour le Développement","ror":"https://ror.org/05q3vnk25","country_code":"FR","type":"government","lineage":["https://openalex.org/I2802056588","https://openalex.org/I4210090127","https://openalex.org/I4210131494","https://openalex.org/I4210166444"]},{"id":"https://openalex.org/I4210088668","display_name":"National Research Institute for Agriculture, Food and Environment","ror":"https://ror.org/003vg9w96","country_code":"FR","type":"government","lineage":["https://openalex.org/I4210088668"]}],"countries":["FR"],"is_corresponding":true,"raw_author_name":"Dimitri Justeau‐Allaire","raw_affiliation_string":"AMAP, CIRAD, CNRS, INRAE, IRD, Univ Montpellier, Montpellier, France","raw_affiliation_strings":["AMAP, CIRAD, CNRS, INRAE, IRD, Univ Montpellier, Montpellier, France"]},{"author_position":"middle","author":{"id":"https://openalex.org/A5005855544","display_name":"Jeffrey O. Hanson","orcid":"https://orcid.org/0000-0002-4716-6134"},"institutions":[{"id":"https://openalex.org/I67031392","display_name":"Carleton University","ror":"https://ror.org/02qtvee93","country_code":"CA","type":"education","lineage":["https://openalex.org/I67031392"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Jeffrey O. Hanson","raw_affiliation_string":"Department of Biology Carleton University  Ottawa Canada","raw_affiliation_strings":["Department of Biology Carleton University  Ottawa Canada"]},{"author_position":"middle","author":{"id":"https://openalex.org/A5016077244","display_name":"Guillaume Lannuzel","orcid":null},"institutions":[{"id":"https://openalex.org/I102190016","display_name":"University of New Caledonia","ror":"https://ror.org/02jrgcx64","country_code":"NC","type":"education","lineage":["https://openalex.org/I102190016"]}],"countries":["NC"],"is_corresponding":false,"raw_author_name":"Guillaume Lannuzel","raw_affiliation_string":"New Caledonia Plant Red List Authority, Endemia  Noumea New Caledonia","raw_affiliation_strings":["New Caledonia Plant Red List Authority, Endemia  Noumea New Caledonia"]},{"author_position":"middle","author":{"id":"https://openalex.org/A5018212491","display_name":"Philippe Vismara","orcid":"https://orcid.org/0000-0001-7561-0346"},"institutions":[{"id":"https://openalex.org/I24906876","display_name":"Institut Agro Montpelier","ror":"https://ror.org/03rnk6m14","country_code":"FR","type":"education","lineage":["https://openalex.org/I24906876","https://openalex.org/I2802056588"]},{"id":"https://openalex.org/I4210088668","display_name":"National Research Institute for Agriculture, Food and Environment","ror":"https://ror.org/003vg9w96","country_code":"FR","type":"government","lineage":["https://openalex.org/I4210088668"]},{"id":"https://openalex.org/I19894307","display_name":"University of Montpellier","ror":"https://ror.org/051escj72","country_code":"FR","type":"education","lineage":["https://openalex.org/I19894307","https://openalex.org/I2802056588"]},{"id":"https://openalex.org/I4210117045","display_name":"Mathématiques, Informatique et Statistique pour l'Environnement et l'Agronomie","ror":"https://ror.org/01pd2sz18","country_code":"FR","type":"facility","lineage":["https://openalex.org/I24906876","https://openalex.org/I4210102957","https://openalex.org/I4210117045","https://openalex.org/I4210147367"]},{"id":"https://openalex.org/I4210101743","display_name":"Montpellier Laboratory of Informatics, Robotics and Microelectronics","ror":"https://ror.org/013yean28","country_code":"FR","type":"facility","lineage":["https://openalex.org/I1326498283","https://openalex.org/I151295451","https://openalex.org/I19894307","https://openalex.org/I208215962","https://openalex.org/I4210101743","https://openalex.org/I4210159245"]},{"id":"https://openalex.org/I1294671590","display_name":"French National Centre for Scientific Research","ror":"https://ror.org/02feahw73","country_code":"FR","type":"government","lineage":["https://openalex.org/I1294671590"]}],"countries":["FR"],"is_corresponding":false,"raw_author_name":"Philippe Vismara","raw_affiliation_string":"LIRMM, Univ Montpellier, CNRS, Montpellier, France; MISTEA, Université Montpellier, INRAE Institut Agro Montpellier Montpellier France","raw_affiliation_strings":["LIRMM, Univ Montpellier, CNRS, Montpellier, France","MISTEA, Université Montpellier, INRAE Institut Agro Montpellier Montpellier France"]},{"author_position":"middle","author":{"id":"https://openalex.org/A5073285300","display_name":"Xavier Lorca","orcid":null},"institutions":[{"id":"https://openalex.org/I4210134356","display_name":"Laboratoire Génie Industriel","ror":"https://ror.org/0455wwj08","country_code":"FR","type":"facility","lineage":["https://openalex.org/I277688954","https://openalex.org/I4210134356"]},{"id":"https://openalex.org/I4210091876","display_name":"IMT Mines Albi","ror":"https://ror.org/00bq8vv83","country_code":"FR","type":"education","lineage":["https://openalex.org/I17866349","https://openalex.org/I205703379","https://openalex.org/I4210091621","https://openalex.org/I4210091876"]}],"countries":["FR"],"is_corresponding":false,"raw_author_name":"Xavier Lorca","raw_affiliation_string":"Centre de Génie Industriel IMT Mines Albi  Albi France","raw_affiliation_strings":["Centre de Génie Industriel IMT Mines Albi  Albi France"]},{"author_position":"last","author":{"id":"https://openalex.org/A5082823809","display_name":"Philippe Birnbaum","orcid":"https://orcid.org/0000-0003-4830-5500"},"institutions":[{"id":"https://openalex.org/I131077856","display_name":"Centre de Coopération Internationale en Recherche Agronomique pour le Développement","ror":"https://ror.org/05kpkpg04","country_code":"FR","type":"facility","lineage":["https://openalex.org/I131077856"]},{"id":"https://openalex.org/I19894307","display_name":"University of Montpellier","ror":"https://ror.org/051escj72","country_code":"FR","type":"education","lineage":["https://openalex.org/I19894307","https://openalex.org/I2802056588"]},{"id":"https://openalex.org/I1294671590","display_name":"French National Centre for Scientific Research","ror":"https://ror.org/02feahw73","country_code":"FR","type":"government","lineage":["https://openalex.org/I1294671590"]},{"id":"https://openalex.org/I4210166444","display_name":"Institut de Recherche pour le Développement","ror":"https://ror.org/05q3vnk25","country_code":"FR","type":"government","lineage":["https://openalex.org/I2802056588","https://openalex.org/I4210090127","https://openalex.org/I4210131494","https://openalex.org/I4210166444"]},{"id":"https://openalex.org/I4210088668","display_name":"National Research Institute for Agriculture, Food and Environment","ror":"https://ror.org/003vg9w96","country_code":"FR","type":"government","lineage":["https://openalex.org/I4210088668"]},{"id":"https://openalex.org/I102190016","display_name":"University of New Caledonia","ror":"https://ror.org/02jrgcx64","country_code":"NC","type":"education","lineage":["https://openalex.org/I102190016"]}],"countries":["FR","NC"],"is_corresponding":false,"raw_author_name":"Philippe Birnbaum","raw_affiliation_string":"AMAP, CIRAD, CNRS, INRAE, IRD, Univ Montpellier, Montpellier, France; Institut Agronomique néo‐Calédonien (IAC)  Nouméa New Caledonia","raw_affiliation_strings":["AMAP, CIRAD, CNRS, INRAE, IRD, Univ Montpellier, Montpellier, France","Institut Agronomique néo‐Calédonien (IAC)  Nouméa New Caledonia"]}],"countries_distinct_count":3,"institutions_distinct_count":12,"corresponding_author_ids":["https://openalex.org/A5054917451"],"corresponding_institution_ids":["https://openalex.org/I131077856","https://openalex.org/I19894307","https://openalex.org/I1294671590","https://openalex.org/I4210166444","https://openalex.org/I4210088668"],"apc_list":{"value":3300,"currency":"USD","value_usd":3300,"provenance":"doaj"},"apc_paid":{"value":3300,"currency":"USD","value_usd":3300,"provenance":"doaj"},"has_fulltext":true,"fulltext_origin":"pdf","cited_by_count":0,"cited_by_percentile_year":{"min":0,"max":87},"biblio":{"volume":"31","issue":"5","first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"keywords":[],"concepts":[{"id":"https://openalex.org/C78437154","wikidata":"https://www.wikidata.org/wiki/Q2428433","display_name":"Restoration ecology","level":2,"score":0.6108505},{"id":"https://openalex.org/C107826830","wikidata":"https://www.wikidata.org/wiki/Q929380","display_name":"Environmental resource management","level":1,"score":0.54459846},{"id":"https://openalex.org/C191015642","wikidata":"https://www.wikidata.org/wiki/Q1132459","display_name":"Fragmentation (computing)","level":2,"score":0.52644527},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.4871049},{"id":"https://openalex.org/C58941895","wikidata":"https://www.wikidata.org/wiki/Q295865","display_name":"Ecosystem services","level":3,"score":0.42017227},{"id":"https://openalex.org/C91375879","wikidata":"https://www.wikidata.org/wiki/Q15473274","display_name":"Environmental planning","level":1,"score":0.33004344},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.30730528},{"id":"https://openalex.org/C110872660","wikidata":"https://www.wikidata.org/wiki/Q37813","display_name":"Ecosystem","level":2,"score":0.30421403},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.29765153},{"id":"https://openalex.org/C39432304","wikidata":"https://www.wikidata.org/wiki/Q188847","display_name":"Environmental science","level":0,"score":0.23906213},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"is_oa":true,"landing_page_url":"https://doi.org/10.1111/rec.13910","pdf_url":null,"source":{"id":"https://openalex.org/S191257319","display_name":"Restoration Ecology","issn_l":"1061-2971","issn":["1526-100X","1061-2971"],"is_oa":false,"is_in_doaj":false,"host_organization":"https://openalex.org/P4310320503","host_organization_name":"Wiley-Blackwell","host_organization_lineage":["https://openalex.org/P4310320503","https://openalex.org/P4310320595"],"host_organization_lineage_names":["Wiley-Blackwell","Wiley"],"type":"journal"},"license":"cc-by-nc","version":"publishedVersion","is_accepted":true,"is_published":true},{"is_oa":true,"landing_page_url":"https://imt-mines-albi.hal.science/hal-04053479","pdf_url":"https://imt-mines-albi.hal.science/hal-04053479/document","source":{"id":"https://openalex.org/S4306402512","display_name":"HAL (Le Centre pour la Communication Scientifique Directe)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"host_organization":"https://openalex.org/I1294671590","host_organization_name":"French National Centre for Scientific Research","host_organization_lineage":["https://openalex.org/I1294671590"],"host_organization_lineage_names":["French National Centre for Scientific Research"],"type":"repository"},"license":"cc-by-nc","version":"publishedVersion","is_accepted":true,"is_published":true},{"is_oa":true,"landing_page_url":"https://imt-mines-albi.hal.science/hal-04053479/file/Restoration%20Ecology%20-%202023%20-%20Justeau%E2%80%90Allaire%20-%20restoptr%20an%20R%20package%20for%20ecological%20restoration%20planning.pdf","pdf_url":"https://imt-mines-albi.hal.science/hal-04053479/file/Restoration%20Ecology%20-%202023%20-%20Justeau%E2%80%90Allaire%20-%20restoptr%20an%20R%20package%20for%20ecological%20restoration%20planning.pdf","source":{"id":"https://openalex.org/S4306402512","display_name":"HAL (Le Centre pour la Communication Scientifique Directe)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"host_organization":"https://openalex.org/I1294671590","host_organization_name":"French National Centre for Scientific Research","host_organization_lineage":["https://openalex.org/I1294671590"],"host_organization_lineage_names":["French National Centre for Scientific Research"],"type":"repository"},"license":"cc-by-nc","version":"publishedVersion","is_accepted":true,"is_published":true}],"best_oa_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1111/rec.13910","pdf_url":null,"source":{"id":"https://openalex.org/S191257319","display_name":"Restoration Ecology","issn_l":"1061-2971","issn":["1526-100X","1061-2971"],"is_oa":false,"is_in_doaj":false,"host_organization":"https://openalex.org/P4310320503","host_organization_name":"Wiley-Blackwell","host_organization_lineage":["https://openalex.org/P4310320503","https://openalex.org/P4310320595"],"host_organization_lineage_names":["Wiley-Blackwell","Wiley"],"type":"journal"},"license":"cc-by-nc","version":"publishedVersion","is_accepted":true,"is_published":true},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/15","display_name":"Life in Land","score":0.76},{"id":"https://metadata.un.org/sdg/12","display_name":"Responsible consumption and production","score":0.14}],"grants":[],"referenced_works_count":24,"referenced_works":["https://openalex.org/W40698253","https://openalex.org/W1895106052","https://openalex.org/W2074767365","https://openalex.org/W2096545979","https://openalex.org/W2105259992","https://openalex.org/W2129583824","https://openalex.org/W2141694916","https://openalex.org/W2316371504","https://openalex.org/W2317346842","https://openalex.org/W2764165883","https://openalex.org/W2788198797","https://openalex.org/W2936006898","https://openalex.org/W2955437746","https://openalex.org/W3005825300","https://openalex.org/W3093215896","https://openalex.org/W3101561439","https://openalex.org/W3108435685","https://openalex.org/W3130679471","https://openalex.org/W3135558922","https://openalex.org/W3169367487","https://openalex.org/W4205356495","https://openalex.org/W4211243502","https://openalex.org/W4304695344","https://openalex.org/W4388244698"],"related_works":["https://openalex.org/W2384345237","https://openalex.org/W2902127628","https://openalex.org/W2801825054","https://openalex.org/W3162390021","https://openalex.org/W2007201594","https://openalex.org/W3004259773","https://openalex.org/W2029918824","https://openalex.org/W2183294551","https://openalex.org/W3190416268","https://openalex.org/W2076889969"],"ngrams_url":"https://api.openalex.org/works/W4361269188/ngrams","abstract_inverted_index":{"Ecological":[0],"restoration":[1,18,21,54,130],"is":[2,162],"essential":[3],"to":[4,26,36,49,68,96,155],"curb":[5],"the":[6,14,39,59,172],"decline":[7],"of":[8,41],"biodiversity":[9],"and":[10,87,99,165],"ecosystems":[11],"worldwide.":[12],"Since":[13],"resources":[15],"available":[16,35,170],"for":[17,53,72,129],"are":[19,34],"limited,":[20],"efforts":[22],"must":[23],"be":[24],"cost‐effective":[25],"achieve":[27],"conservation":[28],"outcomes.":[29],"Although":[30],"decision":[31,64,167],"support":[32,65,168],"tools":[33,52],"aid":[37],"in":[38,118,140],"design":[40],"protected":[42],"areas,":[43],"little":[44],"progress":[45],"has":[46],"been":[47],"made":[48],"provide":[50],"such":[51],"efforts.":[55],"Here,":[56],"we":[57,125],"introduce":[58],"restoptr":[60,159],"R":[61,160,174],"package,":[62],"a":[63,103,115,141,163],"tool":[66,169],"designed":[67],"identify":[69,82,93],"priority":[70,127],"areas":[71,128],"ecological":[73,86],"restoration.":[74],"It":[75],"uses":[76],"constraint":[77],"programming—an":[78],"artificial":[79],"intelligence":[80],"technique—to":[81],"optimal":[83],"plans":[84],"given":[85],"socioeconomic":[88],"constraints.":[89],"Critically,":[90],"it":[91],"can":[92],"strategic":[94],"locations":[95],"enhance":[97],"connectivity":[98],"reduce":[100],"fragmentation":[101,135],"across":[102],"broader":[104],"landscape":[105,108],"using":[106],"complex":[107],"metrics.":[109],"We":[110,144],"illustrate":[111],"its":[112],"usage":[113],"with":[114],"case":[116],"study":[117],"New":[119],"Caledonia.":[120],"By":[121],"applying":[122],"this":[123],"tool,":[124],"identified":[126],"that":[131,147],"could":[132,151],"reverse":[133],"forest":[134],"induced":[136],"by":[137],"mining":[138],"activities":[139],"specific":[142],"area.":[143],"also":[145],"found":[146],"relatively":[148],"small":[149],"investments":[150],"deliver":[152],"large":[153],"returns":[154],"restore":[156],"connectivity.":[157],"The":[158],"package":[161],"free":[164],"open‐source":[166],"on":[171],"Comprehensive":[173],"Archive":[175],"Network":[176],"(":[177],"https://cran.r-project.org/package=restoptr":[178],").":[179]},"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W4361269188","counts_by_year":[],"updated_date":"2023-12-16T12:28:50.307997","created_date":"2023-03-31"}},"citation_counts":{"https://doi.org/10.1111/rec.13910":0},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/116526","html_url":"https://ost.ecosyste.ms/projects/116526"}