{"id":194218,"name":"TreeCrownDelineation","description":"This package performs automatic delineation of individual tree crowns in remote sensing imagery.","url":"https://github.com/awf-gaug/treecrowndelineation","last_synced_at":"2026-04-14T00:00:39.181Z","repository":{"id":61904785,"uuid":"433795635","full_name":"AWF-GAUG/TreeCrownDelineation","owner":"AWF-GAUG","description":"Individual tree crown delineation in optical remote sensing images","archived":false,"fork":false,"pushed_at":"2026-01-28T15:00:42.000Z","size":88,"stargazers_count":112,"open_issues_count":9,"forks_count":22,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-04-07T21:02:10.386Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AWF-GAUG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-12-01T11:16:12.000Z","updated_at":"2026-02-18T18:37:07.000Z","dependencies_parsed_at":"2023-11-15T13:27:44.589Z","dependency_job_id":"81eb6c75-56c2-4210-94d9-e3837fc0c13e","html_url":"https://github.com/AWF-GAUG/TreeCrownDelineation","commit_stats":{"total_commits":33,"total_committers":3,"mean_commits":11.0,"dds":"0.24242424242424243","last_synced_commit":"eb0a24529f7df581a1ee93de379f42df6be606ae"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/AWF-GAUG/TreeCrownDelineation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AWF-GAUG","download_url":"https://codeload.github.com/AWF-GAUG/TreeCrownDelineation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31776013,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"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":"AWF-GAUG","name":"AWF","uuid":"29123942","kind":"organization","description":"Chair of Forest Inventory and Remote Sensing, University of Göttingen","email":null,"website":"http://www.uni-goettingen.de/en/67094.html","location":"Göttingen, Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/29123942?v=4","repositories_count":11,"last_synced_at":"2024-05-14T00:10:28.642Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/AWF-GAUG","funding_links":[],"total_stars":65,"followers":7,"following":0,"created_at":"2023-04-26T13:57:42.776Z","updated_at":"2024-05-14T00:10:29.844Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AWF-GAUG","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AWF-GAUG/repositories"},"packages":[{"id":11729247,"name":"github.com/awf-gaug/treecrowndelineation","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/awf-gaug/treecrowndelineation","keywords_array":[],"namespace":null,"versions_count":2,"first_release_published_at":"2023-05-30T09:35:07.000Z","latest_release_published_at":"2026-01-28T14:58:54.000Z","latest_release_number":"v0.1.1","last_synced_at":"2026-04-11T23:04:10.919Z","created_at":"2025-06-04T10:54:26.192Z","updated_at":"2026-04-11T23:04:10.919Z","registry_url":"https://pkg.go.dev/github.com/awf-gaug/treecrowndelineation","install_command":"go get github.com/awf-gaug/treecrowndelineation","documentation_url":"https://pkg.go.dev/github.com/awf-gaug/treecrowndelineation#section-documentation","metadata":{},"repo_metadata":{"id":61904785,"uuid":"433795635","full_name":"AWF-GAUG/TreeCrownDelineation","owner":"AWF-GAUG","description":"Individual tree crown delineation in optical remote sensing images","archived":false,"fork":false,"pushed_at":"2024-07-26T08:47:39.000Z","size":87,"stargazers_count":106,"open_issues_count":9,"forks_count":21,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-26T14:39:45.094Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AWF-GAUG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-12-01T11:16:12.000Z","updated_at":"2025-10-25T15:08:56.000Z","dependencies_parsed_at":"2023-11-15T13:27:44.589Z","dependency_job_id":"dbb41565-4c5f-44c3-a9f2-ea1886e95eb6","html_url":"https://github.com/AWF-GAUG/TreeCrownDelineation","commit_stats":{"total_commits":33,"total_committers":3,"mean_commits":11.0,"dds":"0.24242424242424243","last_synced_commit":"eb0a24529f7df581a1ee93de379f42df6be606ae"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/AWF-GAUG/TreeCrownDelineation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AWF-GAUG","download_url":"https://codeload.github.com/AWF-GAUG/TreeCrownDelineation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281651097,"owners_count":26537966,"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","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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_record":{"login":"AWF-GAUG","name":"AWF","uuid":"29123942","kind":"organization","description":"Chair of Forest Inventory and Remote Sensing, University of Göttingen","email":null,"website":"http://www.uni-goettingen.de/en/67094.html","location":"Göttingen, Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/29123942?v=4","repositories_count":11,"last_synced_at":"2024-05-14T00:10:28.642Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/AWF-GAUG","funding_links":[],"total_stars":65,"followers":7,"following":0,"created_at":"2023-04-26T13:57:42.776Z","updated_at":"2024-05-14T00:10:29.844Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AWF-GAUG","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AWF-GAUG/repositories"},"tags":[{"name":"v0.1.0","sha":"c3d7ef9cd67ed38c3b2e09cf8d38bc219421c3ab","kind":"commit","published_at":"2023-05-30T09:35:07.000Z","download_url":"https://codeload.github.com/AWF-GAUG/TreeCrownDelineation/tar.gz/v0.1.0","html_url":"https://github.com/AWF-GAUG/TreeCrownDelineation/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AWF-GAUG/TreeCrownDelineation@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-11-10T22:04:31.318Z","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/awf-gaug/treecrowndelineation","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/awf-gaug/treecrowndelineation","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/awf-gaug/treecrowndelineation","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/awf-gaug/treecrowndelineation/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-09T20:43:09.739Z","issues_count":13,"pull_requests_count":5,"avg_time_to_close_issue":20735714.6,"avg_time_to_close_pull_request":97.0,"issues_closed_count":5,"pull_requests_closed_count":5,"pull_request_authors_count":1,"issue_authors_count":12,"avg_comments_per_issue":2.769230769230769,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":5,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":2,"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":2,"past_year_avg_comments_per_issue":4.5,"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/AWF-GAUG%2FTreeCrownDelineation/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fawf-gaug%2Ftreecrowndelineation/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fawf-gaug%2Ftreecrowndelineation/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fawf-gaug%2Ftreecrowndelineation/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fawf-gaug%2Ftreecrowndelineation/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fawf-gaug%2Ftreecrowndelineation/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2096403,"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":11729243,"name":"github.com/AWF-GAUG/TreeCrownDelineation","ecosystem":"go","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/AWF-GAUG/TreeCrownDelineation","keywords_array":[],"namespace":null,"versions_count":2,"first_release_published_at":"2023-05-30T09:35:07.000Z","latest_release_published_at":"2026-01-28T14:58:54.000Z","latest_release_number":"v0.1.1","last_synced_at":"2026-04-11T23:04:10.730Z","created_at":"2025-06-04T10:54:25.864Z","updated_at":"2026-04-11T23:04:10.730Z","registry_url":"https://pkg.go.dev/github.com/AWF-GAUG/TreeCrownDelineation","install_command":"go get github.com/AWF-GAUG/TreeCrownDelineation","documentation_url":"https://pkg.go.dev/github.com/AWF-GAUG/TreeCrownDelineation#section-documentation","metadata":{},"repo_metadata":{"id":61904785,"uuid":"433795635","full_name":"AWF-GAUG/TreeCrownDelineation","owner":"AWF-GAUG","description":"Individual tree crown delineation in optical remote sensing images","archived":false,"fork":false,"pushed_at":"2024-07-26T08:47:39.000Z","size":87,"stargazers_count":106,"open_issues_count":9,"forks_count":21,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-11-02T18:02:40.864Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AWF-GAUG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-12-01T11:16:12.000Z","updated_at":"2025-10-25T15:08:56.000Z","dependencies_parsed_at":"2023-11-15T13:27:44.589Z","dependency_job_id":"dbb41565-4c5f-44c3-a9f2-ea1886e95eb6","html_url":"https://github.com/AWF-GAUG/TreeCrownDelineation","commit_stats":{"total_commits":33,"total_committers":3,"mean_commits":11.0,"dds":"0.24242424242424243","last_synced_commit":"eb0a24529f7df581a1ee93de379f42df6be606ae"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/AWF-GAUG/TreeCrownDelineation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AWF-GAUG","download_url":"https://codeload.github.com/AWF-GAUG/TreeCrownDelineation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":283073600,"owners_count":26774726,"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","status":"online","status_checked_at":"2025-11-06T02:00:06.180Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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_record":{"login":"AWF-GAUG","name":"AWF","uuid":"29123942","kind":"organization","description":"Chair of Forest Inventory and Remote Sensing, University of Göttingen","email":null,"website":"http://www.uni-goettingen.de/en/67094.html","location":"Göttingen, Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/29123942?v=4","repositories_count":11,"last_synced_at":"2024-05-14T00:10:28.642Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/AWF-GAUG","funding_links":[],"total_stars":65,"followers":7,"following":0,"created_at":"2023-04-26T13:57:42.776Z","updated_at":"2024-05-14T00:10:29.844Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AWF-GAUG","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AWF-GAUG/repositories"},"tags":[{"name":"v0.1.0","sha":"c3d7ef9cd67ed38c3b2e09cf8d38bc219421c3ab","kind":"commit","published_at":"2023-05-30T09:35:07.000Z","download_url":"https://codeload.github.com/AWF-GAUG/TreeCrownDelineation/tar.gz/v0.1.0","html_url":"https://github.com/AWF-GAUG/TreeCrownDelineation/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/AWF-GAUG/TreeCrownDelineation@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-11-10T22:04:28.077Z","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/%21a%21w%21f-%21g%21a%21u%21g/%21tree%21crown%21delineation","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/AWF-GAUG/TreeCrownDelineation","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/AWF-GAUG/TreeCrownDelineation","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/AWF-GAUG/TreeCrownDelineation/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-09T20:43:09.739Z","issues_count":13,"pull_requests_count":5,"avg_time_to_close_issue":20735714.6,"avg_time_to_close_pull_request":97.0,"issues_closed_count":5,"pull_requests_closed_count":5,"pull_request_authors_count":1,"issue_authors_count":12,"avg_comments_per_issue":2.769230769230769,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":5,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":2,"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":2,"past_year_avg_comments_per_issue":4.5,"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/AWF-GAUG%2FTreeCrownDelineation/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FAWF-GAUG%2FTreeCrownDelineation/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FAWF-GAUG%2FTreeCrownDelineation/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FAWF-GAUG%2FTreeCrownDelineation/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FAWF-GAUG%2FTreeCrownDelineation/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FAWF-GAUG%2FTreeCrownDelineation/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2096403,"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":1556411,"full_name":"awf-gaug/treecrowndelineation","default_branch":"master","total_commits":34,"total_committers":3,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":11.333333333333334,"dds":0.2647058823529411,"past_year_total_commits":1,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":1.0,"past_year_dds":0.0,"last_synced_at":"2026-04-11T23:00:54.916Z","last_synced_commit":"9092535f0fb383429bc155054d795fcf8697657a","created_at":"2024-06-11T00:11:14.039Z","updated_at":"2026-04-11T23:00:53.753Z","committers":[{"name":"Max Freudenberg","email":"maximilian.freudenberg@uni-goettingen.de","login":null,"count":25},{"name":"Max Freudenberg","email":"67329240+maxfreu","login":"maxfreu","count":8},{"name":"Ferdinand Schenck","email":"fwschenck@gmail.com","login":"fnands","count":1}],"past_year_committers":[{"name":"Ferdinand Schenck","email":"fwschenck@gmail.com","login":"fnands","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/awf-gaug%2Ftreecrowndelineation/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-14T00:00:07.982Z","repositories_count":6213131,"commits_count":903865199,"contributors_count":34932934,"owners_count":1144171,"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":"AWF-GAUG/TreeCrownDelineation","html_url":"https://github.com/AWF-GAUG/TreeCrownDelineation","last_synced_at":"2026-03-19T12:00:23.137Z","status":"error","issues_count":14,"pull_requests_count":6,"avg_time_to_close_issue":17283384.666666668,"avg_time_to_close_pull_request":3592.6666666666665,"issues_closed_count":6,"pull_requests_closed_count":6,"pull_request_authors_count":2,"issue_authors_count":13,"avg_comments_per_issue":2.642857142857143,"avg_comments_per_pull_request":0.16666666666666666,"merged_pull_requests_count":6,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":2,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":21735.0,"past_year_avg_time_to_close_pull_request":21071.0,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":5.0,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"created_at":"2024-05-14T00:07:53.502Z","updated_at":"2026-03-19T12:00:23.138Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/AWF-GAUG%2FTreeCrownDelineation/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":12,"CONTRIBUTOR":2},"pull_request_author_associations_count":{"CONTRIBUTOR":6},"issue_authors":{"maxfreu":2,"mardanismx":1,"efukatsu":1,"harshgrovr":1,"JPPereira93":1,"daveida":1,"crlna16":1,"jppereira93-wfs":1,"LarrySil":1,"linakrisztian":1,"Coder-GAN":1,"Kadircanidrisoglu":1,"adminmyw":1},"pull_request_authors":{"maxfreu":5,"fnands":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-03T00:00:08.051Z","repositories_count":14066445,"issues_count":34438640,"pull_requests_count":112515071,"authors_count":11220338,"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":{"NONE":2},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":1},"past_year_issue_authors":{"daveida":1,"jppereira93-wfs":1},"past_year_pull_request_authors":{"fnands":1},"maintainers":[],"active_maintainers":[]},"events":{"total":{"ForkEvent":2,"IssuesEvent":3,"WatchEvent":20,"IssueCommentEvent":7},"last_year":{"IssuesEvent":2,"WatchEvent":8,"IssueCommentEvent":3}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-10-23T10:00:24.420Z","updated_at":"2022-10-23T10:00:24.420Z","repository_link":"https://github.com/AWF-GAUG/TreeCrownDelineation/blob/master/requirements.txt","dependencies":[{"id":6478475752,"package_name":"torch","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475753,"package_name":"pytorch_lightning","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475754,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475755,"package_name":"segmentation_models_pytorch","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475756,"package_name":"albumentations","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475757,"package_name":"xarray","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475758,"package_name":"rasterio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475759,"package_name":"rioxarray","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475760,"package_name":"shapely","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475761,"package_name":"gdal","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475762,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475763,"package_name":"scikit-image","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475764,"package_name":"hyperopt","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475765,"package_name":"fiona","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6478475766,"package_name":"psutil","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2023-11-15T13:27:39.978Z","updated_at":"2023-11-15T13:27:39.978Z","repository_link":"https://github.com/AWF-GAUG/TreeCrownDelineation/blob/master/environment.yml","dependencies":[{"id":14513399084,"package_name":"absl-py","ecosystem":"pypi","requirements":"==1.0.0","direct":true,"kind":"runtime","optional":false},{"id":14513399085,"package_name":"aiohttp","ecosystem":"pypi","requirements":"==3.8.1","direct":true,"kind":"runtime","optional":false},{"id":14513399086,"package_name":"aiosignal","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":14513399087,"package_name":"albumentations","ecosystem":"pypi","requirements":"==1.1.0","direct":true,"kind":"runtime","optional":false},{"id":14513399088,"package_name":"async-timeout","ecosystem":"pypi","requirements":"==4.0.2","direct":true,"kind":"runtime","optional":false},{"id":14513399089,"package_name":"cachetools","ecosystem":"pypi","requirements":"==4.2.4","direct":true,"kind":"runtime","optional":false},{"id":14513399090,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"==2.0.10","direct":true,"kind":"runtime","optional":false},{"id":14513399091,"package_name":"efficientnet-pytorch","ecosystem":"pypi","requirements":"==0.6.3","direct":true,"kind":"runtime","optional":false},{"id":14513399092,"package_name":"fonttools","ecosystem":"pypi","requirements":"==4.29.1","direct":true,"kind":"runtime","optional":false},{"id":14513399093,"package_name":"frozenlist","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":14513399094,"package_name":"google-auth","ecosystem":"pypi","requirements":"==2.3.3","direct":true,"kind":"runtime","optional":false},{"id":14513399095,"package_name":"google-auth-oauthlib","ecosystem":"pypi","requirements":"==0.4.6","direct":true,"kind":"runtime","optional":false},{"id":14513399096,"package_name":"grpcio","ecosystem":"pypi","requirements":"==1.43.0","direct":true,"kind":"runtime","optional":false},{"id":14513399097,"package_name":"idna","ecosystem":"pypi","requirements":"==3.3","direct":true,"kind":"runtime","optional":false},{"id":14513399098,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"==4.10.1","direct":true,"kind":"runtime","optional":false},{"id":14513399099,"package_name":"joblib","ecosystem":"pypi","requirements":"==1.1.0","direct":true,"kind":"runtime","optional":false},{"id":14513399100,"package_name":"markdown","ecosystem":"pypi","requirements":"==3.3.6","direct":true,"kind":"runtime","optional":false},{"id":14513399101,"package_name":"multidict","ecosystem":"pypi","requirements":"==5.2.0","direct":true,"kind":"runtime","optional":false},{"id":14513399102,"package_name":"oauthlib","ecosystem":"pypi","requirements":"==3.1.1","direct":true,"kind":"runtime","optional":false},{"id":14513399103,"package_name":"opencv-python-headless","ecosystem":"pypi","requirements":"==4.5.5.62","direct":true,"kind":"runtime","optional":false},{"id":14513399104,"package_name":"pretrainedmodels","ecosystem":"pypi","requirements":"==0.7.4","direct":true,"kind":"runtime","optional":false},{"id":14513399107,"package_name":"protobuf","ecosystem":"pypi","requirements":"==3.19.3","direct":true,"kind":"runtime","optional":false},{"id":14513399108,"package_name":"pyasn1","ecosystem":"pypi","requirements":"==0.4.8","direct":true,"kind":"runtime","optional":false},{"id":14513399109,"package_name":"pyasn1-modules","ecosystem":"pypi","requirements":"==0.2.8","direct":true,"kind":"runtime","optional":false},{"id":14513399110,"package_name":"pydeprecate","ecosystem":"pypi","requirements":"==0.3.1","direct":true,"kind":"runtime","optional":false},{"id":14513399111,"package_name":"pyproj","ecosystem":"pypi","requirements":"==3.3.0","direct":true,"kind":"runtime","optional":false},{"id":14513399112,"package_name":"pytorch-lightning","ecosystem":"pypi","requirements":"==1.2.3","direct":true,"kind":"runtime","optional":false},{"id":14513399113,"package_name":"pytz","ecosystem":"pypi","requirements":"==2021.3","direct":true,"kind":"runtime","optional":false},{"id":14513399114,"package_name":"qudida","ecosystem":"pypi","requirements":"==0.0.4","direct":true,"kind":"runtime","optional":false},{"id":14513399115,"package_name":"requests","ecosystem":"pypi","requirements":"==2.27.1","direct":true,"kind":"runtime","optional":false},{"id":14513399116,"package_name":"requests-oauthlib","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":14513399117,"package_name":"rioxarray","ecosystem":"pypi","requirements":"==0.10.0","direct":true,"kind":"runtime","optional":false},{"id":14513399118,"package_name":"rsa","ecosystem":"pypi","requirements":"==4.8","direct":true,"kind":"runtime","optional":false},{"id":14513399119,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"==1.0.2","direct":true,"kind":"runtime","optional":false},{"id":14513399120,"package_name":"segmentation-models-pytorch","ecosystem":"pypi","requirements":"==0.2.0","direct":true,"kind":"runtime","optional":false},{"id":14513399121,"package_name":"tensorboard","ecosystem":"pypi","requirements":"==2.7.0","direct":true,"kind":"runtime","optional":false},{"id":14513399122,"package_name":"tensorboard-data-server","ecosystem":"pypi","requirements":"==0.6.1","direct":true,"kind":"runtime","optional":false},{"id":14513399123,"package_name":"tensorboard-plugin-wit","ecosystem":"pypi","requirements":"==1.8.1","direct":true,"kind":"runtime","optional":false},{"id":14513399124,"package_name":"threadpoolctl","ecosystem":"pypi","requirements":"==3.0.0","direct":true,"kind":"runtime","optional":false},{"id":14513399125,"package_name":"timm","ecosystem":"pypi","requirements":"==0.4.12","direct":true,"kind":"runtime","optional":false},{"id":14513399126,"package_name":"torchmetrics","ecosystem":"pypi","requirements":"==0.7.0","direct":true,"kind":"runtime","optional":false},{"id":14513399127,"package_name":"urllib3","ecosystem":"pypi","requirements":"==1.26.8","direct":true,"kind":"runtime","optional":false},{"id":14513399128,"package_name":"werkzeug","ecosystem":"pypi","requirements":"==2.0.2","direct":true,"kind":"runtime","optional":false},{"id":14513399129,"package_name":"wheel","ecosystem":"pypi","requirements":"==0.37.1","direct":true,"kind":"runtime","optional":false},{"id":14513399130,"package_name":"yarl","ecosystem":"pypi","requirements":"==1.7.2","direct":true,"kind":"runtime","optional":false},{"id":14513399131,"package_name":"zipp","ecosystem":"pypi","requirements":"==3.7.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-11-15T13:27:41.498Z","updated_at":"2023-11-15T13:27:41.498Z","repository_link":"https://github.com/AWF-GAUG/TreeCrownDelineation/blob/master/setup.py","dependencies":[]}],"score":null,"created_at":"2024-06-11T00:08:31.588Z","updated_at":"2026-04-14T00:00:39.186Z","avatar_url":"https://github.com/AWF-GAUG.png","language":"Python","category":"Biosphere","sub_category":"Forest Remote Sensing","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"![](https://media.springernature.com/full/springer-static/image/art%3A10.1007%2Fs00521-022-07640-4/MediaObjects/521_2022_7640_Fig3_HTML.png?as=webp)\n![](https://media.springernature.com/full/springer-static/image/art%3A10.1007%2Fs00521-022-07640-4/MediaObjects/521_2022_7640_Fig5_HTML.png?as=webp)\n\n# Individual Tree Crown Delineation via Neural Networks\n\nThis package performs automatic delineation of individual tree crowns in remote sensing imagery. It has been tested with 30cm WordView-3 images, as well as 5cm aerial images. \nThe contained method is ready for large scale application and has been published [here](https://link.springer.com/article/10.1007/s00521-022-07640-4).\n\nThis package is under development and feedback, reported issues and contributions are very welcome!\n\n***Update:*** Model weights can be downloaded [here](https://owncloud.gwdg.de/index.php/s/9cUza134XSOwZsB)\n\n## 1 Installation\nCurrently there is no pypi or conda package to install from. You therefore have to clone the package and install manually. Gdal is needed for the installation, which is easiest to install via conda. Currently, you also have to install pytorch via conda, as the pip version seems broken as of 2024-01-12.\n\n```\n# (optional) create new conda env\nconda create -n \u003cenv-name\u003e\nconda activate \u003cenv-name\u003e\n# install gdal and pytorch upfront, adapt to the latest cuda version if needed\nconda install gdal pytorch torchvision pytorch-cuda=11.8 -c pytorch -c nvidia\n\n# now there are two options: installation via pip or manual\n\n# 1) install via pip, including the remaining dependencies\npip install git+https://git@github.com/AWF-GAUG/TreeCrownDelineation.git\n\n# 2) manual install with latest source\ncd \u003cpath where you want to keep the package\u003e \ngit clone git@github.com:AWF-GAUG/TreeCrownDelineation.git\ncd ./TreeCrownDelineation\n\n# run the package installation, which will also install the dependencies\npython ./setup.py install\n```\n\n## 2 Training a model from scratch\n\nThe package is designed to work with georeferenced imagery and vector data and the training data generation workflow is adapted to that. The neural network expects raster images as input and we need to generate a tree cover mask, tree crown outlines and a distance transform as traning targets. Departing from your target imagery, the workflow looks as follows (we used QGIS):\n\n### 2.1 Training data generation\n1. Select training data plots, e.g. rectangular tiles of 100m x 100m\n2. Create a vector layer containing the plot outlines and save it as ESRI shapefile or similar.\n3. Delineate all trees within the tiles, if possible. Tree groups can be labeled as one polygon, but there should be e.g. a 'class' column which could for example be set to 0 for trees and 1 for groups or similar.\n4. Save the vector data as ESRI shapefile, sqlite or similar.\n5. Now you have to generate four types of raster imagery by using the provided scripts (see steps 6-9):\n   1. The image tiles\n   2. The tree cover masks\n   3. The tree crown outlines\n   4. The distance transform\n   \n   Prepare following folder structure:\n    ```\n    data/\n    ├── tiles/\n    │   ├── tile_1.tif\n    │   ├── tile_2.tif\n    │   └── ...\n    ├── masks/\n    │   ├── mask_1.tif\n    │   └── ...\n    ├── outlines/\n    │   ├── outline_1.tif\n    │   └── ...\n    └── dist_trafo/\n        ├── dist_trafo_1.tif\n        └── ...\n    ```\n   The partition in training and validation data will happen later, on the fly.\n6. To create the raster image tiles you can either clip them using QGIS, or use the script provided in `scripts/` like so:\n\n   `python clip_image.py -i \u003cpath to your source raster\u003e -o \u003cpath to data folder\u003e/data/tiles/tile_ -shp \u003cpath to shapefile with plots\u003e`\n7. Now we rasterize the delineated tree crowns:\n\n   `rasterize.py -i \u003cpath to data folder\u003e/tiles/* -o \u003cpath to data folder\u003e/masks/mask_ -shp \u003cpath to delineated crowns shapefile\u003e`\n\n8. Now the outlines, very similar:\n\n   `rasterize.py -i \u003cpath to data folder\u003e/tiles/* -o \u003cpath to data folder\u003e/outlines/outline_ -shp \u003cpath to delineated crowns shapefile\u003e --outlines`\n\n9. And lastly, the distance transform:\n\n   `rasterize_to_distance_transform.py -i \u003cpath to data folder\u003e/tiles/* -o \u003cpath to data folder\u003e/dist_trafo/dist_trafo_ -shp \u003cpath to delineated crowns shapefile\u003e`\n\nThe scripts provide some further options e.g. for parallel processing or rasterizing only polygons of a certain class. And yes, the process could be simplified...\n\n### 2.2 Training the model\n\nThe `training_example.py` file in `examples/` showcases how to use the freshly generated data to train a model from scratch. Currently, the script assumes your entire training data fits into memory, because often, hand labelled remote sensing data sets are small. If that's not the case with your data, create an issue.\n\nThe most notable options apart from the number of training steps, batch size etc. is whether the NDVI should be appended to the image stack and which image bands contain red and NIR. Furthermore, the NDVI can be rescaled to the interval 0..1 and the outlines can be dilated (widened) by a certain number of pixels, which influences the network performance wrt finding them. For further reference, the documentation of the respective functions should provide more info.\n\n### 2.3 Optimizing polygon extraction\nTo do\n\n## 3 Using pre-trained models\nThe weights of pre-trained models can be found [here](https://owncloud.gwdg.de/index.php/s/9cUza134XSOwZsB). You have to download them manually. The weights can be used by the inference script described below. Apart from that you can load the model via `torch.jit.load()`.\n\n## 4 Application / Inference\nApplying a trained neural network is rather simple by using the `inference.py` script, although the number of command line arguments is a bit overwhelming. We have to tell the script, which polygon extraction setting we want to use; look at the script's documentation to find out more by typing `inference.py -h`. It is possible to use several models at once, averaging the results, which improves performance.\n\nOptional parameters (look at the paper for more info):\n- `-ndvi` whether or not to concat the NDVI\n- `-red` red band index (starting from 0)\n- `-nir` nir band index (starting from 0)\n- `--min-dist` minimum distance between trees in pixels\n- `-sigma` Gaussian blur standard deviation in pixels\n- `-l` label threshold\n- `-b` binary masking threshold\n- `--divide-by` divide input by this value\n- `--rescale-ndvi` rescale the NDVI to the intercal 0..1\n\nExample call for a RGB-NIR image, appending the NDVI and dividing the input by 255:\n\n`inference.py -i \u003clarge input image here\u003e -o \u003coutput file path and name\u003e -m \u003cpath to model file(s)\u003e -ndvi -red 0 -ndvi 3 --divide-by 255`\n\n## 5 Evaluation\nTo do\n\n## Citation\nIf you use this work in any way, please mention this citation:\n```\n@article{freudenberg2022individual,\n  title={Individual tree crown delineation in high-resolution remote sensing images based on U-Net},\n  author={Freudenberg, Maximilian and Magdon, Paul and Nölke, Nils},\n  journal={NCAA},\n  year={2022},\n  publisher={Springer},\n  doi={https://doi.org/10.1007/s00521-022-07640-4}\n}\n```\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.1007/s00521-022-07640-4"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/194218","html_url":"https://ost.ecosyste.ms/projects/194218"}