{"id":36464,"name":"ForestGapR","description":"An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis.","url":"https://github.com/carlos-alberto-silva/ForestGapR","last_synced_at":"2026-04-13T17:30:16.586Z","repository":{"id":152359877,"uuid":"162212015","full_name":"carlos-alberto-silva/ForestGapR","owner":"carlos-alberto-silva","description":"ForestGapR: An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis ","archived":false,"fork":false,"pushed_at":"2024-02-11T20:09:09.000Z","size":7550,"stargazers_count":30,"open_issues_count":5,"forks_count":18,"subscribers_count":6,"default_branch":"master","last_synced_at":"2026-03-31T11:02:08.004Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carlos-alberto-silva.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-12-18T01:24:08.000Z","updated_at":"2025-02-26T20:14:25.000Z","dependencies_parsed_at":"2023-10-11T01:51:55.692Z","dependency_job_id":"d3dab54d-f7cf-43d8-b347-b2ce5671162e","html_url":"https://github.com/carlos-alberto-silva/ForestGapR","commit_stats":{"total_commits":174,"total_committers":7,"mean_commits":"24.857142857142858","dds":"0.45977011494252873","last_synced_commit":"c18ee2597265e6855307a88d4d77bac73a3b9d11"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/carlos-alberto-silva/ForestGapR","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carlos-alberto-silva","download_url":"https://codeload.github.com/carlos-alberto-silva/ForestGapR/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31560476,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":"carlos-alberto-silva","name":"Carlos Alberto Silva","uuid":"6352657","kind":"user","description":"","email":"","website":"https://carlos-alberto-silva.github.io/silvalab/home.html","location":null,"twitter":"Web_LiDAR","company":"University of Florida","icon_url":"https://avatars.githubusercontent.com/u/6352657?u=28948b7a8b0191b479566ae7072946dcea472ed9\u0026v=4","repositories_count":100,"last_synced_at":"2024-06-11T16:00:08.654Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/carlos-alberto-silva","funding_links":[],"total_stars":389,"followers":105,"following":1,"created_at":"2023-04-10T08:49:05.651Z","updated_at":"2024-06-11T16:00:11.152Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carlos-alberto-silva","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carlos-alberto-silva/repositories"},"packages":[{"id":11729330,"name":"github.com/carlos-alberto-silva/ForestGapR","ecosystem":"go","description":null,"homepage":null,"licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/carlos-alberto-silva/ForestGapR","keywords_array":[],"namespace":null,"versions_count":8,"first_release_published_at":"2025-06-04T10:54:35.913Z","latest_release_published_at":"2021-10-02T18:13:36.000Z","latest_release_number":"v0.1.6","last_synced_at":"2026-04-10T16:00:52.917Z","created_at":"2025-06-04T10:54:32.551Z","updated_at":"2026-04-10T16:00:52.918Z","registry_url":"https://pkg.go.dev/github.com/carlos-alberto-silva/ForestGapR","install_command":"go get github.com/carlos-alberto-silva/ForestGapR","documentation_url":"https://pkg.go.dev/github.com/carlos-alberto-silva/ForestGapR#section-documentation","metadata":{},"repo_metadata":{"id":152359877,"uuid":"162212015","full_name":"carlos-alberto-silva/ForestGapR","owner":"carlos-alberto-silva","description":"ForestGapR: An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis ","archived":false,"fork":false,"pushed_at":"2024-02-11T20:09:09.000Z","size":7550,"stargazers_count":30,"open_issues_count":5,"forks_count":18,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-26T02:50:53.032Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carlos-alberto-silva.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-12-18T01:24:08.000Z","updated_at":"2025-02-26T20:14:25.000Z","dependencies_parsed_at":"2023-10-11T01:51:55.692Z","dependency_job_id":"d3dab54d-f7cf-43d8-b347-b2ce5671162e","html_url":"https://github.com/carlos-alberto-silva/ForestGapR","commit_stats":{"total_commits":174,"total_committers":7,"mean_commits":"24.857142857142858","dds":"0.45977011494252873","last_synced_commit":"c18ee2597265e6855307a88d4d77bac73a3b9d11"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carlos-alberto-silva","download_url":"https://codeload.github.com/carlos-alberto-silva/ForestGapR/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":257390016,"owners_count":22539092,"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:40.796Z","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/carlos-alberto-silva/%21forest%21gap%21r","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/carlos-alberto-silva/ForestGapR","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/carlos-alberto-silva/ForestGapR","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/carlos-alberto-silva/ForestGapR/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-06-04T07:06:13.028Z","issues_count":4,"pull_requests_count":23,"avg_time_to_close_issue":1982317.0,"avg_time_to_close_pull_request":1014144.4285714285,"issues_closed_count":1,"pull_requests_closed_count":21,"pull_request_authors_count":5,"issue_authors_count":4,"avg_comments_per_issue":1.0,"avg_comments_per_pull_request":0.21739130434782608,"merged_pull_requests_count":14,"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/carlos-alberto-silva%2FForestGapR/issues","maintainers":[{"login":"atkinsjeff","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/atkinsjeff"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fcarlos-alberto-silva%2FForestGapR/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fcarlos-alberto-silva%2FForestGapR/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fcarlos-alberto-silva%2FForestGapR/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fcarlos-alberto-silva%2FForestGapR/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fcarlos-alberto-silva%2FForestGapR/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2095529,"maintainers_count":0,"namespaces_count":780937,"keywords_count":112785,"github":"golang","metadata":{"funded_packages_count":53472},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-12T05:07:59.798Z","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":11729333,"name":"github.com/carlos-alberto-silva/forestgapr","ecosystem":"go","description":null,"homepage":null,"licenses":null,"normalized_licenses":[],"repository_url":"https://github.com/carlos-alberto-silva/forestgapr","keywords_array":[],"namespace":null,"versions_count":8,"first_release_published_at":"2021-03-26T01:06:44.000Z","latest_release_published_at":"2021-10-02T18:13:36.000Z","latest_release_number":"v0.1.6","last_synced_at":"2026-04-10T16:00:48.385Z","created_at":"2025-06-04T10:54:32.756Z","updated_at":"2026-04-10T16:00:48.385Z","registry_url":"https://pkg.go.dev/github.com/carlos-alberto-silva/forestgapr","install_command":"go get github.com/carlos-alberto-silva/forestgapr","documentation_url":"https://pkg.go.dev/github.com/carlos-alberto-silva/forestgapr#section-documentation","metadata":{},"repo_metadata":{"id":152359877,"uuid":"162212015","full_name":"carlos-alberto-silva/ForestGapR","owner":"carlos-alberto-silva","description":"ForestGapR: An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis ","archived":false,"fork":false,"pushed_at":"2024-02-11T20:09:09.000Z","size":7550,"stargazers_count":30,"open_issues_count":5,"forks_count":18,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-06-02T14:56:42.508Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/carlos-alberto-silva.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-12-18T01:24:08.000Z","updated_at":"2025-02-26T20:14:25.000Z","dependencies_parsed_at":"2023-10-11T01:51:55.692Z","dependency_job_id":"d3dab54d-f7cf-43d8-b347-b2ce5671162e","html_url":"https://github.com/carlos-alberto-silva/ForestGapR","commit_stats":{"total_commits":174,"total_committers":7,"mean_commits":"24.857142857142858","dds":"0.45977011494252873","last_synced_commit":"c18ee2597265e6855307a88d4d77bac73a3b9d11"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/carlos-alberto-silva","download_url":"https://codeload.github.com/carlos-alberto-silva/ForestGapR/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":257956305,"owners_count":22627550,"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:20.965Z","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/carlos-alberto-silva/forestgapr","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/carlos-alberto-silva/forestgapr","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/carlos-alberto-silva/forestgapr","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/carlos-alberto-silva/forestgapr/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-06-04T07:06:13.028Z","issues_count":4,"pull_requests_count":23,"avg_time_to_close_issue":1982317.0,"avg_time_to_close_pull_request":1014144.4285714285,"issues_closed_count":1,"pull_requests_closed_count":21,"pull_request_authors_count":5,"issue_authors_count":4,"avg_comments_per_issue":1.0,"avg_comments_per_pull_request":0.21739130434782608,"merged_pull_requests_count":14,"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/carlos-alberto-silva%2FForestGapR/issues","maintainers":[{"login":"atkinsjeff","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/atkinsjeff"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fcarlos-alberto-silva%2Fforestgapr/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fcarlos-alberto-silva%2Fforestgapr/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fcarlos-alberto-silva%2Fforestgapr/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fcarlos-alberto-silva%2Fforestgapr/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fcarlos-alberto-silva%2Fforestgapr/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2095529,"maintainers_count":0,"namespaces_count":780937,"keywords_count":112785,"github":"golang","metadata":{"funded_packages_count":53472},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-12T05:07:59.798Z","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"}}],"commits":{"id":1347521,"full_name":"carlos-alberto-silva/ForestGapR","default_branch":"master","total_commits":174,"total_committers":7,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":24.857142857142858,"dds":0.45977011494252873,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-04-10T16:10:09.398Z","last_synced_commit":"c18ee2597265e6855307a88d4d77bac73a3b9d11","created_at":"2023-09-12T10:07:07.179Z","updated_at":"2026-04-10T16:09:34.905Z","committers":[{"name":"Carlos Alberto Silva","email":"carlos_engflorestal@outlook.com","login":"carlos-alberto-silva","count":94},{"name":"Lucy Beese","email":"143455800+lucybeese","login":"lucybeese","count":43},{"name":"Caio Hamamura","email":"caiohamamura@gmail.com","login":"caiohamamura","count":21},{"name":"rubenvalpue","email":"rv314@cam.ac.uk","login":null,"count":7},{"name":"Rubén Valbuena","email":"r.valbuena@bangor.ac.uk","login":"rubenvalpue","count":4},{"name":"atkinsjeff","email":"jwatkins6@vcu.edu","login":"atkinsjeff","count":4},{"name":"Attilio Benini","email":"attilio.benini@gmx.net","login":"a-benini","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-12T00:00:14.515Z","repositories_count":6212930,"commits_count":903992435,"contributors_count":34944772,"owners_count":1143939,"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":"carlos-alberto-silva/ForestGapR","html_url":"https://github.com/carlos-alberto-silva/ForestGapR","last_synced_at":"2026-03-23T07:02:22.818Z","status":"error","issues_count":4,"pull_requests_count":23,"avg_time_to_close_issue":1982317.0,"avg_time_to_close_pull_request":1014144.4285714285,"issues_closed_count":1,"pull_requests_closed_count":21,"pull_request_authors_count":5,"issue_authors_count":4,"avg_comments_per_issue":1.0,"avg_comments_per_pull_request":0.21739130434782608,"merged_pull_requests_count":14,"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-09-12T10:07:12.076Z","updated_at":"2026-03-23T07:02:22.818Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/carlos-alberto-silva%2FForestGapR/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":4},"pull_request_author_associations_count":{"CONTRIBUTOR":19,"NONE":5,"COLLABORATOR":2},"issue_authors":{"mcgregorian1":1,"spono":1,"FloFranz":1,"niekkoelewijn":1},"pull_request_authors":{"rubenvalpue":11,"lucybeese":7,"a-benini":5,"atkinsjeff":2,"rubak":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-12T00:00:13.218Z","repositories_count":14229433,"issues_count":34652480,"pull_requests_count":113158146,"authors_count":11233080,"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":"atkinsjeff","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/atkinsjeff"}],"active_maintainers":[]},"events":{"total":{"WatchEvent":2},"last_year":{}},"keywords":[],"dependencies":[{"ecosystem":"cran","filepath":"DESCRIPTION","sha":null,"kind":"manifest","created_at":"2023-09-23T11:02:16.921Z","updated_at":"2023-09-23T11:02:16.921Z","repository_link":"https://github.com/carlos-alberto-silva/ForestGapR/blob/master/DESCRIPTION","dependencies":[{"id":13897437758,"package_name":"R","ecosystem":"cran","requirements":"\u003e= 3.4.0","direct":true,"kind":"depends","optional":false},{"id":13897437759,"package_name":"graphics","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":13897437760,"package_name":"igraph","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":13897437761,"package_name":"poweRlaw","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":13897438051,"package_name":"raster","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":13897438052,"package_name":"sp","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":13897438053,"package_name":"spatstat.explore","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":13897438417,"package_name":"spatstat.geom","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":13897438666,"package_name":"stats","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":13897438667,"package_name":"VGAM","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":13897438672,"package_name":"viridis","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false}]}],"score":null,"created_at":"2023-09-12T07:47:40.815Z","updated_at":"2026-04-13T17:30:16.601Z","avatar_url":"https://github.com/carlos-alberto-silva.png","language":"R","category":"Biosphere","sub_category":"Forest Remote Sensing","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"![](https://github.com/carlos-alberto-silva/ForestGapR/blob/master/readme/fig_1.png)\u003cbr/\u003e\n\n![Github](https://img.shields.io/badge/CRAN-0.0.3-green.svg)\n![Github](https://img.shields.io/badge/Github-0.0.3-green.svg)\n[![Rdoc](https://www.rdocumentation.org/badges/version/ForestGapR)](https://www.rdocumentation.org/packages/ForestGapR)\n![licence](https://img.shields.io/badge/Licence-GPL--3-blue.svg) \n![R_Forge](https://img.shields.io/badge/R_Forge-0.0.3-green.svg) \n![Downloads](https://cranlogs.r-pkg.org/badges/grand-total/ForestGapR)\n\nForestGapR: An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis \n\nAuthors: Carlos Alberto, Ekena Rangel, Midhun Mohan, Danilo Roberti Alves de Almeida, Eben North Broadbent, \nWan Shafrina Wan Mohd Jaafar, Adrian Cardil, Ruben Valbuena, Toby Jackson, Carine Klauberg, Caio Hamamura and Lucy Beese.\n\nThe GapForestR package provides functions to i) automate canopy gaps detection, ii) compute a series of forest canopy gap statistics, including gap-size frequency distributions and spatial distribution, iii) map gap dynamics (when multi-temporal ALS data are available), and iv) convert the data among spatial formats.\n\n## Installation\n```r\n#The development version:\nlibrary(devtools)\ndevtools::install_github(\"carlos-alberto-silva/ForestGapR\")\n\n#The CRAN version:\ninstall.packages(\"ForestGapR\")\n```    \n\n## Getting Started\n\n### Forest Canopy Gap Detection\n```r\n#Loading terra and viridis library\nlibrary(terra)\nlibrary(viridis)\n\n# ALS-derived CHM over Adolpho Ducke Forest Reserve - Brazilian tropical forest\ndata(ALS_CHM_DUC)\n\n# Plotting chm\nplot(ALS_CHM_DUC, col=viridis(10))\n \n# Setting height thresholds (e.g. 10 meters)\nthreshold\u003c-10\nsize\u003c-c(1,1000) # m2\n\n# Detecting forest gaps\ngaps_duc\u003c-getForestGaps(chm_layer=ALS_CHM_DUC, threshold=threshold, size=size)\n\n# Plotting gaps\nplot(gaps_duc, col=\"red\", add=TRUE, main=\"Forest Canopy Gap\", legend=FALSE)\n```\n![](https://github.com/carlos-alberto-silva/ForestGapR/blob/master/readme/Fig_2.png)\n\n### Forest Canopy Gaps Stats\nThis function computes a series of forest canopy gap statistics\n\nList of forest gaps statistics:\n  #gap_id: gap id;\n  #gap_area - area of gap (m2);\n  #chm_max - Maximum canopy height (m) within gap boundary;\n  #chm_min - Minimum canopy height (m) within gap boundary;\n  #chm_mean - Mean canopy height (m) within gap boundary;\n  #chm_sd - Standard Deviation of canopy height (m) within gap boundary;\n  #chm_range - Range of canopy height (m) within gap boundary\n\n```r\n#Loading terra library\nlibrary(terra)\n\n# ALS-derived CHM over Adolpho Ducke Forest Reserve - Brazilian tropical forest\ndata(ALS_CHM_DUC)\n\n# Setting height thresholds (e.g. 10 meters)\nthreshold\u003c-10\nsize\u003c-c(5,1000) # m2\n\n# Detecting forest gaps\ngaps_duc\u003c-getForestGaps(chm_layer=ALS_CHM_DUC, threshold=threshold, size=size)\n\n# Computing basic statistis of forest gap\ngaps_stats\u003c-GapStats(gap_layer=gaps_duc, chm_layer=ALS_CHM_DUC)\n```\n    ##    gap_id gap_area chm_max chm_min chm_mean chm_sd chm_gini chm_range\n    ## 1       1       34    9.22    1.09     5.12   2.61     0.30      8.13\n    ## 2       2        6    8.17    6.06     7.40   0.74     0.06      2.11\n    ## 3       3        5    9.96    7.42     8.85   1.23     0.08      2.54\n    ## 4       4       32    9.91    4.42     8.12   1.69     0.12      5.49\n    ## 5       5       11    9.83    6.23     8.48   1.09     0.07      3.60\n    ## 6       6       44    9.72    1.92     7.31   1.60     0.12      7.80\n    ## 7       7        6    9.88    8.81     9.49   0.40     0.02      1.07\n    ## 8       8        6    9.07    3.10     7.02   2.96     0.22      5.97\n    ## 9       9       10    9.52    2.86     8.03   2.22     0.13      6.66\n    ## 10     10       18    9.90    2.74     5.06   2.18     0.23      7.16\n    ## 11     11       13    9.91    1.75     5.47   2.94     0.31      8.16\n    ## 12     12       10    9.92    3.75     7.77   2.27     0.16      6.17\n    ## 13     13       66    9.94    0.99     5.31   2.91     0.32      8.95\n    ## 14     14        7   10.00    5.83     7.41   1.53     0.12      4.17\n    ## 15     15       12    9.65    5.61     7.97   1.43     0.10      4.04\n    ## 16     16        7    8.64    5.64     7.67   0.97     0.07      3.00\n    ## 17     17       21    8.42    0.40     6.02   2.23     0.20      8.02\n    ## 18     18        6    7.39    3.37     5.03   1.82     0.21      4.02\n    ## 19     19        5    9.07    4.91     7.74   1.65     0.12      4.16\n    ## 20     20       36    9.90    2.10     6.62   2.45     0.21      7.80\n    ## 21     21        5    9.71    8.43     9.19   0.57     0.04      1.28\n    ## 22     22       12    9.83    7.42     8.39   0.85     0.06      2.41\n    ## 23     23       15    9.25    7.81     8.56   0.48     0.03      1.44\n    ## 24     24       27    9.43    0.26     2.37   2.55     0.56      9.17\n    ## 25     25        5    4.54    2.43     3.78   0.80     0.12      2.11\n    ## 26     26        7    9.98    6.34     8.40   1.07     0.07      3.64\n    ## 27     27       25    9.76    3.78     7.67   1.13     0.07      5.98\n    ## 28     28        6    9.49    4.92     7.23   1.56     0.13      4.57\n    ## 29     29       22    9.76    3.78     5.96   1.97     0.18      5.98\n    ## 30     30        6    5.73    2.69     4.46   1.28     0.17      3.04\n    ## 31     31        7    9.41    7.72     8.44   0.56     0.04      1.69\n    ## 32     32       57    9.89    1.97     5.70   2.62     0.26      7.92\n    ## 33     33       38    9.68    0.25     4.58   2.07     0.24      9.43\n    ## 34     34        8    9.83    4.88     6.55   1.54     0.13      4.95\n    ## 35     35        6    9.66    8.26     9.16   0.48     0.03      1.40\n\n \n### Forest Canopy Gap-size Frequency Distributions\n\n```r\n#Loading terra library\nlibrary(terra)\n\n# ALS-derived CHM over Adolpho Ducke Forest Reserve - Brazilian tropical forest\ndata(ALS_CHM_DUC)\n\n# set height thresholds (e.g. 10 meters)\nthreshold\u003c-10\nsize\u003c-c(1,1000) # m2\n\n# Detecting forest gaps\ngaps_duc\u003c-getForestGaps(chm_layer=ALS_CHM_DUC, threshold=threshold, size=size)\n\n# Computing basic statistis of forest gap\ngaps_stats\u003c-GapStats(gap_layer=gaps_duc, chm_layer=ALS_CHM_DUC)\n\n# Gap-size Frequency Distributions\nGapSizeFDist(gaps_stats=gaps_stats, method=\"Hanel_2017\", col=\"forestgreen\", pch=16, cex=1,\naxes=FALSE,ylab=\"Gap Frequency\",xlab=as.expression(bquote(\"Gap Size\" ~ (m^2) )))\naxis(1);axis(2)\ngrid(4,4)\n```\n![](https://github.com/carlos-alberto-silva/ForestGapR/blob/master/readme/Fig_3.png)\n\n\n### Forest Canopy Gaps as Spatial Polygons\n```r\n#Loading terra and viridis libraries\nlibrary(terra)\nlibrary(viridis)\n\n# ALS-derived CHM over Adolpho Ducke Forest Reserve - Brazilian tropical forest\ndata(ALS_CHM_DUC)\n\n# set height thresholds (e.g. 10 meters)\nthreshold\u003c-10\nsize\u003c-c(4,1000) # m2\n\n# Detecting forest gaps\ngaps_duc\u003c-getForestGaps(chm_layer=ALS_CHM_DUC, threshold=threshold, size=size)\n\n# Converting SpatRaster layer to SpatialPolygonsDataFrame\ngaps_spdf\u003c-GapSPDF(gap_layer=gaps_duc)\n\n# Plotting ALS-derived CHM and forest gaps\nplot(ALS_CHM_DUC, col=viridis(10), xlim=c(173025,173125), ylim=c(9673100,96731200))\nplot(gaps_spdf, add=TRUE, border=\"red\", lwd=2)\n```\n![](https://github.com/carlos-alberto-silva/ForestGapR/blob/master/readme/fig_5.png)\n\n```r\n# Populating the attribute table of Gaps_spdf with gaps statistics\ngaps_stats\u003c-GapStats(gap_layer=gaps_duc, chm_layer=ALS_CHM_DUC)\ngaps_spdf\u003c-merge(gaps_spdf,gaps_stats, by=\"gap_id\")\nhead(gaps_spdf@data)\n```\n    ##    gap_id        x       y gap_area chm_max chm_min chm_mean chm_sd chm_gini chm_range\n    ## 1       1 173088.7 9673197       34    9.22    1.09     5.12   2.61     0.30      8.13\n    ## 10     10 173044.2 9673143       18    9.90    2.74     5.06   2.18     0.23      7.16\n    ## 11     11 173038.7 9673143       13    9.91    1.75     5.47   2.94     0.31      8.16\n    ## 12     12 173182.0 9673138       10    9.92    3.75     7.77   2.27     0.16      6.17\n    ## 13     13 173067.7 9673121       66    9.94    0.99     5.31   2.91     0.32      8.95\n    ## 14     14 173179.9 9673132        7   10.00    5.83     7.41   1.53     0.12      4.17\n\n### Forest Gap Change Detection\n```r\n#Loading terra and viridis libraries\nlibrary(terra)\nlibrary(viridis)\n\n# ALS-derived CHM from Fazenda Cauxi - Brazilian tropical forest\ndata(ALS_CHM_CAU_2012)\ndata(ALS_CHM_CAU_2014)\n\n# set height thresholds (e.g. 10 meters)\nthreshold\u003c-10\nsize\u003c-c(1,1000) # m2\n\n# Detecting forest gaps\ngaps_cau2012\u003c-getForestGaps(chm_layer=ALS_CHM_CAU_2012, threshold=threshold, size=size)\ngaps_cau2014\u003c-getForestGaps(chm_layer=ALS_CHM_CAU_2014, threshold=threshold, size=size)\n\n# Detecting forest gaps changes\nGap_changes\u003c-GapChangeDec(gap_layer1=gaps_cau2012,gap_layer2=gaps_cau2014)\n\n# Plotting ALS-derived CHM and forest gaps\npar(mfrow=c(1,3))\nplot(ALS_CHM_CAU_2012, main=\"Forest Canopy Gap - 2012\", col=viridis(10))\nplot(gaps_cau2012, add=TRUE, col=\"red\", legend=FALSE)\n\nplot(ALS_CHM_CAU_2014,  main=\"Forest Canopy Gap - 2014\", col=viridis(10))\nplot(gaps_cau2014, add=TRUE,col=\"blue\", legend=FALSE)\n\nplot(ALS_CHM_CAU_2014,main=\"Forest Gaps Changes Detection\",col=viridis(10))\nplot(Gap_changes, add=TRUE, col=\"yellow\", legend=FALSE)\n```\n![](https://github.com/carlos-alberto-silva/ForestGapR/blob/master/readme/fig_4.png)\n\n### Spatial Pattern of Forest Canopy Gaps\n```r\n#Loading terra and viridis libraries\nlibrary(terra)\nlibrary(viridis)\n\n# ALS-derived CHM from Fazenda Cauxi - Brazilian tropical forest\ndata(ALS_CHM_CAU_2012)\ndata(ALS_CHM_CAU_2014)\n\n# set height thresholds (e.g. 10 meters)\nthreshold \u003c- 10\nsize \u003c- c(1,1000) # m2\n\n# Detecting forest gaps\ngaps_cau2012 \u003c- getForestGaps(chm_layer = ALS_CHM_CAU_2012, threshold=threshold, size=size)\ngaps_cau2014 \u003c- getForestGaps(chm_layer = ALS_CHM_CAU_2014, threshold=threshold, size=size)\n\n# Converting raster layers to SpatialPolygonsDataFrame\ngaps_cau2012_spdf \u003c- GapSPDF(gap_layer = gaps_cau2012)\ngaps_cau2014_spdf \u003c- GapSPDF(gap_layer = gaps_cau2014)\n\n# Spatial pattern analysis of each year\ngaps_cau2012_SpatPattern \u003c- GapsSpatPattern(gaps_cau2012_spdf, ALS_CHM_CAU_2012)\ngaps_cau2014_SpatPattern \u003c- GapsSpatPattern(gaps_cau2014_spdf, ALS_CHM_CAU_2014)\n```\n\u003e Spatial Pattern in 2012\n\n\tClark-Evans test\n\tNo edge correction\n\tZ-test\n\t\n\tdata:  P\n\tR = 0.89312, p-value = 0.001022\n\talternative hypothesis: two-sided\n\n![](https://github.com/carlos-alberto-silva/ForestGapR/blob/master/readme/Fig_6a_2012.png)\n\n\u003e Spatial Pattern in 2014\n\n\tClark-Evans test\n\tNo edge correction\n\tZ-test\n\n\tdata:  P\n\tR = 1.0596, p-value = 0.2688\n\talternative hypothesis: two-sided\n\n![](https://github.com/carlos-alberto-silva/ForestGapR/blob/master/readme/Fig_6b_2014.png)\n\n\n### References\n\nSilva, C.A., Pinage,E., Mohan, M., Valbuena, R., Almeida, D., Broadbent,E., Jaafar, W., Papa, D., Cardil, A., Klauberg, C.2019. ForestGapR: An R Package for Airborne Laser Scanning-derived Tropical Forest Gaps Analysis. Methods Ecol Evolution. 10, 1347-1356 https://doi.org/10.1111/2041-210X.13211\n\nHanel,R., Corominas-Murtra, B., Liu, B., Thurner, S. Fitting power-laws in empirical data with estimators that work for all exponents,PloS one, vol. 12, no. 2, p. e0170920, 2017.https://doi.org/10.1371/journal.pone.0170920\n\nAsner, G.P., Kellner, J.R., Kennedy-Bowdoin, T., Knapp, D.E., Anderson, C. \u0026 Martin, R.E. 2013. Forest canopy  gap distributions in the Southern Peruvian Amazon. PLoS One, 8, e60875. https://doi.org/10.1371/journal.pone.0060875\n\nWhite, E.P, Enquist, B.J, Green, J.L. (2008) On estimating the exponent of powerlaw frequency distributions. Ecology 89,905-912.\nhttps://doi.org/10.1890/07-1288.1\n\nSustainable Landscape Brazil. 2018. https://www.paisagenslidar.cnptia.embrapa.br/webgis/. (accessed in August 2018).\n\n### Acknowledgements\nALS data from Adolfo Ducke (ALS_CHM_DUC) Forest Reserve and Cauaxi Forest (ALS_CHM_CAU_2012 and ALS_CHM_CAU_2014) used as exemple datasets were acquired by the Sustainable Landscapes Brazil project supported by the Brazilian Agricultural Research Corporation (EMBRAPA), the US Forest Service, USAID, and the US Department of State. \n","funding_links":[],"readme_doi_urls":["https://doi.org/10.1111/2041-210X.13211","https://doi.org/10.1371/journal.pone.0170920","https://doi.org/10.1371/journal.pone.0060875","https://doi.org/10.1890/07-1288.1"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/36464","html_url":"https://ost.ecosyste.ms/projects/36464"}