{"id":314699,"name":"Restor Foundation Tree Crown Delineation Pipeline","description":"A powerful and easy-to-use pipeline for detecting individual trees and tree canopy in aerial images.","url":"https://github.com/restor-foundation/tcd","last_synced_at":"2026-06-14T12:30:21.654Z","repository":{"id":248857963,"uuid":"547398827","full_name":"Restor-Foundation/tcd","owner":"Restor-Foundation","description":"Restor's ML pipeline for tree crown mapping in aerial images","archived":false,"fork":false,"pushed_at":"2026-03-07T06:47:26.000Z","size":31555,"stargazers_count":43,"open_issues_count":4,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-30T05:03:00.606Z","etag":null,"topics":["conservation","ecology","forest","segmentation","tree","tree-mapping"],"latest_commit_sha":null,"homepage":"https://restor-foundation.github.io/tcd/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Restor-Foundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-10-07T16:07:24.000Z","updated_at":"2026-05-29T08:42:32.000Z","dependencies_parsed_at":"2025-02-17T03:20:54.914Z","dependency_job_id":"52fcfe99-9bdf-4fd7-94c4-72dbce1f64e9","html_url":"https://github.com/Restor-Foundation/tcd","commit_stats":null,"previous_names":["restor-foundation/tcd"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Restor-Foundation/tcd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Restor-Foundation%2Ftcd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Restor-Foundation%2Ftcd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Restor-Foundation%2Ftcd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Restor-Foundation%2Ftcd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Restor-Foundation","download_url":"https://codeload.github.com/Restor-Foundation/tcd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Restor-Foundation%2Ftcd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33762215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"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":{"login":"Restor-Foundation","name":"restor","uuid":"75027896","kind":"organization","description":"An open data platform of ecological insights for the global restoration movement.","email":null,"website":"https://restor.eco","location":"Zürich, Switzerland","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/75027896?v=4","repositories_count":1,"last_synced_at":"2023-11-17T11:36:44.794Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/Restor-Foundation","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-11-17T11:36:44.799Z","updated_at":"2023-11-17T11:36:44.799Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Restor-Foundation","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Restor-Foundation/repositories"},"packages":[],"commits":{"id":9751496,"full_name":"restor-foundation/tcd","default_branch":"main","total_commits":506,"total_committers":10,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":50.6,"dds":0.1462450592885376,"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-06-11T11:02:49.667Z","last_synced_commit":"05dab754a3fd15b83d6b7606de7310155f4e2df2","created_at":"2025-04-20T00:12:58.462Z","updated_at":"2026-06-11T11:01:52.885Z","committers":[{"name":"Josh Veitch-Michaelis","email":"j.veitchmichaelis@gmail.com","login":"jveitchmichaelis","count":432},{"name":"Josh Veitch-Michaelis","email":"josh@restor.eco","login":null,"count":44},{"name":"Jasper","email":"jdekoninck@student.ethz.ch","login":null,"count":13},{"name":"Calvin Zhang","email":"chenbocalvinzhang@gmail.com","login":"calvincbzhang","count":7},{"name":"Jasper Dekoninck","email":"dekoninck.jasper@protonmail.com","login":"JasperDekoninck","count":3},{"name":"earens","email":"49277057+earens","login":"earens","count":2},{"name":"Benjamin Dayan","email":"benjamin.l.dayan@gmail.com","login":"BenjiDayan","count":2},{"name":"Tom Pitts","email":"tom.d.pitts@gmail.com","login":"tomdpitts","count":1},{"name":"Clemens Mosig","email":"clemens.mosig@uni-leipzig.de","login":"cmosig","count":1},{"name":"Andrew Cottam","email":"andrew@restor.eco","login":"andrewcottam","count":1}],"past_year_committers":[{"name":"Tom Pitts","email":"tom.d.pitts@gmail.com","login":"tomdpitts","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/restor-foundation%2Ftcd/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-13T00:00:12.063Z","repositories_count":6258986,"commits_count":882470342,"contributors_count":35081377,"owners_count":1166159,"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":"restor-foundation/tcd","html_url":"https://github.com/restor-foundation/tcd","last_synced_at":"2026-04-23T12:00:37.833Z","status":"error","issues_count":19,"pull_requests_count":19,"avg_time_to_close_issue":12388279.57142857,"avg_time_to_close_pull_request":2623989.5263157897,"issues_closed_count":14,"pull_requests_closed_count":19,"pull_request_authors_count":8,"issue_authors_count":8,"avg_comments_per_issue":1.736842105263158,"avg_comments_per_pull_request":2.0,"merged_pull_requests_count":17,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":4,"past_year_pull_requests_count":3,"past_year_avg_time_to_close_issue":1840054.5,"past_year_avg_time_to_close_pull_request":3513184.6666666665,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":2.25,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"created_at":"2025-04-20T00:12:59.199Z","updated_at":"2026-04-23T12:00:37.834Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/restor-foundation%2Ftcd","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/restor-foundation%2Ftcd/issues","issue_labels_count":{"enhancement":2,"documentation":1,"bug":1},"pull_request_labels_count":{"enhancement":1},"issue_author_associations_count":{"CONTRIBUTOR":8,"NONE":7,"COLLABORATOR":4},"pull_request_author_associations_count":{"CONTRIBUTOR":11,"COLLABORATOR":6,"NONE":2},"issue_authors":{"jveitchmichaelis":4,"calvincbzhang":4,"ixsanpe":2,"cmosig":2,"earens":2,"wuhwyy":2,"isaaccorley":2,"Motzemoere":1},"pull_request_authors":{"jveitchmichaelis":6,"calvincbzhang":3,"JasperDekoninck":3,"cmosig":2,"earens":2,"AdrianLuisMueller":1,"tomdpitts":1,"andrewcottam":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-11T00:00:18.937Z","repositories_count":14790941,"issues_count":33434516,"pull_requests_count":109971450,"authors_count":11300059,"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":{"isaaccorley":2},"past_year_pull_request_authors":{"tomdpitts":1},"maintainers":[{"login":"jveitchmichaelis","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jveitchmichaelis"}],"active_maintainers":[]},"events":{"total":{"PullRequestEvent":4,"ForkEvent":4,"IssuesEvent":9,"WatchEvent":20,"IssueCommentEvent":23,"PushEvent":27,"PullRequestReviewEvent":1,"CreateEvent":1},"last_year":{"ForkEvent":2,"IssuesEvent":2,"WatchEvent":6,"IssueCommentEvent":5}},"keywords":["conservation","ecology","forest","segmentation","tree","tree-mapping"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/docker.yml","sha":null,"kind":"manifest","created_at":"2024-07-17T14:32:30.588Z","updated_at":"2024-07-17T14:32:30.588Z","repository_link":"https://github.com/Restor-Foundation/tcd/blob/main/.github/workflows/docker.yml","dependencies":[{"id":19161488100,"package_name":"docker/login-action","ecosystem":"actions","requirements":"f054a8b539a109f9f41c372932f1ae047eff08c9","direct":true,"kind":"composite","optional":false},{"id":19161488101,"package_name":"docker/metadata-action","ecosystem":"actions","requirements":"98669ae865ea3cffbcbaa878cf57c20bbf1c6c38","direct":true,"kind":"composite","optional":false},{"id":19161488102,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":19161488103,"package_name":"docker/build-push-action","ecosystem":"actions","requirements":"ad44023a93711e3deb337508980b4b5e9bcdc5dc","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/python-test.yml","sha":null,"kind":"manifest","created_at":"2024-07-17T14:32:30.610Z","updated_at":"2024-07-17T14:32:30.610Z","repository_link":"https://github.com/Restor-Foundation/tcd/blob/main/.github/workflows/python-test.yml","dependencies":[{"id":19161488104,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":19161488105,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"docker/Dockerfile","sha":null,"kind":"manifest","created_at":"2024-07-17T14:32:37.943Z","updated_at":"2024-07-17T14:32:37.943Z","repository_link":"https://github.com/Restor-Foundation/tcd/blob/main/docker/Dockerfile","dependencies":[{"id":19161490771,"package_name":"pytorch/pytorch","ecosystem":"docker","requirements":"2.3.0-cuda12.1-cudnn8-runtime","direct":true,"kind":"build","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-07-17T14:32:40.123Z","updated_at":"2024-07-17T14:32:40.123Z","repository_link":"https://github.com/Restor-Foundation/tcd/blob/main/pyproject.toml","dependencies":[]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2024-07-17T14:32:40.160Z","updated_at":"2024-07-17T14:32:40.160Z","repository_link":"https://github.com/Restor-Foundation/tcd/blob/main/requirements.txt","dependencies":[{"id":19161491251,"package_name":"dotmap","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491252,"package_name":"wandb","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491253,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491254,"package_name":"torch","ecosystem":"pypi","requirements":"\u003e=2","direct":true,"kind":"runtime","optional":false},{"id":19161491255,"package_name":"torchvision","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491256,"package_name":"tqdm","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491257,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491258,"package_name":"pillow","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491259,"package_name":"pydantic","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491260,"package_name":"pyyaml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491261,"package_name":"rasterio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491262,"package_name":"opencv-python-headless","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491263,"package_name":"jupyter","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491264,"package_name":"jsonlines","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491265,"package_name":"notebook","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491266,"package_name":"black","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491267,"package_name":"nb-clean","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491268,"package_name":"pre-commit","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491269,"package_name":"isort","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491270,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491271,"package_name":"natsort","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491272,"package_name":"fiona","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491273,"package_name":"shapely","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491274,"package_name":"pycocotools","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491275,"package_name":"torchmetrics","ecosystem":"pypi","requirements":"\u003e=0.11","direct":true,"kind":"runtime","optional":false},{"id":19161491276,"package_name":"lightning","ecosystem":"pypi","requirements":"\u003e=2","direct":true,"kind":"runtime","optional":false},{"id":19161491277,"package_name":"hydra-core","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491278,"package_name":"scikit-image","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491279,"package_name":"albumentations","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491280,"package_name":"seaborn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491281,"package_name":"ttach","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491282,"package_name":"python-liquid","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491283,"package_name":"pyshp","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491284,"package_name":"mss","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491285,"package_name":"httpx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491286,"package_name":"rtree","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491287,"package_name":"datasets","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491288,"package_name":"transformers","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491289,"package_name":"huggingface-hub","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":19161491290,"package_name":"segmentation_models_pytorch","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"docker/environment.yaml","sha":null,"kind":"manifest","created_at":"2025-02-17T03:20:00.839Z","updated_at":"2025-02-17T03:20:00.839Z","repository_link":"https://github.com/Restor-Foundation/tcd/blob/main/docker/environment.yaml","dependencies":[{"id":21906881048,"package_name":"absl-py","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906881049,"package_name":"accelerate","ecosystem":"pypi","requirements":"==0.22.0","direct":true,"kind":"runtime","optional":false},{"id":21906881050,"package_name":"affine","ecosystem":"pypi","requirements":"==2.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906881083,"package_name":"aiohttp","ecosystem":"pypi","requirements":"==3.8.3","direct":true,"kind":"runtime","optional":false},{"id":21906881084,"package_name":"aiosignal","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906881085,"package_name":"alabaster","ecosystem":"pypi","requirements":"==0.7.13","direct":true,"kind":"runtime","optional":false},{"id":21906881088,"package_name":"albumentations","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906881089,"package_name":"antlr4-python3-runtime","ecosystem":"pypi","requirements":"==4.9.3","direct":true,"kind":"runtime","optional":false},{"id":21906881090,"package_name":"appdirs","ecosystem":"pypi","requirements":"==1.4.4","direct":true,"kind":"runtime","optional":false},{"id":21906881091,"package_name":"argcomplete","ecosystem":"pypi","requirements":"==2.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906881093,"package_name":"arrow","ecosystem":"pypi","requirements":"==1.2.3","direct":true,"kind":"runtime","optional":false},{"id":21906881094,"package_name":"astroid","ecosystem":"pypi","requirements":"==2.13.2","direct":true,"kind":"runtime","optional":false},{"id":21906881095,"package_name":"async-timeout","ecosystem":"pypi","requirements":"==4.0.2","direct":true,"kind":"runtime","optional":false},{"id":21906881096,"package_name":"babel","ecosystem":"pypi","requirements":"==2.12.1","direct":true,"kind":"runtime","optional":false},{"id":21906881097,"package_name":"bcrypt","ecosystem":"pypi","requirements":"==4.1.1","direct":true,"kind":"runtime","optional":false},{"id":21906881098,"package_name":"black","ecosystem":"pypi","requirements":"==22.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906881099,"package_name":"blessed","ecosystem":"pypi","requirements":"==1.20.0","direct":true,"kind":"runtime","optional":false},{"id":21906881101,"package_name":"blis","ecosystem":"pypi","requirements":"==0.7.9","direct":true,"kind":"runtime","optional":false},{"id":21906881102,"package_name":"cached-property","ecosystem":"pypi","requirements":"==1.5.2","direct":true,"kind":"runtime","optional":false},{"id":21906881103,"package_name":"cachetools","ecosystem":"pypi","requirements":"==5.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906881104,"package_name":"catalogue","ecosystem":"pypi","requirements":"==2.0.8","direct":true,"kind":"runtime","optional":false},{"id":21906881105,"package_name":"cffi","ecosystem":"pypi","requirements":"==1.16.0","direct":true,"kind":"runtime","optional":false},{"id":21906881106,"package_name":"cfgv","ecosystem":"pypi","requirements":"==3.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906881538,"package_name":"cleanlab","ecosystem":"pypi","requirements":"==2.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906882965,"package_name":"click","ecosystem":"pypi","requirements":"==8.1.3","direct":true,"kind":"runtime","optional":false},{"id":21906882966,"package_name":"click-plugins","ecosystem":"pypi","requirements":"==1.1.1","direct":true,"kind":"runtime","optional":false},{"id":21906882967,"package_name":"cligj","ecosystem":"pypi","requirements":"==0.7.2","direct":true,"kind":"runtime","optional":false},{"id":21906883046,"package_name":"cloudpickle","ecosystem":"pypi","requirements":"==2.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906883047,"package_name":"colorama","ecosystem":"pypi","requirements":"==0.4.6","direct":true,"kind":"runtime","optional":false},{"id":21906883048,"package_name":"commonmark","ecosystem":"pypi","requirements":"==0.9.1","direct":true,"kind":"runtime","optional":false},{"id":21906883287,"package_name":"confection","ecosystem":"pypi","requirements":"==0.0.4","direct":true,"kind":"runtime","optional":false},{"id":21906883288,"package_name":"contourpy","ecosystem":"pypi","requirements":"==1.0.5","direct":true,"kind":"runtime","optional":false},{"id":21906883289,"package_name":"coverage","ecosystem":"pypi","requirements":"==6.5.0","direct":true,"kind":"runtime","optional":false},{"id":21906883290,"package_name":"croniter","ecosystem":"pypi","requirements":"==1.3.15","direct":true,"kind":"runtime","optional":false},{"id":21906883292,"package_name":"cryptography","ecosystem":"pypi","requirements":"==41.0.7","direct":true,"kind":"runtime","optional":false},{"id":21906883293,"package_name":"cycler","ecosystem":"pypi","requirements":"==0.11.0","direct":true,"kind":"runtime","optional":false},{"id":21906883294,"package_name":"cymem","ecosystem":"pypi","requirements":"==2.0.7","direct":true,"kind":"runtime","optional":false},{"id":21906883295,"package_name":"darwin-py","ecosystem":"pypi","requirements":"==0.8.12","direct":true,"kind":"runtime","optional":false},{"id":21906883447,"package_name":"darwinpy","ecosystem":"pypi","requirements":"==0.0.1","direct":true,"kind":"runtime","optional":false},{"id":21906883448,"package_name":"datasets","ecosystem":"pypi","requirements":"==2.14.4","direct":true,"kind":"runtime","optional":false},{"id":21906883449,"package_name":"dateutils","ecosystem":"pypi","requirements":"==0.6.12","direct":true,"kind":"runtime","optional":false},{"id":21906883462,"package_name":"deepdiff","ecosystem":"pypi","requirements":"==6.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906883471,"package_name":"deprecation","ecosystem":"pypi","requirements":"==2.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906883546,"package_name":"dill","ecosystem":"pypi","requirements":"==0.3.7","direct":true,"kind":"runtime","optional":false},{"id":21906883547,"package_name":"distlib","ecosystem":"pypi","requirements":"==0.3.6","direct":true,"kind":"runtime","optional":false},{"id":21906883548,"package_name":"docker-pycreds","ecosystem":"pypi","requirements":"==0.4.0","direct":true,"kind":"runtime","optional":false},{"id":21906883665,"package_name":"docstring-parser","ecosystem":"pypi","requirements":"==0.15","direct":true,"kind":"runtime","optional":false},{"id":21906883745,"package_name":"docutils","ecosystem":"pypi","requirements":"==0.18.1","direct":true,"kind":"runtime","optional":false},{"id":21906883746,"package_name":"dotmap","ecosystem":"pypi","requirements":"==1.3.30","direct":true,"kind":"runtime","optional":false},{"id":21906883748,"package_name":"efficientnet-pytorch","ecosystem":"pypi","requirements":"==0.7.1","direct":true,"kind":"runtime","optional":false},{"id":21906883942,"package_name":"einops","ecosystem":"pypi","requirements":"==0.4.1","direct":true,"kind":"runtime","optional":false},{"id":21906883943,"package_name":"elevation","ecosystem":"pypi","requirements":"==1.1.3","direct":true,"kind":"runtime","optional":false},{"id":21906884644,"package_name":"evaluate","ecosystem":"pypi","requirements":"==0.4.0","direct":true,"kind":"runtime","optional":false},{"id":21906884646,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"==1.0.4","direct":true,"kind":"runtime","optional":false},{"id":21906884649,"package_name":"fairscale","ecosystem":"pypi","requirements":"==0.4.12","direct":true,"kind":"runtime","optional":false},{"id":21906884743,"package_name":"fastai","ecosystem":"pypi","requirements":"==2.7.12","direct":true,"kind":"runtime","optional":false},{"id":21906884744,"package_name":"fastapi","ecosystem":"pypi","requirements":"==0.88.0","direct":true,"kind":"runtime","optional":false},{"id":21906884745,"package_name":"fastcore","ecosystem":"pypi","requirements":"==1.5.29","direct":true,"kind":"runtime","optional":false},{"id":21906884746,"package_name":"fastdownload","ecosystem":"pypi","requirements":"==0.0.7","direct":true,"kind":"runtime","optional":false},{"id":21906884747,"package_name":"fasteners","ecosystem":"pypi","requirements":"==0.18","direct":true,"kind":"runtime","optional":false},{"id":21906884835,"package_name":"fastprogress","ecosystem":"pypi","requirements":"==1.0.3","direct":true,"kind":"runtime","optional":false},{"id":21906884836,"package_name":"ffmpy","ecosystem":"pypi","requirements":"==0.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906884837,"package_name":"filelock","ecosystem":"pypi","requirements":"==3.8.0","direct":true,"kind":"runtime","optional":false},{"id":21906884838,"package_name":"fiona","ecosystem":"pypi","requirements":"==1.8.21","direct":true,"kind":"runtime","optional":false},{"id":21906884852,"package_name":"focal-loss-torch","ecosystem":"pypi","requirements":"==0.1.2","direct":true,"kind":"runtime","optional":false},{"id":21906885250,"package_name":"fonttools","ecosystem":"pypi","requirements":"==4.37.4","direct":true,"kind":"runtime","optional":false},{"id":21906885251,"package_name":"frozenlist","ecosystem":"pypi","requirements":"==1.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906885252,"package_name":"fsspec","ecosystem":"pypi","requirements":"==2023.12.1","direct":true,"kind":"runtime","optional":false},{"id":21906885253,"package_name":"future","ecosystem":"pypi","requirements":"==0.18.2","direct":true,"kind":"runtime","optional":false},{"id":21906885254,"package_name":"fvcore","ecosystem":"pypi","requirements":"==0.1.5.post20220512","direct":true,"kind":"runtime","optional":false},{"id":21906885256,"package_name":"gcsfs","ecosystem":"pypi","requirements":"==2022.8.2","direct":true,"kind":"runtime","optional":false},{"id":21906885281,"package_name":"ghp-import","ecosystem":"pypi","requirements":"==2.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906885282,"package_name":"gitdb","ecosystem":"pypi","requirements":"==4.0.9","direct":true,"kind":"runtime","optional":false},{"id":21906885283,"package_name":"gitpython","ecosystem":"pypi","requirements":"==3.1.31","direct":true,"kind":"runtime","optional":false},{"id":21906885284,"package_name":"google-api-core","ecosystem":"pypi","requirements":"==2.10.2","direct":true,"kind":"runtime","optional":false},{"id":21906885285,"package_name":"google-api-python-client","ecosystem":"pypi","requirements":"==2.65.0","direct":true,"kind":"runtime","optional":false},{"id":21906885286,"package_name":"google-auth","ecosystem":"pypi","requirements":"==2.12.0","direct":true,"kind":"runtime","optional":false},{"id":21906885287,"package_name":"google-auth-httplib2","ecosystem":"pypi","requirements":"==0.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906885288,"package_name":"google-auth-oauthlib","ecosystem":"pypi","requirements":"==0.4.6","direct":true,"kind":"runtime","optional":false},{"id":21906885289,"package_name":"google-cloud-core","ecosystem":"pypi","requirements":"==2.3.2","direct":true,"kind":"runtime","optional":false},{"id":21906885290,"package_name":"google-cloud-storage","ecosystem":"pypi","requirements":"==2.7.0","direct":true,"kind":"runtime","optional":false},{"id":21906885291,"package_name":"google-crc32c","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":21906885292,"package_name":"google-resumable-media","ecosystem":"pypi","requirements":"==2.4.1","direct":true,"kind":"runtime","optional":false},{"id":21906885293,"package_name":"googleapis-common-protos","ecosystem":"pypi","requirements":"==1.56.4","direct":true,"kind":"runtime","optional":false},{"id":21906885294,"package_name":"gradio","ecosystem":"pypi","requirements":"==3.12.0","direct":true,"kind":"runtime","optional":false},{"id":21906885295,"package_name":"griffe","ecosystem":"pypi","requirements":"==0.36.1","direct":true,"kind":"runtime","optional":false},{"id":21906885384,"package_name":"grpcio","ecosystem":"pypi","requirements":"==1.49.1","direct":true,"kind":"runtime","optional":false},{"id":21906885385,"package_name":"h11","ecosystem":"pypi","requirements":"==0.12.0","direct":true,"kind":"runtime","optional":false},{"id":21906885386,"package_name":"httpcore","ecosystem":"pypi","requirements":"==0.15.0","direct":true,"kind":"runtime","optional":false},{"id":21906885387,"package_name":"httplib2","ecosystem":"pypi","requirements":"==0.21.0","direct":true,"kind":"runtime","optional":false},{"id":21906885388,"package_name":"httpx","ecosystem":"pypi","requirements":"==0.23.1","direct":true,"kind":"runtime","optional":false},{"id":21906885389,"package_name":"huggingface-hub","ecosystem":"pypi","requirements":"==0.19.4","direct":true,"kind":"runtime","optional":false},{"id":21906885390,"package_name":"humanize","ecosystem":"pypi","requirements":"==4.6.0","direct":true,"kind":"runtime","optional":false},{"id":21906885558,"package_name":"hydra-core","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906885576,"package_name":"identify","ecosystem":"pypi","requirements":"==2.5.6","direct":true,"kind":"runtime","optional":false},{"id":21906885577,"package_name":"imageio","ecosystem":"pypi","requirements":"==2.22.4","direct":true,"kind":"runtime","optional":false},{"id":21906885578,"package_name":"imagesize","ecosystem":"pypi","requirements":"==1.4.1","direct":true,"kind":"runtime","optional":false},{"id":21906885666,"package_name":"importlib-resources","ecosystem":"pypi","requirements":"==5.12.0","direct":true,"kind":"runtime","optional":false},{"id":21906885799,"package_name":"iniconfig","ecosystem":"pypi","requirements":"==1.1.1","direct":true,"kind":"runtime","optional":false},{"id":21906885800,"package_name":"inquirer","ecosystem":"pypi","requirements":"==3.1.3","direct":true,"kind":"runtime","optional":false},{"id":21906886036,"package_name":"iopath","ecosystem":"pypi","requirements":"==0.1.9","direct":true,"kind":"runtime","optional":false},{"id":21906886084,"package_name":"ipyparallel","ecosystem":"pypi","requirements":"==8.6.1","direct":true,"kind":"runtime","optional":false},{"id":21906886222,"package_name":"isort","ecosystem":"pypi","requirements":"==5.10.1","direct":true,"kind":"runtime","optional":false},{"id":21906886223,"package_name":"itsdangerous","ecosystem":"pypi","requirements":"==2.1.2","direct":true,"kind":"runtime","optional":false},{"id":21906886224,"package_name":"jinja2","ecosystem":"pypi","requirements":"==3.1.2","direct":true,"kind":"runtime","optional":false},{"id":21906886225,"package_name":"joblib","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906886226,"package_name":"jsonargparse","ecosystem":"pypi","requirements":"==4.20.0","direct":true,"kind":"runtime","optional":false},{"id":21906886350,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"==1.4.4","direct":true,"kind":"runtime","optional":false},{"id":21906886351,"package_name":"kornia","ecosystem":"pypi","requirements":"==0.6.7","direct":true,"kind":"runtime","optional":false},{"id":21906886368,"package_name":"langcodes","ecosystem":"pypi","requirements":"==3.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906886369,"package_name":"laspy","ecosystem":"pypi","requirements":"==2.5.1","direct":true,"kind":"runtime","optional":false},{"id":21906886371,"package_name":"lazy-object-proxy","ecosystem":"pypi","requirements":"==1.9.0","direct":true,"kind":"runtime","optional":false},{"id":21906886387,"package_name":"liblas","ecosystem":"pypi","requirements":"==1.8.1","direct":true,"kind":"runtime","optional":false},{"id":21906886418,"package_name":"lightly","ecosystem":"pypi","requirements":"==1.2.47","direct":true,"kind":"runtime","optional":false},{"id":21906886535,"package_name":"lightly-utils","ecosystem":"pypi","requirements":"==0.0.2","direct":true,"kind":"runtime","optional":false},{"id":21906886539,"package_name":"lightning","ecosystem":"pypi","requirements":"==1.9.5","direct":true,"kind":"runtime","optional":false},{"id":21906886540,"package_name":"lightning-cloud","ecosystem":"pypi","requirements":"==0.5.36","direct":true,"kind":"runtime","optional":false},{"id":21906886542,"package_name":"lightning-utilities","ecosystem":"pypi","requirements":"==0.8.0","direct":true,"kind":"runtime","optional":false},{"id":21906886543,"package_name":"linkify-it-py","ecosystem":"pypi","requirements":"==1.0.3","direct":true,"kind":"runtime","optional":false},{"id":21906886544,"package_name":"markdown","ecosystem":"pypi","requirements":"==3.4.1","direct":true,"kind":"runtime","optional":false},{"id":21906886545,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"==2.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906886546,"package_name":"matplotlib","ecosystem":"pypi","requirements":"==3.6.2","direct":true,"kind":"runtime","optional":false},{"id":21906886547,"package_name":"mccabe","ecosystem":"pypi","requirements":"==0.7.0","direct":true,"kind":"runtime","optional":false},{"id":21906886548,"package_name":"mdit-py-plugins","ecosystem":"pypi","requirements":"==0.3.3","direct":true,"kind":"runtime","optional":false},{"id":21906886549,"package_name":"mdurl","ecosystem":"pypi","requirements":"==0.1.2","direct":true,"kind":"runtime","optional":false},{"id":21906886550,"package_name":"mergedeep","ecosystem":"pypi","requirements":"==1.3.4","direct":true,"kind":"runtime","optional":false},{"id":21906886551,"package_name":"mkdocs","ecosystem":"pypi","requirements":"==1.5.2","direct":true,"kind":"runtime","optional":false},{"id":21906886552,"package_name":"mkdocs-autorefs","ecosystem":"pypi","requirements":"==0.5.0","direct":true,"kind":"runtime","optional":false},{"id":21906886568,"package_name":"mkdocs-gen-files","ecosystem":"pypi","requirements":"==0.5.0","direct":true,"kind":"runtime","optional":false},{"id":21906886576,"package_name":"mkdocs-literate-nav","ecosystem":"pypi","requirements":"==0.6.0","direct":true,"kind":"runtime","optional":false},{"id":21906886812,"package_name":"mkdocs-material","ecosystem":"pypi","requirements":"==9.2.8","direct":true,"kind":"runtime","optional":false},{"id":21906886813,"package_name":"mkdocs-material-extensions","ecosystem":"pypi","requirements":"==1.1.1","direct":true,"kind":"runtime","optional":false},{"id":21906886814,"package_name":"mkdocs-section-index","ecosystem":"pypi","requirements":"==0.3.6","direct":true,"kind":"runtime","optional":false},{"id":21906886851,"package_name":"mkdocstrings","ecosystem":"pypi","requirements":"==0.23.0","direct":true,"kind":"runtime","optional":false},{"id":21906886852,"package_name":"mkdocstrings-python","ecosystem":"pypi","requirements":"==1.6.2","direct":true,"kind":"runtime","optional":false},{"id":21906886906,"package_name":"mss","ecosystem":"pypi","requirements":"==7.0.1","direct":true,"kind":"runtime","optional":false},{"id":21906886930,"package_name":"multidict","ecosystem":"pypi","requirements":"==6.0.2","direct":true,"kind":"runtime","optional":false},{"id":21906886931,"package_name":"multiprocess","ecosystem":"pypi","requirements":"==0.70.15","direct":true,"kind":"runtime","optional":false},{"id":21906886932,"package_name":"munch","ecosystem":"pypi","requirements":"==2.5.0","direct":true,"kind":"runtime","optional":false},{"id":21906886936,"package_name":"murmurhash","ecosystem":"pypi","requirements":"==1.0.9","direct":true,"kind":"runtime","optional":false},{"id":21906886937,"package_name":"mypy","ecosystem":"pypi","requirements":"==0.991","direct":true,"kind":"runtime","optional":false},{"id":21906886938,"package_name":"mypy-extensions","ecosystem":"pypi","requirements":"==0.4.3","direct":true,"kind":"runtime","optional":false},{"id":21906886939,"package_name":"natsort","ecosystem":"pypi","requirements":"==8.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906886984,"package_name":"nb-clean","ecosystem":"pypi","requirements":"==2.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906887092,"package_name":"networkx","ecosystem":"pypi","requirements":"==2.8.8","direct":true,"kind":"runtime","optional":false},{"id":21906887093,"package_name":"nodeenv","ecosystem":"pypi","requirements":"==1.7.0","direct":true,"kind":"runtime","optional":false},{"id":21906887123,"package_name":"numexpr","ecosystem":"pypi","requirements":"==2.8.5","direct":true,"kind":"runtime","optional":false},{"id":21906887143,"package_name":"numpy","ecosystem":"pypi","requirements":"==1.23.0","direct":true,"kind":"runtime","optional":false},{"id":21906887144,"package_name":"nvidia-cublas-cu11","ecosystem":"pypi","requirements":"==11.10.3.66","direct":true,"kind":"runtime","optional":false},{"id":21906887155,"package_name":"nvidia-cuda-nvrtc-cu11","ecosystem":"pypi","requirements":"==11.7.99","direct":true,"kind":"runtime","optional":false},{"id":21906887255,"package_name":"nvidia-cuda-runtime-cu11","ecosystem":"pypi","requirements":"==11.7.99","direct":true,"kind":"runtime","optional":false},{"id":21906887368,"package_name":"nvidia-cudnn-cu11","ecosystem":"pypi","requirements":"==8.5.0.96","direct":true,"kind":"runtime","optional":false},{"id":21906887693,"package_name":"oauthlib","ecosystem":"pypi","requirements":"==3.2.1","direct":true,"kind":"runtime","optional":false},{"id":21906887694,"package_name":"omegaconf","ecosystem":"pypi","requirements":"==2.2.3","direct":true,"kind":"runtime","optional":false},{"id":21906887695,"package_name":"opencv-python","ecosystem":"pypi","requirements":"==4.7.0.68","direct":true,"kind":"runtime","optional":false},{"id":21906887696,"package_name":"ordered-set","ecosystem":"pypi","requirements":"==4.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906887697,"package_name":"orjson","ecosystem":"pypi","requirements":"==3.8.6","direct":true,"kind":"runtime","optional":false},{"id":21906887698,"package_name":"paginate","ecosystem":"pypi","requirements":"==0.5.6","direct":true,"kind":"runtime","optional":false},{"id":21906887699,"package_name":"pandas","ecosystem":"pypi","requirements":"==1.5.1","direct":true,"kind":"runtime","optional":false},{"id":21906887700,"package_name":"paramiko","ecosystem":"pypi","requirements":"==3.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906888336,"package_name":"pathspec","ecosystem":"pypi","requirements":"==0.11.2","direct":true,"kind":"runtime","optional":false},{"id":21906888337,"package_name":"pathtools","ecosystem":"pypi","requirements":"==0.1.2","direct":true,"kind":"runtime","optional":false},{"id":21906888348,"package_name":"pathy","ecosystem":"pypi","requirements":"==0.10.1","direct":true,"kind":"runtime","optional":false},{"id":21906888376,"package_name":"pdal-plugins","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906888380,"package_name":"pip","ecosystem":"pypi","requirements":"==23.2","direct":true,"kind":"runtime","optional":false},{"id":21906888381,"package_name":"platformdirs","ecosystem":"pypi","requirements":"==2.5.2","direct":true,"kind":"runtime","optional":false},{"id":21906888382,"package_name":"plotly","ecosystem":"pypi","requirements":"==5.11.0","direct":true,"kind":"runtime","optional":false},{"id":21906888383,"package_name":"pluggy","ecosystem":"pypi","requirements":"==1.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906888384,"package_name":"portalocker","ecosystem":"pypi","requirements":"==2.5.1","direct":true,"kind":"runtime","optional":false},{"id":21906888386,"package_name":"pre-commit","ecosystem":"pypi","requirements":"==2.20.0","direct":true,"kind":"runtime","optional":false},{"id":21906888387,"package_name":"preshed","ecosystem":"pypi","requirements":"==3.0.8","direct":true,"kind":"runtime","optional":false},{"id":21906888388,"package_name":"pretrainedmodels","ecosystem":"pypi","requirements":"==0.7.4","direct":true,"kind":"runtime","optional":false},{"id":21906888510,"package_name":"promise","ecosystem":"pypi","requirements":"==2.3","direct":true,"kind":"runtime","optional":false},{"id":21906888544,"package_name":"protobuf","ecosystem":"pypi","requirements":"==3.19.6","direct":true,"kind":"runtime","optional":false},{"id":21906888545,"package_name":"pyarrow","ecosystem":"pypi","requirements":"==13.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906888546,"package_name":"pyasn1","ecosystem":"pypi","requirements":"==0.4.8","direct":true,"kind":"runtime","optional":false},{"id":21906888547,"package_name":"pyasn1-modules","ecosystem":"pypi","requirements":"==0.2.8","direct":true,"kind":"runtime","optional":false},{"id":21906888548,"package_name":"pycocotools","ecosystem":"pypi","requirements":"==2.0.7","direct":true,"kind":"runtime","optional":false},{"id":21906888549,"package_name":"pycryptodome","ecosystem":"pypi","requirements":"==3.16.0","direct":true,"kind":"runtime","optional":false},{"id":21906888550,"package_name":"pydantic","ecosystem":"pypi","requirements":"==1.10.5","direct":true,"kind":"runtime","optional":false},{"id":21906888551,"package_name":"pydeprecate","ecosystem":"pypi","requirements":"==0.3.2","direct":true,"kind":"runtime","optional":false},{"id":21906888995,"package_name":"pydocstyle","ecosystem":"pypi","requirements":"==6.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906889061,"package_name":"pydot","ecosystem":"pypi","requirements":"==1.4.2","direct":true,"kind":"runtime","optional":false},{"id":21906889062,"package_name":"pydub","ecosystem":"pypi","requirements":"==0.25.1","direct":true,"kind":"runtime","optional":false},{"id":21906889063,"package_name":"pygments","ecosystem":"pypi","requirements":"==2.16.1","direct":true,"kind":"runtime","optional":false},{"id":21906889064,"package_name":"pyjwt","ecosystem":"pypi","requirements":"==2.7.0","direct":true,"kind":"runtime","optional":false},{"id":21906889065,"package_name":"pylint","ecosystem":"pypi","requirements":"==2.15.10","direct":true,"kind":"runtime","optional":false},{"id":21906889066,"package_name":"pymdown-extensions","ecosystem":"pypi","requirements":"==10.3","direct":true,"kind":"runtime","optional":false},{"id":21906889067,"package_name":"pynacl","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":21906889068,"package_name":"pyproj","ecosystem":"pypi","requirements":"==3.4.0","direct":true,"kind":"runtime","optional":false},{"id":21906889082,"package_name":"pytest","ecosystem":"pypi","requirements":"==7.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906889083,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"==4.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906889084,"package_name":"python-decouple","ecosystem":"pypi","requirements":"==3.6","direct":true,"kind":"runtime","optional":false},{"id":21906889085,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"==0.21.0","direct":true,"kind":"runtime","optional":false},{"id":21906889086,"package_name":"python-editor","ecosystem":"pypi","requirements":"==1.0.4","direct":true,"kind":"runtime","optional":false},{"id":21906889449,"package_name":"python-liquid","ecosystem":"pypi","requirements":"==1.5.1","direct":true,"kind":"runtime","optional":false},{"id":21906889498,"package_name":"python-multipart","ecosystem":"pypi","requirements":"==0.0.5","direct":true,"kind":"runtime","optional":false},{"id":21906889499,"package_name":"pytorch-lightning","ecosystem":"pypi","requirements":"==2.0.2","direct":true,"kind":"runtime","optional":false},{"id":21906889500,"package_name":"pywavelets","ecosystem":"pypi","requirements":"==1.4.1","direct":true,"kind":"runtime","optional":false},{"id":21906889675,"package_name":"pyyaml","ecosystem":"pypi","requirements":"==6.0","direct":true,"kind":"runtime","optional":false},{"id":21906889676,"package_name":"pyyaml-env-tag","ecosystem":"pypi","requirements":"==0.1","direct":true,"kind":"runtime","optional":false},{"id":21906889677,"package_name":"qudida","ecosystem":"pypi","requirements":"==0.0.4","direct":true,"kind":"runtime","optional":false},{"id":21906889706,"package_name":"rasterio","ecosystem":"pypi","requirements":"==1.3.2","direct":true,"kind":"runtime","optional":false},{"id":21906889707,"package_name":"readchar","ecosystem":"pypi","requirements":"==4.0.5","direct":true,"kind":"runtime","optional":false},{"id":21906891681,"package_name":"regex","ecosystem":"pypi","requirements":"==2023.8.8","direct":true,"kind":"runtime","optional":false},{"id":21906891684,"package_name":"reportlab","ecosystem":"pypi","requirements":"==3.6.12","direct":true,"kind":"runtime","optional":false},{"id":21906891686,"package_name":"requests","ecosystem":"pypi","requirements":"==2.31.0","direct":true,"kind":"runtime","optional":false},{"id":21906891688,"package_name":"requests-oauthlib","ecosystem":"pypi","requirements":"==1.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906891690,"package_name":"responses","ecosystem":"pypi","requirements":"==0.18.0","direct":true,"kind":"runtime","optional":false},{"id":21906892144,"package_name":"rfc3986","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":21906892180,"package_name":"rich","ecosystem":"pypi","requirements":"==13.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906892181,"package_name":"rsa","ecosystem":"pypi","requirements":"==4.9","direct":true,"kind":"runtime","optional":false},{"id":21906892182,"package_name":"rtree","ecosystem":"pypi","requirements":"==1.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906892926,"package_name":"safetensors","ecosystem":"pypi","requirements":"==0.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906892927,"package_name":"scikit-image","ecosystem":"pypi","requirements":"==0.19.3","direct":true,"kind":"runtime","optional":false},{"id":21906892928,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"==1.1.2","direct":true,"kind":"runtime","optional":false},{"id":21906892929,"package_name":"scipy","ecosystem":"pypi","requirements":"==1.9.2","direct":true,"kind":"runtime","optional":false},{"id":21906892930,"package_name":"seaborn","ecosystem":"pypi","requirements":"==0.12.1","direct":true,"kind":"runtime","optional":false},{"id":21906892931,"package_name":"segmentation-models-pytorch","ecosystem":"pypi","requirements":"==0.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906893217,"package_name":"sentry-sdk","ecosystem":"pypi","requirements":"==1.9.10","direct":true,"kind":"runtime","optional":false},{"id":21906893219,"package_name":"setproctitle","ecosystem":"pypi","requirements":"==1.3.2","direct":true,"kind":"runtime","optional":false},{"id":21906893583,"package_name":"shapely","ecosystem":"pypi","requirements":"==1.8.4","direct":true,"kind":"runtime","optional":false},{"id":21906893587,"package_name":"shortuuid","ecosystem":"pypi","requirements":"==1.0.9","direct":true,"kind":"runtime","optional":false},{"id":21906893593,"package_name":"smart-open","ecosystem":"pypi","requirements":"==6.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906893594,"package_name":"smmap","ecosystem":"pypi","requirements":"==5.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906893595,"package_name":"snowballstemmer","ecosystem":"pypi","requirements":"==2.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906893601,"package_name":"snuggs","ecosystem":"pypi","requirements":"==1.4.7","direct":true,"kind":"runtime","optional":false},{"id":21906893602,"package_name":"spacy","ecosystem":"pypi","requirements":"==3.5.2","direct":true,"kind":"runtime","optional":false},{"id":21906893603,"package_name":"spacy-legacy","ecosystem":"pypi","requirements":"==3.0.12","direct":true,"kind":"runtime","optional":false},{"id":21906893604,"package_name":"spacy-loggers","ecosystem":"pypi","requirements":"==1.0.4","direct":true,"kind":"runtime","optional":false},{"id":21906893605,"package_name":"sphinx","ecosystem":"pypi","requirements":"==7.2.5","direct":true,"kind":"runtime","optional":false},{"id":21906893623,"package_name":"sphinx-rtd-theme","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906893850,"package_name":"sphinxcontrib-applehelp","ecosystem":"pypi","requirements":"==1.0.7","direct":true,"kind":"runtime","optional":false},{"id":21906893863,"package_name":"sphinxcontrib-devhelp","ecosystem":"pypi","requirements":"==1.0.5","direct":true,"kind":"runtime","optional":false},{"id":21906893901,"package_name":"sphinxcontrib-htmlhelp","ecosystem":"pypi","requirements":"==2.0.4","direct":true,"kind":"runtime","optional":false},{"id":21906893972,"package_name":"sphinxcontrib-jquery","ecosystem":"pypi","requirements":"==4.1","direct":true,"kind":"runtime","optional":false},{"id":21906893974,"package_name":"sphinxcontrib-jsmath","ecosystem":"pypi","requirements":"==1.0.1","direct":true,"kind":"runtime","optional":false},{"id":21906893988,"package_name":"sphinxcontrib-qthelp","ecosystem":"pypi","requirements":"==1.0.6","direct":true,"kind":"runtime","optional":false},{"id":21906894006,"package_name":"sphinxcontrib-serializinghtml","ecosystem":"pypi","requirements":"==1.1.9","direct":true,"kind":"runtime","optional":false},{"id":21906894022,"package_name":"srsly","ecosystem":"pypi","requirements":"==2.4.6","direct":true,"kind":"runtime","optional":false},{"id":21906894023,"package_name":"starlette","ecosystem":"pypi","requirements":"==0.22.0","direct":true,"kind":"runtime","optional":false},{"id":21906894024,"package_name":"starsessions","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906894026,"package_name":"startinpy","ecosystem":"pypi","requirements":"==0.8.0","direct":true,"kind":"runtime","optional":false},{"id":21906894028,"package_name":"tabulate","ecosystem":"pypi","requirements":"==0.9.0","direct":true,"kind":"runtime","optional":false},{"id":21906894029,"package_name":"tcd-pipeline","ecosystem":"pypi","requirements":"==0.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906894031,"package_name":"tenacity","ecosystem":"pypi","requirements":"==8.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906894032,"package_name":"tensorboard","ecosystem":"pypi","requirements":"==2.10.1","direct":true,"kind":"runtime","optional":false},{"id":21906894033,"package_name":"tensorboard-data-server","ecosystem":"pypi","requirements":"==0.6.1","direct":true,"kind":"runtime","optional":false},{"id":21906894034,"package_name":"tensorboard-plugin-wit","ecosystem":"pypi","requirements":"==1.8.1","direct":true,"kind":"runtime","optional":false},{"id":21906894037,"package_name":"tensorboardx","ecosystem":"pypi","requirements":"==2.6","direct":true,"kind":"runtime","optional":false},{"id":21906894039,"package_name":"termcolor","ecosystem":"pypi","requirements":"==2.0.1","direct":true,"kind":"runtime","optional":false},{"id":21906894040,"package_name":"thinc","ecosystem":"pypi","requirements":"==8.1.9","direct":true,"kind":"runtime","optional":false},{"id":21906894041,"package_name":"threadpoolctl","ecosystem":"pypi","requirements":"==3.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906894042,"package_name":"tifffile","ecosystem":"pypi","requirements":"==2022.10.10","direct":true,"kind":"runtime","optional":false},{"id":21906894043,"package_name":"timm","ecosystem":"pypi","requirements":"==0.4.12","direct":true,"kind":"runtime","optional":false},{"id":21906894044,"package_name":"tokenizers","ecosystem":"pypi","requirements":"==0.13.3","direct":true,"kind":"runtime","optional":false},{"id":21906894045,"package_name":"tomlkit","ecosystem":"pypi","requirements":"==0.11.6","direct":true,"kind":"runtime","optional":false},{"id":21906894046,"package_name":"torch","ecosystem":"pypi","requirements":"==1.13.1","direct":true,"kind":"runtime","optional":false},{"id":21906894047,"package_name":"torchgeo","ecosystem":"pypi","requirements":"==0.4.1","direct":true,"kind":"runtime","optional":false},{"id":21906894049,"package_name":"torchmetrics","ecosystem":"pypi","requirements":"==1.0.1","direct":true,"kind":"runtime","optional":false},{"id":21906894050,"package_name":"torchtext","ecosystem":"pypi","requirements":"==0.14.1","direct":true,"kind":"runtime","optional":false},{"id":21906894056,"package_name":"torchvision","ecosystem":"pypi","requirements":"==0.14.1","direct":true,"kind":"runtime","optional":false},{"id":21906894057,"package_name":"tqdm","ecosystem":"pypi","requirements":"==4.64.1","direct":true,"kind":"runtime","optional":false},{"id":21906894058,"package_name":"transformers","ecosystem":"pypi","requirements":"==4.30.2","direct":true,"kind":"runtime","optional":false},{"id":21906894059,"package_name":"tta","ecosystem":"pypi","requirements":"==0.2.1","direct":true,"kind":"runtime","optional":false},{"id":21906894075,"package_name":"ttach","ecosystem":"pypi","requirements":"==0.0.3","direct":true,"kind":"runtime","optional":false},{"id":21906894076,"package_name":"typer","ecosystem":"pypi","requirements":"==0.7.0","direct":true,"kind":"runtime","optional":false},{"id":21906894077,"package_name":"typeshed-client","ecosystem":"pypi","requirements":"==2.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906894080,"package_name":"uc-micro-py","ecosystem":"pypi","requirements":"==1.0.1","direct":true,"kind":"runtime","optional":false},{"id":21906894081,"package_name":"upolygon","ecosystem":"pypi","requirements":"==0.1.8","direct":true,"kind":"runtime","optional":false},{"id":21906894092,"package_name":"uritemplate","ecosystem":"pypi","requirements":"==4.1.1","direct":true,"kind":"runtime","optional":false},{"id":21906894093,"package_name":"uvicorn","ecosystem":"pypi","requirements":"==0.20.0","direct":true,"kind":"runtime","optional":false},{"id":21906894094,"package_name":"virtualenv","ecosystem":"pypi","requirements":"==20.16.5","direct":true,"kind":"runtime","optional":false},{"id":21906894095,"package_name":"wandb","ecosystem":"pypi","requirements":"==0.15.5","direct":true,"kind":"runtime","optional":false},{"id":21906894096,"package_name":"wasabi","ecosystem":"pypi","requirements":"==1.1.1","direct":true,"kind":"runtime","optional":false},{"id":21906894097,"package_name":"watchdog","ecosystem":"pypi","requirements":"==3.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906894098,"package_name":"websockets","ecosystem":"pypi","requirements":"==10.4","direct":true,"kind":"runtime","optional":false},{"id":21906894099,"package_name":"werkzeug","ecosystem":"pypi","requirements":"==2.2.2","direct":true,"kind":"runtime","optional":false},{"id":21906894100,"package_name":"wrapt","ecosystem":"pypi","requirements":"==1.14.1","direct":true,"kind":"runtime","optional":false},{"id":21906894101,"package_name":"xxhash","ecosystem":"pypi","requirements":"==3.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906894102,"package_name":"yacs","ecosystem":"pypi","requirements":"==0.1.8","direct":true,"kind":"runtime","optional":false},{"id":21906894105,"package_name":"yarl","ecosystem":"pypi","requirements":"==1.8.1","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2025-02-17T03:20:51.384Z","updated_at":"2025-02-17T03:20:51.384Z","repository_link":"https://github.com/Restor-Foundation/tcd/blob/main/environment.yml","dependencies":[{"id":21906894108,"package_name":"absl-py","ecosystem":"pypi","requirements":"==2.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906894109,"package_name":"affine","ecosystem":"pypi","requirements":"==2.4.0","direct":true,"kind":"runtime","optional":false},{"id":21906894110,"package_name":"aiohttp","ecosystem":"pypi","requirements":"==3.9.5","direct":true,"kind":"runtime","optional":false},{"id":21906894111,"package_name":"aiosignal","ecosystem":"pypi","requirements":"==1.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906894112,"package_name":"albumentations","ecosystem":"pypi","requirements":"==1.4.7","direct":true,"kind":"runtime","optional":false},{"id":21906894113,"package_name":"annotated-types","ecosystem":"pypi","requirements":"==0.7.0","direct":true,"kind":"runtime","optional":false},{"id":21906894114,"package_name":"antlr4-python3-runtime","ecosystem":"pypi","requirements":"==4.9.3","direct":true,"kind":"runtime","optional":false},{"id":21906894115,"package_name":"anyio","ecosystem":"pypi","requirements":"==4.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906894116,"package_name":"argon2-cffi","ecosystem":"pypi","requirements":"==23.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906894117,"package_name":"argon2-cffi-bindings","ecosystem":"pypi","requirements":"==21.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906894118,"package_name":"arrow","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906894119,"package_name":"asttokens","ecosystem":"pypi","requirements":"==2.4.1","direct":true,"kind":"runtime","optional":false},{"id":21906894120,"package_name":"async-lru","ecosystem":"pypi","requirements":"==2.0.4","direct":true,"kind":"runtime","optional":false},{"id":21906894121,"package_name":"attrs","ecosystem":"pypi","requirements":"==23.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906894122,"package_name":"babel","ecosystem":"pypi","requirements":"==2.15.0","direct":true,"kind":"runtime","optional":false},{"id":21906894123,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"==4.12.3","direct":true,"kind":"runtime","optional":false},{"id":21906894124,"package_name":"black","ecosystem":"pypi","requirements":"==24.4.2","direct":true,"kind":"runtime","optional":false},{"id":21906894125,"package_name":"bleach","ecosystem":"pypi","requirements":"==6.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906894126,"package_name":"cffi","ecosystem":"pypi","requirements":"==1.16.0","direct":true,"kind":"runtime","optional":false},{"id":21906894127,"package_name":"cfgv","ecosystem":"pypi","requirements":"==3.4.0","direct":true,"kind":"runtime","optional":false},{"id":21906894128,"package_name":"click","ecosystem":"pypi","requirements":"==8.1.7","direct":true,"kind":"runtime","optional":false},{"id":21906894129,"package_name":"click-plugins","ecosystem":"pypi","requirements":"==1.1.1","direct":true,"kind":"runtime","optional":false},{"id":21906894130,"package_name":"cligj","ecosystem":"pypi","requirements":"==0.7.2","direct":true,"kind":"runtime","optional":false},{"id":21906894131,"package_name":"cloudpickle","ecosystem":"pypi","requirements":"==3.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906894132,"package_name":"comm","ecosystem":"pypi","requirements":"==0.2.2","direct":true,"kind":"runtime","optional":false},{"id":21906894133,"package_name":"contourpy","ecosystem":"pypi","requirements":"==1.2.1","direct":true,"kind":"runtime","optional":false},{"id":21906894134,"package_name":"coverage","ecosystem":"pypi","requirements":"==7.5.1","direct":true,"kind":"runtime","optional":false},{"id":21906894135,"package_name":"coverage-badge","ecosystem":"pypi","requirements":"==1.1.1","direct":true,"kind":"runtime","optional":false},{"id":21906894136,"package_name":"cycler","ecosystem":"pypi","requirements":"==0.12.1","direct":true,"kind":"runtime","optional":false},{"id":21906894137,"package_name":"datasets","ecosystem":"pypi","requirements":"==2.19.1","direct":true,"kind":"runtime","optional":false},{"id":21906894138,"package_name":"debugpy","ecosystem":"pypi","requirements":"==1.8.1","direct":true,"kind":"runtime","optional":false},{"id":21906894139,"package_name":"decorator","ecosystem":"pypi","requirements":"==5.1.1","direct":true,"kind":"runtime","optional":false},{"id":21906894140,"package_name":"defusedxml","ecosystem":"pypi","requirements":"==0.7.1","direct":true,"kind":"runtime","optional":false},{"id":21906894141,"package_name":"dill","ecosystem":"pypi","requirements":"==0.3.8","direct":true,"kind":"runtime","optional":false},{"id":21906894142,"package_name":"distlib","ecosystem":"pypi","requirements":"==0.3.8","direct":true,"kind":"runtime","optional":false},{"id":21906894143,"package_name":"docker-pycreds","ecosystem":"pypi","requirements":"==0.4.0","direct":true,"kind":"runtime","optional":false},{"id":21906894144,"package_name":"dotmap","ecosystem":"pypi","requirements":"==1.3.30","direct":true,"kind":"runtime","optional":false},{"id":21906894145,"package_name":"efficientnet-pytorch","ecosystem":"pypi","requirements":"==0.7.1","direct":true,"kind":"runtime","optional":false},{"id":21906894146,"package_name":"executing","ecosystem":"pypi","requirements":"==2.0.1","direct":true,"kind":"runtime","optional":false},{"id":21906894147,"package_name":"fastjsonschema","ecosystem":"pypi","requirements":"==2.19.1","direct":true,"kind":"runtime","optional":false},{"id":21906894148,"package_name":"fiona","ecosystem":"pypi","requirements":"==1.9.6","direct":true,"kind":"runtime","optional":false},{"id":21906894149,"package_name":"fonttools","ecosystem":"pypi","requirements":"==4.52.1","direct":true,"kind":"runtime","optional":false},{"id":21906894150,"package_name":"fqdn","ecosystem":"pypi","requirements":"==1.5.1","direct":true,"kind":"runtime","optional":false},{"id":21906894151,"package_name":"frozenlist","ecosystem":"pypi","requirements":"==1.4.1","direct":true,"kind":"runtime","optional":false},{"id":21906894152,"package_name":"fsspec","ecosystem":"pypi","requirements":"==2024.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906894153,"package_name":"fvcore","ecosystem":"pypi","requirements":"==0.1.5.post20221221","direct":true,"kind":"runtime","optional":false},{"id":21906894154,"package_name":"gitdb","ecosystem":"pypi","requirements":"==4.0.11","direct":true,"kind":"runtime","optional":false},{"id":21906894155,"package_name":"gitpython","ecosystem":"pypi","requirements":"==3.1.43","direct":true,"kind":"runtime","optional":false},{"id":21906894156,"package_name":"grpcio","ecosystem":"pypi","requirements":"==1.64.0","direct":true,"kind":"runtime","optional":false},{"id":21906894157,"package_name":"h11","ecosystem":"pypi","requirements":"==0.14.0","direct":true,"kind":"runtime","optional":false},{"id":21906894158,"package_name":"httpcore","ecosystem":"pypi","requirements":"==1.0.5","direct":true,"kind":"runtime","optional":false},{"id":21906894159,"package_name":"httpx","ecosystem":"pypi","requirements":"==0.27.0","direct":true,"kind":"runtime","optional":false},{"id":21906894160,"package_name":"huggingface-hub","ecosystem":"pypi","requirements":"==0.23.1","direct":true,"kind":"runtime","optional":false},{"id":21906894161,"package_name":"hydra-core","ecosystem":"pypi","requirements":"==1.3.2","direct":true,"kind":"runtime","optional":false},{"id":21906894162,"package_name":"identify","ecosystem":"pypi","requirements":"==2.5.36","direct":true,"kind":"runtime","optional":false},{"id":21906894163,"package_name":"imageio","ecosystem":"pypi","requirements":"==2.34.1","direct":true,"kind":"runtime","optional":false},{"id":21906894164,"package_name":"importlib-resources","ecosystem":"pypi","requirements":"==6.4.0","direct":true,"kind":"runtime","optional":false},{"id":21906894165,"package_name":"iniconfig","ecosystem":"pypi","requirements":"==2.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906894166,"package_name":"iopath","ecosystem":"pypi","requirements":"==0.1.9","direct":true,"kind":"runtime","optional":false},{"id":21906894167,"package_name":"ipykernel","ecosystem":"pypi","requirements":"==6.29.4","direct":true,"kind":"runtime","optional":false},{"id":21906894168,"package_name":"ipython","ecosystem":"pypi","requirements":"==8.24.0","direct":true,"kind":"runtime","optional":false},{"id":21906894169,"package_name":"ipywidgets","ecosystem":"pypi","requirements":"==8.1.2","direct":true,"kind":"runtime","optional":false},{"id":21906894170,"package_name":"isoduration","ecosystem":"pypi","requirements":"==20.11.0","direct":true,"kind":"runtime","optional":false},{"id":21906894171,"package_name":"isort","ecosystem":"pypi","requirements":"==5.13.2","direct":true,"kind":"runtime","optional":false},{"id":21906894172,"package_name":"jedi","ecosystem":"pypi","requirements":"==0.19.1","direct":true,"kind":"runtime","optional":false},{"id":21906894173,"package_name":"joblib","ecosystem":"pypi","requirements":"==1.4.2","direct":true,"kind":"runtime","optional":false},{"id":21906894174,"package_name":"json5","ecosystem":"pypi","requirements":"==0.9.25","direct":true,"kind":"runtime","optional":false},{"id":21906894175,"package_name":"jsonpointer","ecosystem":"pypi","requirements":"==2.4","direct":true,"kind":"runtime","optional":false},{"id":21906894176,"package_name":"jsonschema","ecosystem":"pypi","requirements":"==4.22.0","direct":true,"kind":"runtime","optional":false},{"id":21906894177,"package_name":"jsonschema-specifications","ecosystem":"pypi","requirements":"==2023.12.1","direct":true,"kind":"runtime","optional":false},{"id":21906894178,"package_name":"jupyter","ecosystem":"pypi","requirements":"==1.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906894179,"package_name":"jupyter-client","ecosystem":"pypi","requirements":"==8.6.2","direct":true,"kind":"runtime","optional":false},{"id":21906894180,"package_name":"jupyter-console","ecosystem":"pypi","requirements":"==6.6.3","direct":true,"kind":"runtime","optional":false},{"id":21906894181,"package_name":"jupyter-core","ecosystem":"pypi","requirements":"==5.7.2","direct":true,"kind":"runtime","optional":false},{"id":21906894182,"package_name":"jupyter-events","ecosystem":"pypi","requirements":"==0.10.0","direct":true,"kind":"runtime","optional":false},{"id":21906894183,"package_name":"jupyter-lsp","ecosystem":"pypi","requirements":"==2.2.5","direct":true,"kind":"runtime","optional":false},{"id":21906894184,"package_name":"jupyter-server","ecosystem":"pypi","requirements":"==2.14.0","direct":true,"kind":"runtime","optional":false},{"id":21906894185,"package_name":"jupyter-server-terminals","ecosystem":"pypi","requirements":"==0.5.3","direct":true,"kind":"runtime","optional":false},{"id":21906894186,"package_name":"jupyterlab","ecosystem":"pypi","requirements":"==4.2.1","direct":true,"kind":"runtime","optional":false},{"id":21906894187,"package_name":"jupyterlab-pygments","ecosystem":"pypi","requirements":"==0.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906894188,"package_name":"jupyterlab-server","ecosystem":"pypi","requirements":"==2.27.2","direct":true,"kind":"runtime","optional":false},{"id":21906894189,"package_name":"jupyterlab-widgets","ecosystem":"pypi","requirements":"==3.0.10","direct":true,"kind":"runtime","optional":false},{"id":21906894190,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"==1.4.5","direct":true,"kind":"runtime","optional":false},{"id":21906894191,"package_name":"lazy-loader","ecosystem":"pypi","requirements":"==0.4","direct":true,"kind":"runtime","optional":false},{"id":21906894192,"package_name":"lightning","ecosystem":"pypi","requirements":"==2.2.5","direct":true,"kind":"runtime","optional":false},{"id":21906894193,"package_name":"lightning-utilities","ecosystem":"pypi","requirements":"==0.11.2","direct":true,"kind":"runtime","optional":false},{"id":21906894194,"package_name":"markdown","ecosystem":"pypi","requirements":"==3.6","direct":true,"kind":"runtime","optional":false},{"id":21906894195,"package_name":"matplotlib","ecosystem":"pypi","requirements":"==3.9.0","direct":true,"kind":"runtime","optional":false},{"id":21906894196,"package_name":"matplotlib-inline","ecosystem":"pypi","requirements":"==0.1.7","direct":true,"kind":"runtime","optional":false},{"id":21906894197,"package_name":"mistune","ecosystem":"pypi","requirements":"==3.0.2","direct":true,"kind":"runtime","optional":false},{"id":21906894198,"package_name":"mss","ecosystem":"pypi","requirements":"==9.0.1","direct":true,"kind":"runtime","optional":false},{"id":21906894199,"package_name":"multidict","ecosystem":"pypi","requirements":"==6.0.5","direct":true,"kind":"runtime","optional":false},{"id":21906894200,"package_name":"multiprocess","ecosystem":"pypi","requirements":"==0.70.16","direct":true,"kind":"runtime","optional":false},{"id":21906894201,"package_name":"munch","ecosystem":"pypi","requirements":"==4.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906894202,"package_name":"mypy-extensions","ecosystem":"pypi","requirements":"==1.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906894203,"package_name":"natsort","ecosystem":"pypi","requirements":"==8.4.0","direct":true,"kind":"runtime","optional":false},{"id":21906894204,"package_name":"nb-clean","ecosystem":"pypi","requirements":"==3.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906894205,"package_name":"nbclient","ecosystem":"pypi","requirements":"==0.10.0","direct":true,"kind":"runtime","optional":false},{"id":21906894206,"package_name":"nbconvert","ecosystem":"pypi","requirements":"==7.16.4","direct":true,"kind":"runtime","optional":false},{"id":21906894207,"package_name":"nbformat","ecosystem":"pypi","requirements":"==5.10.4","direct":true,"kind":"runtime","optional":false},{"id":21906894208,"package_name":"nest-asyncio","ecosystem":"pypi","requirements":"==1.6.0","direct":true,"kind":"runtime","optional":false},{"id":21906894209,"package_name":"nodeenv","ecosystem":"pypi","requirements":"==1.8.0","direct":true,"kind":"runtime","optional":false},{"id":21906894210,"package_name":"notebook","ecosystem":"pypi","requirements":"==7.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906894211,"package_name":"notebook-shim","ecosystem":"pypi","requirements":"==0.2.4","direct":true,"kind":"runtime","optional":false},{"id":21906894212,"package_name":"omegaconf","ecosystem":"pypi","requirements":"==2.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906894213,"package_name":"opencv-python-headless","ecosystem":"pypi","requirements":"==4.9.0.80","direct":true,"kind":"runtime","optional":false},{"id":21906894214,"package_name":"overrides","ecosystem":"pypi","requirements":"==7.7.0","direct":true,"kind":"runtime","optional":false},{"id":21906894215,"package_name":"packaging","ecosystem":"pypi","requirements":"==24.0","direct":true,"kind":"runtime","optional":false},{"id":21906894216,"package_name":"pandas","ecosystem":"pypi","requirements":"==2.2.2","direct":true,"kind":"runtime","optional":false},{"id":21906894217,"package_name":"pandocfilters","ecosystem":"pypi","requirements":"==1.5.1","direct":true,"kind":"runtime","optional":false},{"id":21906894218,"package_name":"parso","ecosystem":"pypi","requirements":"==0.8.4","direct":true,"kind":"runtime","optional":false},{"id":21906894219,"package_name":"pathspec","ecosystem":"pypi","requirements":"==0.12.1","direct":true,"kind":"runtime","optional":false},{"id":21906894220,"package_name":"pexpect","ecosystem":"pypi","requirements":"==4.9.0","direct":true,"kind":"runtime","optional":false},{"id":21906894221,"package_name":"platformdirs","ecosystem":"pypi","requirements":"==4.2.2","direct":true,"kind":"runtime","optional":false},{"id":21906894222,"package_name":"pluggy","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":21906894223,"package_name":"portalocker","ecosystem":"pypi","requirements":"==2.8.2","direct":true,"kind":"runtime","optional":false},{"id":21906894224,"package_name":"pre-commit","ecosystem":"pypi","requirements":"==3.7.1","direct":true,"kind":"runtime","optional":false},{"id":21906894225,"package_name":"pretrainedmodels","ecosystem":"pypi","requirements":"==0.7.4","direct":true,"kind":"runtime","optional":false},{"id":21906894226,"package_name":"prometheus-client","ecosystem":"pypi","requirements":"==0.20.0","direct":true,"kind":"runtime","optional":false},{"id":21906894227,"package_name":"prompt-toolkit","ecosystem":"pypi","requirements":"==3.0.43","direct":true,"kind":"runtime","optional":false},{"id":21906894228,"package_name":"protobuf","ecosystem":"pypi","requirements":"==4.25.3","direct":true,"kind":"runtime","optional":false},{"id":21906894229,"package_name":"psutil","ecosystem":"pypi","requirements":"==5.9.8","direct":true,"kind":"runtime","optional":false},{"id":21906894230,"package_name":"ptyprocess","ecosystem":"pypi","requirements":"==0.7.0","direct":true,"kind":"runtime","optional":false},{"id":21906894231,"package_name":"pure-eval","ecosystem":"pypi","requirements":"==0.2.2","direct":true,"kind":"runtime","optional":false},{"id":21906894232,"package_name":"pyarrow","ecosystem":"pypi","requirements":"==16.1.0","direct":true,"kind":"runtime","optional":false},{"id":21906894233,"package_name":"pyarrow-hotfix","ecosystem":"pypi","requirements":"==0.6","direct":true,"kind":"runtime","optional":false},{"id":21906894236,"package_name":"pycocotools","ecosystem":"pypi","requirements":"==2.0.7","direct":true,"kind":"runtime","optional":false},{"id":21906894237,"package_name":"pycparser","ecosystem":"pypi","requirements":"==2.22","direct":true,"kind":"runtime","optional":false},{"id":21906894238,"package_name":"pydantic","ecosystem":"pypi","requirements":"==2.7.1","direct":true,"kind":"runtime","optional":false},{"id":21906894239,"package_name":"pydantic-core","ecosystem":"pypi","requirements":"==2.18.2","direct":true,"kind":"runtime","optional":false},{"id":21906894240,"package_name":"pygments","ecosystem":"pypi","requirements":"==2.18.0","direct":true,"kind":"runtime","optional":false},{"id":21906894241,"package_name":"pyparsing","ecosystem":"pypi","requirements":"==3.1.2","direct":true,"kind":"runtime","optional":false},{"id":21906894242,"package_name":"pyshp","ecosystem":"pypi","requirements":"==2.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906894245,"package_name":"pytest","ecosystem":"pypi","requirements":"==8.2.1","direct":true,"kind":"runtime","optional":false},{"id":21906894246,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"==5.0.0","direct":true,"kind":"runtime","optional":false},{"id":21906894247,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"==2.9.0.post0","direct":true,"kind":"runtime","optional":false},{"id":21906894248,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"==1.0.1","direct":true,"kind":"runtime","optional":false},{"id":21906894249,"package_name":"python-json-logger","ecosystem":"pypi","requirements":"==2.0.7","direct":true,"kind":"runtime","optional":false},{"id":21906894250,"package_name":"python-liquid","ecosystem":"pypi","requirements":"==1.12.1","direct":true,"kind":"runtime","optional":false},{"id":21906894251,"package_name":"pytorch-lightning","ecosystem":"pypi","requirements":"==2.2.5","direct":true,"kind":"runtime","optional":false},{"id":21906894252,"package_name":"pytz","ecosystem":"pypi","requirements":"==2024.1","direct":true,"kind":"runtime","optional":false},{"id":21906894253,"package_name":"pyzmq","ecosystem":"pypi","requirements":"==26.0.3","direct":true,"kind":"runtime","optional":false},{"id":21906894254,"package_name":"qtconsole","ecosystem":"pypi","requirements":"==5.5.2","direct":true,"kind":"runtime","optional":false},{"id":21906894255,"package_name":"qtpy","ecosystem":"pypi","requirements":"==2.4.1","direct":true,"kind":"runtime","optional":false},{"id":21906894256,"package_name":"rasterio","ecosystem":"pypi","requirements":"==1.3.10","direct":true,"kind":"runtime","optional":false},{"id":21906894257,"package_name":"referencing","ecosystem":"pypi","requirements":"==0.35.1","direct":true,"kind":"runtime","optional":false},{"id":21906894258,"package_name":"regex","ecosystem":"pypi","requirements":"==2024.5.15","direct":true,"kind":"runtime","optional":false},{"id":21906894259,"package_name":"rfc3339-validator","ecosystem":"pypi","requirements":"==0.1.4","direct":true,"kind":"runtime","optional":false},{"id":21906894260,"package_name":"rfc3986-validator","ecosystem":"pypi","requirements":"==0.1.1","direct":true,"kind":"runtime","optional":false},{"id":21906894261,"package_name":"rpds-py","ecosystem":"pypi","requirements":"==0.18.1","direct":true,"kind":"runtime","optional":false},{"id":21906894262,"package_name":"rtree","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":21906894263,"package_name":"safetensors","ecosystem":"pypi","requirements":"==0.4.3","direct":true,"kind":"runtime","optional":false},{"id":21906894264,"package_name":"scikit-image","ecosystem":"pypi","requirements":"==0.23.2","direct":true,"kind":"runtime","optional":false},{"id":21906894265,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":21906894266,"package_name":"scipy","ecosystem":"pypi","requirements":"==1.13.1","direct":true,"kind":"runtime","optional":false},{"id":21906894267,"package_name":"seaborn","ecosystem":"pypi","requirements":"==0.13.2","direct":true,"kind":"runtime","optional":false},{"id":21906894268,"package_name":"segmentation-models-pytorch","ecosystem":"pypi","requirements":"==0.3.3","direct":true,"kind":"runtime","optional":false},{"id":21906894269,"package_name":"send2trash","ecosystem":"pypi","requirements":"==1.8.3","direct":true,"kind":"runtime","optional":false},{"id":21906894270,"package_name":"sentry-sdk","ecosystem":"pypi","requirements":"==2.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906894271,"package_name":"setproctitle","ecosystem":"pypi","requirements":"==1.3.3","direct":true,"kind":"runtime","optional":false},{"id":21906894272,"package_name":"shapely","ecosystem":"pypi","requirements":"==2.0.4","direct":true,"kind":"runtime","optional":false},{"id":21906894273,"package_name":"six","ecosystem":"pypi","requirements":"==1.16.0","direct":true,"kind":"runtime","optional":false},{"id":21906894274,"package_name":"smmap","ecosystem":"pypi","requirements":"==5.0.1","direct":true,"kind":"runtime","optional":false},{"id":21906894275,"package_name":"sniffio","ecosystem":"pypi","requirements":"==1.3.1","direct":true,"kind":"runtime","optional":false},{"id":21906894276,"package_name":"snuggs","ecosystem":"pypi","requirements":"==1.4.7","direct":true,"kind":"runtime","optional":false},{"id":21906894277,"package_name":"soupsieve","ecosystem":"pypi","requirements":"==2.5","direct":true,"kind":"runtime","optional":false},{"id":21906894278,"package_name":"stack-data","ecosystem":"pypi","requirements":"==0.6.3","direct":true,"kind":"runtime","optional":false},{"id":21906894279,"package_name":"tabulate","ecosystem":"pypi","requirements":"==0.9.0","direct":true,"kind":"runtime","optional":false},{"id":21906894280,"package_name":"tensorboard","ecosystem":"pypi","requirements":"==2.16.2","direct":true,"kind":"runtime","optional":false},{"id":21906894281,"package_name":"tensorboard-data-server","ecosystem":"pypi","requirements":"==0.7.2","direct":true,"kind":"runtime","optional":false},{"id":21906894282,"package_name":"termcolor","ecosystem":"pypi","requirements":"==2.4.0","direct":true,"kind":"runtime","optional":false},{"id":21906894283,"package_name":"terminado","ecosystem":"pypi","requirements":"==0.18.1","direct":true,"kind":"runtime","optional":false},{"id":21906894284,"package_name":"threadpoolctl","ecosystem":"pypi","requirements":"==3.5.0","direct":true,"kind":"runtime","optional":false},{"id":21906894285,"package_name":"tifffile","ecosystem":"pypi","requirements":"==2024.5.22","direct":true,"kind":"runtime","optional":false},{"id":21906894286,"package_name":"timm","ecosystem":"pypi","requirements":"==0.9.2","direct":true,"kind":"runtime","optional":false},{"id":21906894287,"package_name":"tinycss2","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906894288,"package_name":"tokenizers","ecosystem":"pypi","requirements":"==0.19.1","direct":true,"kind":"runtime","optional":false},{"id":21906894289,"package_name":"torchmetrics","ecosystem":"pypi","requirements":"==1.4.0.post0","direct":true,"kind":"runtime","optional":false},{"id":21906894290,"package_name":"tornado","ecosystem":"pypi","requirements":"==6.4","direct":true,"kind":"runtime","optional":false},{"id":21906894291,"package_name":"tqdm","ecosystem":"pypi","requirements":"==4.66.4","direct":true,"kind":"runtime","optional":false},{"id":21906894292,"package_name":"traitlets","ecosystem":"pypi","requirements":"==5.14.3","direct":true,"kind":"runtime","optional":false},{"id":21906894293,"package_name":"transformers","ecosystem":"pypi","requirements":"==4.41.1","direct":true,"kind":"runtime","optional":false},{"id":21906894294,"package_name":"ttach","ecosystem":"pypi","requirements":"==0.0.3","direct":true,"kind":"runtime","optional":false},{"id":21906894295,"package_name":"types-python-dateutil","ecosystem":"pypi","requirements":"==2.9.0.20240316","direct":true,"kind":"runtime","optional":false},{"id":21906894296,"package_name":"tzdata","ecosystem":"pypi","requirements":"==2024.1","direct":true,"kind":"runtime","optional":false},{"id":21906894297,"package_name":"uri-template","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":21906894298,"package_name":"virtualenv","ecosystem":"pypi","requirements":"==20.26.2","direct":true,"kind":"runtime","optional":false},{"id":21906894299,"package_name":"wandb","ecosystem":"pypi","requirements":"==0.17.0","direct":true,"kind":"runtime","optional":false},{"id":21906894300,"package_name":"wcwidth","ecosystem":"pypi","requirements":"==0.2.13","direct":true,"kind":"runtime","optional":false},{"id":21906894301,"package_name":"webcolors","ecosystem":"pypi","requirements":"==1.13","direct":true,"kind":"runtime","optional":false},{"id":21906894302,"package_name":"webencodings","ecosystem":"pypi","requirements":"==0.5.1","direct":true,"kind":"runtime","optional":false},{"id":21906894303,"package_name":"websocket-client","ecosystem":"pypi","requirements":"==1.8.0","direct":true,"kind":"runtime","optional":false},{"id":21906894304,"package_name":"werkzeug","ecosystem":"pypi","requirements":"==3.0.3","direct":true,"kind":"runtime","optional":false},{"id":21906894305,"package_name":"widgetsnbextension","ecosystem":"pypi","requirements":"==4.0.10","direct":true,"kind":"runtime","optional":false},{"id":21906894306,"package_name":"xxhash","ecosystem":"pypi","requirements":"==3.4.1","direct":true,"kind":"runtime","optional":false},{"id":21906894307,"package_name":"yacs","ecosystem":"pypi","requirements":"==0.1.8","direct":true,"kind":"runtime","optional":false},{"id":21906894308,"package_name":"yarl","ecosystem":"pypi","requirements":"==1.9.4","direct":true,"kind":"runtime","optional":false}]}],"score":6.152732694704104,"created_at":"2025-04-20T00:12:19.953Z","updated_at":"2026-06-14T12:30:21.667Z","avatar_url":"https://github.com/Restor-Foundation.png","language":"Python","category":"Biosphere","sub_category":"Forest Remote Sensing","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Restor Foundation Tree Crown Delineation Pipeline\n\n![Coverage Status](coverage-badge.svg)\n[![Tests](https://github.com/Restor-Foundation/tcd/actions/workflows/python-test.yml/badge.svg)](https://github.com/Restor-Foundation/tcd/actions/workflows/python-test.yml)\n[![Docker](https://github.com/Restor-Foundation/tcd/actions/workflows/docker.yml/badge.svg)](https://github.com/Restor-Foundation/tcd/actions/workflows/docker.yml)\n[![arXiv](https://img.shields.io/badge/arXiv-2407.11743-b31b1b.svg)](https://arxiv.org/abs/2407.11743)\n[![Documentation](https://img.shields.io/badge/Documentation-blue.svg)](https://restor-foundation.github.io/tcd/)\n\n![Canopy map predictions over the city of Zurich](docs/images/zurich_trees_mono.jpg)\n_Tree instance predictions over Zurich using our Mask-RCNN model._\n\nThis repository contains a library for performing tree crown detection (TCD) in aerial imagery.\n\nFor usage information, please visit: https://restor-foundation.github.io/tcd/\n\n\n## Citation\n\nIf you use this pipeline for research or commercial work, we would appreciate that you cite (a) the [dataset](https://huggingface.co/datasets/restor/tcd) and (b) the [release paper](https://arxiv.org/abs/2407.11743) as appropriate. We will update the citation with details of the preprint and/or peer-reviewed manuscript when released.\n\n### Dataset\n\n[![](https://zenodo.org/badge/DOI/10.5281/zenodo.11617167.svg)](https://doi.org/10.5281/zenodo.11617167)\n\n### Paper/code\n\nThis work has been accepted into NeurIPS 2024 in the Datasets and Benchmarks track. You can read more [here](https://neurips.cc/virtual/2024/poster/97767).\n\nThe proceedings may be found [here](https://papers.nips.cc/paper_files/paper/2024/hash/58efdd77196fa8159062afa0408245da-Abstract-Datasets_and_Benchmarks_Track.html).\n\n```bibtex\n@inproceedings{NEURIPS2024_58efdd77,\n\tauthor = {Veitch-Michaelis, Josh and Cottam, Andrew and Schweizer, Daniella and Broadbent, Eben and Dao, David and Zhang, Ce and Almeyda Zambrano, Angelica and Max, Simeon},\n\tbooktitle = {Advances in Neural Information Processing Systems},\n\teditor = {A. Globerson and L. Mackey and D. Belgrave and A. Fan and U. Paquet and J. Tomczak and C. Zhang},\n\tpages = {49749--49767},\n\tpublisher = {Curran Associates, Inc.},\n\ttitle = {OAM-TCD: A globally diverse dataset of high-resolution tree cover maps},\n\turl = {https://proceedings.neurips.cc/paper_files/paper/2024/file/58efdd77196fa8159062afa0408245da-Paper-Datasets_and_Benchmarks_Track.pdf},\n\tvolume = {37},\n\tyear = {2024},\n\tbdsk-url-1 = {https://proceedings.neurips.cc/paper_files/paper/2024/file/58efdd77196fa8159062afa0408245da-Paper-Datasets_and_Benchmarks_Track.pdf}}\n\n```\n\n## Dataset and pre-trained models\n\nThe training dataset used for our models is currently hosted on [HuggingFace Hub](https://huggingface.co/datasets/restor/tcd). We also provide the dataset pre-formatted as MS-COCO on [Zenodo](https://zenodo.org/record/11617167) which can be used for training instance segmentation models out-of-the-box. These datasets can also be reconstructed using the HuggingFace repository.\n\n![Canopy map predictions over the city of Zurich](docs/images/zurich_predictions_side_by_side.jpg)\n\n_Example predictions using one of our SegFormer-based models to predict canopy coverage over Zurich. Left: RGB image, Swisstopo/SwissIMAGE 10cm (2022), Right: Predictions from restor/tcd-segformer-mit-b5. Base map tiles by Stamen Design, under CC BY 4.0. Data by OpenStreetMap, under ODbL._\n\nThe repository supports Mask-RCNN for instance segmentation and a variety of semantic segmentation models - we recommend Segformer as a default, but we also provide trained UNets which are more permissively licensed. Models will be downloaded automatically when you run prediction for the first time, so there's no need to handle checkpoints manually. You can of course fine-tune your own models using the pipeline and provide local paths if you need.\n\nHave a look at our [model zoo](zoo.md).\n\n## Installation\n\nFor complete installation information, have a look at our documentation [here]().\n\nHowever, for a quick start we recommend you use Conda:\n\n```bash\n# Clone the repository\ngit clone github.com/restor-foundation/tcd\n\n# Install and activate the conda environment\nconda env create -n tcd -f environment.yml\nconda activate tcd\n\n# Install the pipeline package\npip install -e .[test,docs]\n\n# Run unit tests to verify\npytest\n```\n\n### Docker\n\nWe also provide a docker container with dependencies and the library pre-installed:\n\n```bash\ndocker pull ghcr.io/restor-foundation/tcd:main\n```\n\n## Colab Notebook\n\nFor an example of loading our dataset and running a prediction without using the pipeline, have a look at [this notebook](https://colab.research.google.com/drive/1N_rWko6jzGji3j_ayDR7ngT5lf4P8at_).\n\n## Documentation\n\nFor technical information, please see our release [paper]().\n\nComprehensive documentation may be found [here]() - we use `mkdocs` to generate documentation and you can also find it in markdown format in the `docs` folder in the repository. You can build/serve by running:\n\n```bash\nmkdocs serve\n```\n\n## Post-install and testing\n\nRunning the test suite is a comprehensive check of the entire pipeline - currently at around 70% code coverage, from the root directory you can run pytest:\n\n```bash\npytest\n```\n\nWe provide a simple test image in the repo that you can use to check if everything is installed correctly.\n\n## Single image prediction\n\nWe've tried to make using the pipeline and models as simple as possible. Once you've installed the repository, you can run:\n\n```bash\ntcd-predict \u003cmodel\u003e \u003cpath-to-image\u003e \u003cresult-folder\u003e\n```\n\nfor example:\n\n```bash\ntcd-predict semantic data/5c15321f63d9810007f8b06f_10_00000.tif results_semantic\ntcd-predict semantic data/5c15321f63d9810007f8b06f_10_00000.tif results_instance\n```\n\nwhich will run the pipeline on the test image in semantic and instance segmentation modes. The results are saved to the output folders which include: geo-referenced canopy masks, shapefiles with detected trees and canopy regions and overlaid visualisations of the predictions. If you want to change models, just specify the name of the model as on HuggingFace e.g. `restor/tcd-segformer-mit-b3`.\n\nThe `tcd-predict` and `tcd-train` scripts are installed as part of the library. However you can also call the scripts directly - they are symlinked in the root of the repository folder, or you can find them in `src/tcd-pipeline/scripts`.\n\n### Screen prediction\n\nWe provide a fun demo script which will run a model on a live screen capture. `screen_predict.py` lives in the `tools` folder:\n\n```python\npip install python-opencv mss\npython tools/screen_predict.py semantic\n```\n\nThe script works best on dual monitor setups where you can view the output on one screen and move around on the other, but it will work on smaller screens just fine. You may need to adjust the grab dimensions to suit your hardware, in the script:\n\n```python\nmon = {\"left\": 0, \"top\": 0, \"width\": 1024, \"height\": 1024}\n```\n\nTips:\n\n- The script has no idea about resolution, so you may need to zoom in/out to find the sweet spot. Remember the models are optimised for 0.1 m/px\n- If you pick a region that's outside the bounds of your monitor, the script will probably segfault - so if that happens, double check the region settings above\n- Try browsing the web (for example go on OpenAerialMap and zoom in)\n\n## Contributing\n\nWe welcome contributions via pull request. Please note that we enforce the use of several pre-commit hooks, namely:\n\n- Code formatting uses `black`\n- We use `isort` to sort imports\n- There is a maximum size for checked in files so the repository doesn't get bloated\n- We clear Jupyter notebooks to avoid bloat and big diffs\n\nIf you submit a PR, please ensure that the test suite passes beforehand and if you add new features/functionality, please try to add unit tests.\n\nIf you'd like help improve the labels in our dataset, you can take part as a citizen scientist via our [Zooniverse campaign](https://www.zooniverse.org/projects/physicsjosh/tag-trees).\n\n## Troubleshooting\n\nIf run into problems using the pipeline, please create an issue providing as much detail as possible - including the script that you're trying to run. The more detail you can provide, the better we can help!\n\nSimilarly please don't hesitate to suggest new features that you think would be useful, though we can't guarantee that all feature requests will be possible.\n\n## License\n\nThis repository is released under the Apache 2.0 license which permits a wide variety of downstream uses.\n\n### OAM-TCD Dataset\n\nFor license information about the dataset, see the [dataset card](https://huggingface.co/datasets/restor/tcd).\n\nThe majority of the dataset is licensed as CC-BY 4.0 with a subset as CC BY-NC 4.0 (train and test) and CC BY-SA 4.0 (test only). These two less \npermissive image classes consititute around 10% of the dataset.\n\nThe dataset DOI is: `10.5281/zenodo.11617167`.\n\n### Models\n\nCurrently our models are released under a CC BY-NC 4.0 license. We are retraining models on _only_ the CC-BY 4.0 imagery so that we can confidently use the same license.\n\nModel usage must be attributed under the terms of the CC-BY license variants.\n\n#### Mask-RCNN\n\nTo train Mask-RCNN (and other instance segmentation models), we use the Detectron2 library from FAIR/Meta which is licensed as Apache 2.0.\n\n#### Segmentation Models Pytorch (SMP)\n\nUNet model implementations use the [SMP library](https://segmentation-modelspytorch.readthedocs.io/), under the MIT license.\n\n#### SegFormer\n\nThe Segformer architecture from NVIDIA is provided under [a research license](https://huggingface.co/docs/transformers/model_doc/segformer).\n\nThis does not allow commercial use without permission from NVIDIA - see [here](https://www.nvidia.com/en-us/research/inquiries/) - but you are free to use these models for research. **If you wish to use our models in a commercial setting, we recommend you use the Mask-RCNN/U-Net variants (or train your own models with your preferred architecture).**\n\n## Acknowledgements\n\nThis project is a collaboration between Restor and ETH Zurich, supported by a Google.org AI for Social Good grant: TF2012-096892, _AI and ML for advancing the monitoring of Forest Restoration_.\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.5281/zenodo.11617167"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/314699","html_url":"https://ost.ecosyste.ms/projects/314699"}