{"id":304490,"name":"Fields of The World","description":"A comprehensive benchmark dataset designed to enhance the development of machine learning models for instance segmentation of agricultural field boundaries.","url":"https://github.com/fieldsoftheworld/ftw-baselines","last_synced_at":"2026-05-02T15:30:18.415Z","repository":{"id":258015303,"uuid":"857994061","full_name":"fieldsoftheworld/ftw-baselines","owner":"fieldsoftheworld","description":"Code for running baseline models/experiments with the Fields of The World dataset","archived":false,"fork":false,"pushed_at":"2026-04-21T10:08:16.000Z","size":18800,"stargazers_count":131,"open_issues_count":43,"forks_count":27,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-04-27T13:03:47.204Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://fieldsofthe.world/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fieldsoftheworld.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2024-09-16T05:31:40.000Z","updated_at":"2026-04-26T12:57:07.000Z","dependencies_parsed_at":"2026-02-21T06:01:48.990Z","dependency_job_id":null,"html_url":"https://github.com/fieldsoftheworld/ftw-baselines","commit_stats":{"total_commits":82,"total_committers":8,"mean_commits":10.25,"dds":"0.47560975609756095","last_synced_commit":"74a8f1605ab0ac7739ac61b47d4c0b30d6113b63"},"previous_names":["fieldsoftheworld/ftw-baselines"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/fieldsoftheworld/ftw-baselines","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fieldsoftheworld","download_url":"https://codeload.github.com/fieldsoftheworld/ftw-baselines/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32428622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T13:34:34.882Z","status":"ssl_error","status_checked_at":"2026-04-29T13:34:29.830Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"fieldsoftheworld","name":"Fields of The World (FTW)","uuid":"179528260","kind":"organization","description":"A novel ML benchmark dataset for agricultural field instance segmentation spanning countries on four continents (Europe, Africa, Asia, and South America).","email":null,"website":"https://fieldsoftheworld.github.io/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/179528260?v=4","repositories_count":1,"last_synced_at":"2024-09-18T04:26:12.233Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/fieldsoftheworld","funding_links":[],"total_stars":0,"followers":0,"following":0,"created_at":"2024-09-18T04:26:12.239Z","updated_at":"2024-09-18T04:26:12.239Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fieldsoftheworld","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fieldsoftheworld/repositories"},"packages":[{"id":11024910,"name":"ftw-tools","ecosystem":"pypi","description":"Fields of The World (FTW) Command Line Interface (CLI) for data management, ML processing, and more.","homepage":"https://fieldsofthe.world/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/fieldsoftheworld/ftw-baselines","keywords_array":[],"namespace":null,"versions_count":13,"first_release_published_at":"2024-11-07T18:57:35.000Z","latest_release_published_at":"2025-08-19T12:59:22.000Z","latest_release_number":"1.4.3","last_synced_at":"2026-04-29T16:18:27.113Z","created_at":"2024-11-07T19:01:07.597Z","updated_at":"2026-04-29T16:18:27.114Z","registry_url":"https://pypi.org/project/ftw-tools/","install_command":"pip install ftw-tools --index-url https://pypi.org/simple","documentation_url":"https://ftw-tools.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 4 - Beta","Programming Language :: Python :: 3"],"normalized_name":"ftw-tools","project_status":null},"repo_metadata":{"id":258015303,"uuid":"857994061","full_name":"fieldsoftheworld/ftw-baselines","owner":"fieldsoftheworld","description":"Code for running baseline models/experiments with the Fields of The World dataset","archived":false,"fork":false,"pushed_at":"2026-03-24T19:00:26.000Z","size":18798,"stargazers_count":122,"open_issues_count":42,"forks_count":21,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-03-31T00:02:49.954Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://fieldsofthe.world/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fieldsoftheworld.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2024-09-16T05:31:40.000Z","updated_at":"2026-03-26T03:34:01.000Z","dependencies_parsed_at":"2026-02-21T06:01:48.990Z","dependency_job_id":null,"html_url":"https://github.com/fieldsoftheworld/ftw-baselines","commit_stats":{"total_commits":82,"total_committers":8,"mean_commits":10.25,"dds":"0.47560975609756095","last_synced_commit":"74a8f1605ab0ac7739ac61b47d4c0b30d6113b63"},"previous_names":["fieldsoftheworld/ftw-baselines"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/fieldsoftheworld/ftw-baselines","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fieldsoftheworld","download_url":"https://codeload.github.com/fieldsoftheworld/ftw-baselines/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31669117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"fieldsoftheworld","name":"Fields of The World (FTW)","uuid":"179528260","kind":"organization","description":"A novel ML benchmark dataset for agricultural field instance segmentation spanning countries on four continents (Europe, Africa, Asia, and South America).","email":null,"website":"https://fieldsoftheworld.github.io/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/179528260?v=4","repositories_count":1,"last_synced_at":"2024-09-18T04:26:12.233Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/fieldsoftheworld","funding_links":[],"total_stars":0,"followers":0,"following":0,"created_at":"2024-09-18T04:26:12.239Z","updated_at":"2024-09-18T04:26:12.239Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fieldsoftheworld","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fieldsoftheworld/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-04-27T14:19:56.191Z","dependent_packages_count":0,"downloads":841,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":56.67455510499264,"dependent_packages_count":10.069704522561148,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":33.372129813776894},"purl":"pkg:pypi/ftw-tools","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/ftw-tools","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/ftw-tools","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/ftw-tools/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-24T21:00:51.810Z","issues_count":94,"pull_requests_count":181,"avg_time_to_close_issue":1193833.8387096773,"avg_time_to_close_pull_request":872688.7183098592,"issues_closed_count":31,"pull_requests_closed_count":142,"pull_request_authors_count":18,"issue_authors_count":22,"avg_comments_per_issue":1.2765957446808511,"avg_comments_per_pull_request":1.723756906077348,"merged_pull_requests_count":125,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":52,"past_year_pull_requests_count":118,"past_year_avg_time_to_close_issue":1575266.0,"past_year_avg_time_to_close_pull_request":346180.75581395347,"past_year_issues_closed_count":12,"past_year_pull_requests_closed_count":86,"past_year_pull_request_authors_count":13,"past_year_issue_authors_count":12,"past_year_avg_comments_per_issue":0.9423076923076923,"past_year_avg_comments_per_pull_request":1.711864406779661,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":75,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/issues","maintainers":[{"login":"m-mohr","count":74,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/m-mohr"},{"login":"cholmes","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cholmes"},{"login":"calebrob6","count":32,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/calebrob6"},{"login":"isaaccorley","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/isaaccorley"},{"login":"martham93","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/martham93"},{"login":"hannah-rae","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hannah-rae"},{"login":"aninda-ghosh","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aninda-ghosh"},{"login":"asmithml","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/asmithml"},{"login":"geospatial-jeff","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/geospatial-jeff"},{"login":"Gedeon-m-gedus","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Gedeon-m-gedus"},{"login":"AMNAALMGLY","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/AMNAALMGLY"},{"login":"danielhuppmann","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/danielhuppmann"}],"active_maintainers":[{"login":"m-mohr","count":36,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/m-mohr"},{"login":"calebrob6","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/calebrob6"},{"login":"isaaccorley","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/isaaccorley"},{"login":"martham93","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/martham93"},{"login":"hannah-rae","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hannah-rae"},{"login":"cholmes","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cholmes"},{"login":"asmithml","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/asmithml"},{"login":"geospatial-jeff","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/geospatial-jeff"},{"login":"Gedeon-m-gedus","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Gedeon-m-gedus"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/ftw-tools/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/ftw-tools/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/ftw-tools/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/ftw-tools/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/ftw-tools/codemeta","maintainers":[{"uuid":"m-mohr","login":"m-mohr","name":null,"email":null,"url":null,"packages_count":5,"html_url":"https://pypi.org/user/m-mohr/","role":null,"created_at":"2024-11-07T19:08:11.593Z","updated_at":"2024-11-07T19:08:11.593Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/m-mohr/packages"},{"uuid":"calebrob6","login":"calebrob6","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/calebrob6/","role":"Owner","created_at":"2024-11-19T17:45:03.642Z","updated_at":"2024-11-19T17:45:03.642Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/calebrob6/packages"},{"uuid":"cholmes","login":"cholmes","name":null,"email":null,"url":null,"packages_count":5,"html_url":"https://pypi.org/user/cholmes/","role":"Owner","created_at":"2024-11-19T17:45:03.679Z","updated_at":"2024-11-19T17:45:03.679Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/cholmes/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":854089,"maintainers_count":364745,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":6789601,"full_name":"fieldsoftheworld/ftw-baselines","default_branch":"main","total_commits":184,"total_committers":18,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":10.222222222222221,"dds":0.5869565217391304,"past_year_total_commits":101,"past_year_total_committers":14,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":7.214285714285714,"past_year_dds":0.6732673267326732,"last_synced_at":"2026-04-29T14:02:41.821Z","last_synced_commit":"0f1709fb1b5ef2ed7dc8ba6f90aa8d319019ee6e","created_at":"2024-11-25T00:05:51.089Z","updated_at":"2026-04-29T14:01:34.037Z","committers":[{"name":"Matthias Mohr","email":"webmaster@mamo-net.de","login":"m-mohr","count":76},{"name":"Caleb Robinson","email":"calebrob6@gmail.com","login":"calebrob6","count":22},{"name":"Isaac Corley","email":"isaac.corley@proton.me","login":"isaaccorley","count":17},{"name":"Chris Holmes","email":"cholmes@planet.com","login":"cholmes","count":13},{"name":"Aninda Ghosh","email":"anindaghosh63@gmail.com","login":"aninda-ghosh","count":13},{"name":"Jeff Albrecht","email":"jeff@arturo.ai","login":"geospatial-jeff","count":11},{"name":"Hannah Kerner","email":"hannah.r.kerner@gmail.com","login":"hannah-rae","count":8},{"name":"Copilot","email":"198982749+Copilot","login":"Copilot","count":5},{"name":"Martha Morrissey","email":"marthamorrissey93@gmail.com","login":"martham93","count":4},{"name":"Andrew Smith","email":"159601423+asmithml","login":"asmithml","count":3},{"name":"Ana María Tárano","email":"anatarano@gmail.com","login":"anatarano","count":3},{"name":"Snehal Chaudhari","email":"31732637+snehalchaudhari98","login":"snehalchaudhari98","count":2},{"name":"Michelle Roby","email":"42818395+PowerChell","login":"PowerChell","count":2},{"name":"Amna El-Mustafa","email":"aelmusta@en4230658-scai.local","login":null,"count":1},{"name":"Martha Morrissey","email":"martha@developmentseed.org","login":null,"count":1},{"name":"[ Aninda Ghosh - Ira A Fulton Engineering - Graduate Student - aghosh57 ]","email":"aghosh57@login01.sol.rc.asu.edu","login":null,"count":1},{"name":"Gedeon M","email":"50500636+Gedeon-m-gedus","login":"Gedeon-m-gedus","count":1},{"name":"Tommaso Canova","email":"33253895+cannox227","login":"cannox227","count":1}],"past_year_committers":[{"name":"Matthias Mohr","email":"m.mohr@moregeo.it","login":"m-mohr","count":33},{"name":"Isaac Corley","email":"isaac.corley@proton.me","login":"isaaccorley","count":17},{"name":"Jeff Albrecht","email":"jeff@arturo.ai","login":"geospatial-jeff","count":11},{"name":"Caleb Robinson","email":"calebrob6@gmail.com","login":"calebrob6","count":11},{"name":"Hannah Kerner","email":"hannah.r.kerner@gmail.com","login":"hannah-rae","count":7},{"name":"Copilot","email":"198982749+Copilot","login":"Copilot","count":5},{"name":"Martha Morrissey","email":"marthamorrissey93@gmail.com","login":"martham93","count":4},{"name":"Chris Holmes","email":"chomie@gmail.com","login":"cholmes","count":3},{"name":"Andrew Smith","email":"159601423+asmithml","login":"asmithml","count":3},{"name":"Michelle Roby","email":"42818395+PowerChell","login":"PowerChell","count":2},{"name":"Ana María Tárano","email":"anatarano@gmail.com","login":"anatarano","count":2},{"name":"Tommaso Canova","email":"33253895+cannox227","login":"cannox227","count":1},{"name":"Gedeon M","email":"50500636+Gedeon-m-gedus","login":"Gedeon-m-gedus","count":1},{"name":"Martha Morrissey","email":"martha@developmentseed.org","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-01T00:00:07.988Z","repositories_count":6224292,"commits_count":900238994,"contributors_count":34904335,"owners_count":1147639,"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":"fieldsoftheworld/ftw-baselines","html_url":"https://github.com/fieldsoftheworld/ftw-baselines","last_synced_at":"2026-04-27T13:01:41.342Z","status":"active","issues_count":96,"pull_requests_count":183,"avg_time_to_close_issue":1156735.28125,"avg_time_to_close_pull_request":860619.2569444445,"issues_closed_count":32,"pull_requests_closed_count":144,"pull_request_authors_count":20,"issue_authors_count":24,"avg_comments_per_issue":1.2604166666666667,"avg_comments_per_pull_request":1.7377049180327868,"merged_pull_requests_count":126,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":52,"past_year_pull_requests_count":118,"past_year_avg_time_to_close_issue":1454605.5384615385,"past_year_avg_time_to_close_pull_request":346135.4651162791,"past_year_issues_closed_count":13,"past_year_pull_requests_closed_count":86,"past_year_pull_request_authors_count":15,"past_year_issue_authors_count":14,"past_year_avg_comments_per_issue":0.9615384615384616,"past_year_avg_comments_per_pull_request":1.7627118644067796,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":74,"created_at":"2024-11-25T00:05:54.299Z","updated_at":"2026-04-27T13:01:41.342Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/fieldsoftheworld%2Fftw-baselines/issues","issue_labels_count":{"CLI":10,"inference":6,"help wanted":4,"polygonize":3,"enhancement":2,"good first issue":2,"question":2,"bug":1,"upstream":1},"pull_request_labels_count":{"backport 1.x":3,"inference":2,"upstream":1,"enhancement":1},"issue_author_associations_count":{"COLLABORATOR":42,"MEMBER":33,"NONE":16,"CONTRIBUTOR":5},"pull_request_author_associations_count":{"COLLABORATOR":116,"CONTRIBUTOR":30,"MEMBER":24,"NONE":13},"issue_authors":{"cholmes":29,"m-mohr":24,"geospatial-jeff":8,"martham93":7,"calebrob6":6,"isaaccorley":2,"asmithml":2,"hannah-rae":2,"set-path":1,"nilsleh":1,"PowerChell":1,"firmanhadi21":1,"ldemaz":1,"aninda-ghosh":1,"cannox227":1,"skylning":1,"pkopparla":1,"tristangrupp":1,"tfriedel":1,"ZHR-rgb":1,"csyhy1986":1,"MattiaRigi97":1,"cthnguyen":1,"ando-shah":1},"pull_request_authors":{"m-mohr":50,"calebrob6":26,"geospatial-jeff":19,"isaaccorley":17,"cholmes":11,"hannah-rae":9,"aninda-ghosh":8,"Copilot":7,"martham93":7,"PowerChell":5,"Gedeon-m-gedus":5,"anatarano":4,"subash-khanal":3,"asmithml":3,"AMNAALMGLY":2,"snehalchaudhari98":2,"mishagrol":2,"redone17":1,"cannox227":1,"danielhuppmann":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-29T00:00:10.439Z","repositories_count":14445396,"issues_count":34220949,"pull_requests_count":112327434,"authors_count":11248714,"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":{"bug":1,"enhancement":1,"polygonize":1,"upstream":1},"past_year_pull_request_labels_count":{"backport 1.x":3,"inference":2},"past_year_issue_author_associations_count":{"COLLABORATOR":31,"MEMBER":9,"NONE":7,"CONTRIBUTOR":5},"past_year_pull_request_author_associations_count":{"COLLABORATOR":64,"CONTRIBUTOR":27,"MEMBER":17,"NONE":10},"past_year_issue_authors":{"m-mohr":16,"geospatial-jeff":8,"martham93":7,"cholmes":5,"calebrob6":4,"asmithml":2,"hannah-rae":2,"isaaccorley":2,"cannox227":1,"ldemaz":1,"nilsleh":1,"PowerChell":1,"skylning":1,"ZHR-rgb":1},"past_year_pull_request_authors":{"m-mohr":20,"geospatial-jeff":19,"isaaccorley":17,"calebrob6":14,"hannah-rae":9,"Copilot":7,"martham93":7,"cholmes":5,"Gedeon-m-gedus":5,"PowerChell":5,"asmithml":3,"subash-khanal":3,"anatarano":2,"cannox227":1,"redone17":1},"maintainers":[{"login":"m-mohr","count":74,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/m-mohr"},{"login":"cholmes","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cholmes"},{"login":"calebrob6","count":32,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/calebrob6"},{"login":"isaaccorley","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/isaaccorley"},{"login":"martham93","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/martham93"},{"login":"hannah-rae","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hannah-rae"},{"login":"aninda-ghosh","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aninda-ghosh"},{"login":"asmithml","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/asmithml"},{"login":"geospatial-jeff","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/geospatial-jeff"},{"login":"Gedeon-m-gedus","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Gedeon-m-gedus"},{"login":"AMNAALMGLY","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/AMNAALMGLY"},{"login":"danielhuppmann","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/danielhuppmann"}],"active_maintainers":[{"login":"m-mohr","count":36,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/m-mohr"},{"login":"calebrob6","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/calebrob6"},{"login":"isaaccorley","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/isaaccorley"},{"login":"martham93","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/martham93"},{"login":"hannah-rae","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hannah-rae"},{"login":"cholmes","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/cholmes"},{"login":"asmithml","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/asmithml"},{"login":"geospatial-jeff","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/geospatial-jeff"},{"login":"Gedeon-m-gedus","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Gedeon-m-gedus"}]},"events":{"total":{"DeleteEvent":75,"MemberEvent":5,"PullRequestEvent":133,"ForkEvent":18,"IssuesEvent":115,"WatchEvent":65,"IssueCommentEvent":324,"PushEvent":320,"PullRequestReviewCommentEvent":184,"PullRequestReviewEvent":215,"CreateEvent":68},"last_year":{"DeleteEvent":45,"MemberEvent":4,"PullRequestEvent":84,"ForkEvent":8,"IssuesEvent":61,"WatchEvent":17,"IssueCommentEvent":187,"PushEvent":220,"PullRequestReviewCommentEvent":148,"PullRequestReviewEvent":162,"CreateEvent":38}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-10-17T09:56:10.425Z","updated_at":"2024-10-17T09:56:10.425Z","repository_link":"https://github.com/fieldsoftheworld/ftw-baselines/blob/main/pyproject.toml","dependencies":[{"id":20231750005,"package_name":"click","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750006,"package_name":"tqdm","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750007,"package_name":"requests","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750008,"package_name":"geopandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750009,"package_name":"rasterio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750010,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750011,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750012,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750013,"package_name":"seaborn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750014,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750015,"package_name":"torch","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750016,"package_name":"torchvision","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750017,"package_name":"pytorch-lightning","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750018,"package_name":"PyYAML","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750019,"package_name":"flask","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750020,"package_name":"wget","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750021,"package_name":"cloudpickle","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750022,"package_name":"docker-py","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750023,"package_name":"alembic","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750024,"package_name":"azure-storage-blob","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750025,"package_name":"cryptography","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20231750026,"package_name":"pyarrow","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/integration-tests.yml","sha":null,"kind":"manifest","created_at":"2025-12-06T03:00:05.900Z","updated_at":"2025-12-06T03:00:05.900Z","repository_link":"https://github.com/fieldsoftheworld/ftw-baselines/blob/main/.github/workflows/integration-tests.yml","dependencies":[{"id":25758817006,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":25758817007,"package_name":"astral-sh/setup-uv","ecosystem":"actions","requirements":"v6","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/tests.yml","sha":null,"kind":"manifest","created_at":"2025-12-06T03:00:06.051Z","updated_at":"2025-12-06T03:00:06.051Z","repository_link":"https://github.com/fieldsoftheworld/ftw-baselines/blob/main/.github/workflows/tests.yml","dependencies":[{"id":25758817008,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":25758817009,"package_name":"astral-sh/setup-uv","ecosystem":"actions","requirements":"v6","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"uv.lock","sha":null,"kind":"lockfile","created_at":"2025-12-06T03:00:06.139Z","updated_at":"2025-12-06T03:00:06.139Z","repository_link":"https://github.com/fieldsoftheworld/ftw-baselines/blob/main/uv.lock","dependencies":[{"id":25758817023,"package_name":"absl-py","ecosystem":"pypi","requirements":"2.3.1","direct":false,"kind":"runtime","optional":false},{"id":25758817024,"package_name":"aenum","ecosystem":"pypi","requirements":"3.1.16","direct":false,"kind":"runtime","optional":false},{"id":25758817025,"package_name":"affine","ecosystem":"pypi","requirements":"2.4.0","direct":false,"kind":"runtime","optional":false},{"id":25758817026,"package_name":"aiohappyeyeballs","ecosystem":"pypi","requirements":"2.6.1","direct":false,"kind":"runtime","optional":false},{"id":25758817027,"package_name":"aiohttp","ecosystem":"pypi","requirements":"3.13.0","direct":false,"kind":"runtime","optional":false},{"id":25758817028,"package_name":"aiosignal","ecosystem":"pypi","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":25758817029,"package_name":"annotated-types","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":25758817030,"package_name":"antlr4-python3-runtime","ecosystem":"pypi","requirements":"4.9.3","direct":false,"kind":"runtime","optional":false},{"id":25758817031,"package_name":"anyio","ecosystem":"pypi","requirements":"4.11.0","direct":false,"kind":"runtime","optional":false},{"id":25758817032,"package_name":"appnope","ecosystem":"pypi","requirements":"0.1.4","direct":false,"kind":"runtime","optional":false},{"id":25758817063,"package_name":"argon2-cffi","ecosystem":"pypi","requirements":"25.1.0","direct":false,"kind":"runtime","optional":false},{"id":25758817066,"package_name":"argon2-cffi-bindings","ecosystem":"pypi","requirements":"25.1.0","direct":false,"kind":"runtime","optional":false},{"id":25758817080,"package_name":"arrow","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758817093,"package_name":"asttokens","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758817094,"package_name":"async-lru","ecosystem":"pypi","requirements":"2.0.5","direct":false,"kind":"runtime","optional":false},{"id":25758817144,"package_name":"attrs","ecosystem":"pypi","requirements":"25.4.0","direct":false,"kind":"runtime","optional":false},{"id":25758817145,"package_name":"babel","ecosystem":"pypi","requirements":"2.17.0","direct":false,"kind":"runtime","optional":false},{"id":25758817157,"package_name":"backports-tarfile","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":25758817207,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"4.14.2","direct":false,"kind":"runtime","optional":false},{"id":25758817208,"package_name":"bitsandbytes","ecosystem":"pypi","requirements":"0.48.1","direct":false,"kind":"runtime","optional":false},{"id":25758817209,"package_name":"bleach","ecosystem":"pypi","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":25758817210,"package_name":"brotli","ecosystem":"pypi","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25758817323,"package_name":"brotlicffi","ecosystem":"pypi","requirements":"1.1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758817350,"package_name":"build","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758817351,"package_name":"cachetools","ecosystem":"pypi","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":25758817352,"package_name":"certifi","ecosystem":"pypi","requirements":"2025.10.5","direct":false,"kind":"runtime","optional":false},{"id":25758817353,"package_name":"cffi","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758817354,"package_name":"cfgv","ecosystem":"pypi","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":25758817376,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.4.3","direct":false,"kind":"runtime","optional":false},{"id":25758817377,"package_name":"click","ecosystem":"pypi","requirements":"8.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758817378,"package_name":"click-plugins","ecosystem":"pypi","requirements":"1.1.1.2","direct":false,"kind":"runtime","optional":false},{"id":25758817385,"package_name":"cligj","ecosystem":"pypi","requirements":"0.7.2","direct":false,"kind":"runtime","optional":false},{"id":25758817392,"package_name":"cloudpickle","ecosystem":"pypi","requirements":"3.1.1","direct":false,"kind":"runtime","optional":false},{"id":25758817393,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"runtime","optional":false},{"id":25758817394,"package_name":"comm","ecosystem":"pypi","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":25758817412,"package_name":"contourpy","ecosystem":"pypi","requirements":"1.3.3","direct":false,"kind":"runtime","optional":false},{"id":25758817413,"package_name":"cryptography","ecosystem":"pypi","requirements":"46.0.2","direct":false,"kind":"runtime","optional":false},{"id":25758817414,"package_name":"cycler","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":25758817415,"package_name":"dask","ecosystem":"pypi","requirements":"2025.9.1","direct":false,"kind":"runtime","optional":false},{"id":25758817582,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.8.17","direct":false,"kind":"runtime","optional":false},{"id":25758817623,"package_name":"decorator","ecosystem":"pypi","requirements":"5.2.1","direct":false,"kind":"runtime","optional":false},{"id":25758817624,"package_name":"defusedxml","ecosystem":"pypi","requirements":"0.7.1","direct":false,"kind":"runtime","optional":false},{"id":25758817625,"package_name":"distlib","ecosystem":"pypi","requirements":"0.4.0","direct":false,"kind":"runtime","optional":false},{"id":25758817647,"package_name":"distributed","ecosystem":"pypi","requirements":"2025.9.1","direct":false,"kind":"runtime","optional":false},{"id":25758817663,"package_name":"docstring-parser","ecosystem":"pypi","requirements":"0.17.0","direct":false,"kind":"runtime","optional":false},{"id":25758817668,"package_name":"docutils","ecosystem":"pypi","requirements":"0.22.2","direct":false,"kind":"runtime","optional":false},{"id":25758817673,"package_name":"einops","ecosystem":"pypi","requirements":"0.8.1","direct":false,"kind":"runtime","optional":false},{"id":25758817674,"package_name":"executing","ecosystem":"pypi","requirements":"2.2.1","direct":false,"kind":"runtime","optional":false},{"id":25758817676,"package_name":"fastjsonschema","ecosystem":"pypi","requirements":"2.21.2","direct":false,"kind":"runtime","optional":false},{"id":25758817707,"package_name":"fiboa-cli","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":25758817708,"package_name":"filelock","ecosystem":"pypi","requirements":"3.20.0","direct":false,"kind":"runtime","optional":false},{"id":25758817709,"package_name":"fiona","ecosystem":"pypi","requirements":"1.10.1","direct":false,"kind":"runtime","optional":false},{"id":25758817826,"package_name":"flatdict","ecosystem":"pypi","requirements":"4.0.1","direct":false,"kind":"runtime","optional":false},{"id":25758817827,"package_name":"fonttools","ecosystem":"pypi","requirements":"4.60.1","direct":false,"kind":"runtime","optional":false},{"id":25758817828,"package_name":"fqdn","ecosystem":"pypi","requirements":"1.5.1","direct":false,"kind":"runtime","optional":false},{"id":25758817831,"package_name":"frozenlist","ecosystem":"pypi","requirements":"1.8.0","direct":false,"kind":"runtime","optional":false},{"id":25758817832,"package_name":"fsspec","ecosystem":"pypi","requirements":"2025.9.0","direct":false,"kind":"runtime","optional":false},{"id":25758817837,"package_name":"ftw-tools","ecosystem":"pypi","requirements":"2.0.0b3","direct":false,"kind":"runtime","optional":false},{"id":25758817842,"package_name":"geopandas","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25758817849,"package_name":"grpcio","ecosystem":"pypi","requirements":"1.75.1","direct":false,"kind":"runtime","optional":false},{"id":25758817850,"package_name":"h11","ecosystem":"pypi","requirements":"0.16.0","direct":false,"kind":"runtime","optional":false},{"id":25758817851,"package_name":"hatchling","ecosystem":"pypi","requirements":"1.27.0","direct":false,"kind":"runtime","optional":false},{"id":25758817876,"package_name":"hf-xet","ecosystem":"pypi","requirements":"1.1.10","direct":false,"kind":"runtime","optional":false},{"id":25758817877,"package_name":"httpcore","ecosystem":"pypi","requirements":"1.0.9","direct":false,"kind":"runtime","optional":false},{"id":25758817878,"package_name":"httpx","ecosystem":"pypi","requirements":"0.28.1","direct":false,"kind":"runtime","optional":false},{"id":25758817879,"package_name":"huggingface-hub","ecosystem":"pypi","requirements":"0.35.3","direct":false,"kind":"runtime","optional":false},{"id":25758817880,"package_name":"hydra-core","ecosystem":"pypi","requirements":"1.3.2","direct":false,"kind":"runtime","optional":false},{"id":25758817891,"package_name":"id","ecosystem":"pypi","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":25758817893,"package_name":"identify","ecosystem":"pypi","requirements":"2.6.15","direct":false,"kind":"runtime","optional":false},{"id":25758817895,"package_name":"idna","ecosystem":"pypi","requirements":"3.10","direct":false,"kind":"runtime","optional":false},{"id":25758817896,"package_name":"imageio","ecosystem":"pypi","requirements":"2.37.0","direct":false,"kind":"runtime","optional":false},{"id":25758817897,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"8.7.0","direct":false,"kind":"runtime","optional":false},{"id":25758817919,"package_name":"importlib-resources","ecosystem":"pypi","requirements":"6.5.2","direct":false,"kind":"runtime","optional":false},{"id":25758817949,"package_name":"inflate64","ecosystem":"pypi","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":25758817950,"package_name":"iniconfig","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25758817951,"package_name":"ipykernel","ecosystem":"pypi","requirements":"6.30.1","direct":false,"kind":"runtime","optional":false},{"id":25758818205,"package_name":"ipython","ecosystem":"pypi","requirements":"9.6.0","direct":false,"kind":"runtime","optional":false},{"id":25758818206,"package_name":"ipython-pygments-lexers","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25758818325,"package_name":"isoduration","ecosystem":"pypi","requirements":"20.11.0","direct":false,"kind":"runtime","optional":false},{"id":25758818326,"package_name":"jaraco-classes","ecosystem":"pypi","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":25758818353,"package_name":"jaraco-context","ecosystem":"pypi","requirements":"6.0.1","direct":false,"kind":"runtime","optional":false},{"id":25758818354,"package_name":"jaraco-functools","ecosystem":"pypi","requirements":"4.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758818358,"package_name":"jedi","ecosystem":"pypi","requirements":"0.19.2","direct":false,"kind":"runtime","optional":false},{"id":25758818366,"package_name":"jeepney","ecosystem":"pypi","requirements":"0.9.0","direct":false,"kind":"runtime","optional":false},{"id":25758818373,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.6","direct":false,"kind":"runtime","optional":false},{"id":25758818374,"package_name":"json5","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":25758818390,"package_name":"jsonargparse","ecosystem":"pypi","requirements":"4.41.0","direct":false,"kind":"runtime","optional":false},{"id":25758818443,"package_name":"jsonnet","ecosystem":"pypi","requirements":"0.21.0","direct":false,"kind":"runtime","optional":false},{"id":25758818447,"package_name":"jsonpointer","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758818492,"package_name":"jsonschema","ecosystem":"pypi","requirements":"4.25.1","direct":false,"kind":"runtime","optional":false},{"id":25758818493,"package_name":"jsonschema-specifications","ecosystem":"pypi","requirements":"2025.9.1","direct":false,"kind":"runtime","optional":false},{"id":25758818509,"package_name":"jupyter-client","ecosystem":"pypi","requirements":"8.6.3","direct":false,"kind":"runtime","optional":false},{"id":25758818581,"package_name":"jupyter-core","ecosystem":"pypi","requirements":"5.8.1","direct":false,"kind":"runtime","optional":false},{"id":25758818583,"package_name":"jupyter-events","ecosystem":"pypi","requirements":"0.12.0","direct":false,"kind":"runtime","optional":false},{"id":25758818605,"package_name":"jupyter-lsp","ecosystem":"pypi","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758818764,"package_name":"jupyter-server","ecosystem":"pypi","requirements":"2.17.0","direct":false,"kind":"runtime","optional":false},{"id":25758818800,"package_name":"jupyter-server-terminals","ecosystem":"pypi","requirements":"0.5.3","direct":false,"kind":"runtime","optional":false},{"id":25758818995,"package_name":"jupyterlab","ecosystem":"pypi","requirements":"4.4.9","direct":false,"kind":"runtime","optional":false},{"id":25758818996,"package_name":"jupyterlab-pygments","ecosystem":"pypi","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758819011,"package_name":"jupyterlab-server","ecosystem":"pypi","requirements":"2.27.3","direct":false,"kind":"runtime","optional":false},{"id":25758819226,"package_name":"keyring","ecosystem":"pypi","requirements":"25.6.0","direct":false,"kind":"runtime","optional":false},{"id":25758819251,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"1.4.9","direct":false,"kind":"runtime","optional":false},{"id":25758819252,"package_name":"kornia","ecosystem":"pypi","requirements":"0.8.1","direct":false,"kind":"runtime","optional":false},{"id":25758819353,"package_name":"kornia-rs","ecosystem":"pypi","requirements":"0.1.9","direct":false,"kind":"runtime","optional":false},{"id":25758819354,"package_name":"lark","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758819366,"package_name":"lazy-loader","ecosystem":"pypi","requirements":"0.4","direct":false,"kind":"runtime","optional":false},{"id":25758819372,"package_name":"lightly","ecosystem":"pypi","requirements":"1.5.22","direct":false,"kind":"runtime","optional":false},{"id":25758819404,"package_name":"lightly-utils","ecosystem":"pypi","requirements":"0.0.2","direct":false,"kind":"runtime","optional":false},{"id":25758819407,"package_name":"lightning","ecosystem":"pypi","requirements":"2.5.5","direct":false,"kind":"runtime","optional":false},{"id":25758819414,"package_name":"lightning-utilities","ecosystem":"pypi","requirements":"0.15.2","direct":false,"kind":"runtime","optional":false},{"id":25758819416,"package_name":"locket","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758819712,"package_name":"markdown","ecosystem":"pypi","requirements":"3.9","direct":false,"kind":"runtime","optional":false},{"id":25758819713,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758819924,"package_name":"markupsafe","ecosystem":"pypi","requirements":"3.0.3","direct":false,"kind":"runtime","optional":false},{"id":25758819925,"package_name":"matplotlib","ecosystem":"pypi","requirements":"3.10.6","direct":false,"kind":"runtime","optional":false},{"id":25758819926,"package_name":"matplotlib-inline","ecosystem":"pypi","requirements":"0.1.7","direct":false,"kind":"runtime","optional":false},{"id":25758819934,"package_name":"mdurl","ecosystem":"pypi","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":25758819935,"package_name":"mistune","ecosystem":"pypi","requirements":"3.1.4","direct":false,"kind":"runtime","optional":false},{"id":25758820175,"package_name":"more-itertools","ecosystem":"pypi","requirements":"10.8.0","direct":false,"kind":"runtime","optional":false},{"id":25758820231,"package_name":"mpmath","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758820340,"package_name":"msgpack","ecosystem":"pypi","requirements":"1.1.2","direct":false,"kind":"runtime","optional":false},{"id":25758820341,"package_name":"multidict","ecosystem":"pypi","requirements":"6.7.0","direct":false,"kind":"runtime","optional":false},{"id":25758820342,"package_name":"multivolumefile","ecosystem":"pypi","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":25758820649,"package_name":"nbclient","ecosystem":"pypi","requirements":"0.10.2","direct":false,"kind":"runtime","optional":false},{"id":25758820676,"package_name":"nbconvert","ecosystem":"pypi","requirements":"7.16.6","direct":false,"kind":"runtime","optional":false},{"id":25758820876,"package_name":"nbformat","ecosystem":"pypi","requirements":"5.10.4","direct":false,"kind":"runtime","optional":false},{"id":25758821191,"package_name":"nest-asyncio","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":25758821300,"package_name":"networkx","ecosystem":"pypi","requirements":"3.5","direct":false,"kind":"runtime","optional":false},{"id":25758821332,"package_name":"nh3","ecosystem":"pypi","requirements":"0.3.1","direct":false,"kind":"runtime","optional":false},{"id":25758821358,"package_name":"nodeenv","ecosystem":"pypi","requirements":"1.9.1","direct":false,"kind":"runtime","optional":false},{"id":25758821392,"package_name":"notebook","ecosystem":"pypi","requirements":"7.4.7","direct":false,"kind":"runtime","optional":false},{"id":25758821419,"package_name":"notebook-shim","ecosystem":"pypi","requirements":"0.2.4","direct":false,"kind":"runtime","optional":false},{"id":25758821430,"package_name":"numpy","ecosystem":"pypi","requirements":"2.3.3","direct":false,"kind":"runtime","optional":false},{"id":25758821431,"package_name":"nvidia-cublas-cu12","ecosystem":"pypi","requirements":"12.6.4.1","direct":false,"kind":"runtime","optional":false},{"id":25758821504,"package_name":"nvidia-cuda-cupti-cu12","ecosystem":"pypi","requirements":"12.6.80","direct":false,"kind":"runtime","optional":false},{"id":25758821558,"package_name":"nvidia-cuda-nvrtc-cu12","ecosystem":"pypi","requirements":"12.6.77","direct":false,"kind":"runtime","optional":false},{"id":25758821594,"package_name":"nvidia-cuda-runtime-cu12","ecosystem":"pypi","requirements":"12.6.77","direct":false,"kind":"runtime","optional":false},{"id":25758821757,"package_name":"nvidia-cudnn-cu12","ecosystem":"pypi","requirements":"9.5.1.17","direct":false,"kind":"runtime","optional":false},{"id":25758821763,"package_name":"nvidia-cufft-cu12","ecosystem":"pypi","requirements":"11.3.0.4","direct":false,"kind":"runtime","optional":false},{"id":25758822089,"package_name":"nvidia-cufile-cu12","ecosystem":"pypi","requirements":"1.11.1.6","direct":false,"kind":"runtime","optional":false},{"id":25758822130,"package_name":"nvidia-curand-cu12","ecosystem":"pypi","requirements":"10.3.7.77","direct":false,"kind":"runtime","optional":false},{"id":25758822131,"package_name":"nvidia-cusolver-cu12","ecosystem":"pypi","requirements":"11.7.1.2","direct":false,"kind":"runtime","optional":false},{"id":25758822294,"package_name":"nvidia-cusparse-cu12","ecosystem":"pypi","requirements":"12.5.4.2","direct":false,"kind":"runtime","optional":false},{"id":25758822295,"package_name":"nvidia-cusparselt-cu12","ecosystem":"pypi","requirements":"0.6.3","direct":false,"kind":"runtime","optional":false},{"id":25758822296,"package_name":"nvidia-nccl-cu12","ecosystem":"pypi","requirements":"2.26.2","direct":false,"kind":"runtime","optional":false},{"id":25758822456,"package_name":"nvidia-nvjitlink-cu12","ecosystem":"pypi","requirements":"12.6.85","direct":false,"kind":"runtime","optional":false},{"id":25758822522,"package_name":"nvidia-nvtx-cu12","ecosystem":"pypi","requirements":"12.6.77","direct":false,"kind":"runtime","optional":false},{"id":25758822551,"package_name":"odc-geo","ecosystem":"pypi","requirements":"0.4.10","direct":false,"kind":"runtime","optional":false},{"id":25758822593,"package_name":"odc-loader","ecosystem":"pypi","requirements":"0.5.1","direct":false,"kind":"runtime","optional":false},{"id":25758822594,"package_name":"odc-stac","ecosystem":"pypi","requirements":"0.4.0","direct":false,"kind":"runtime","optional":false},{"id":25758822595,"package_name":"omegaconf","ecosystem":"pypi","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758822596,"package_name":"opencv-python","ecosystem":"pypi","requirements":"4.11.0.86","direct":false,"kind":"runtime","optional":false},{"id":25758822597,"package_name":"overrides","ecosystem":"pypi","requirements":"7.7.0","direct":false,"kind":"runtime","optional":false},{"id":25758822618,"package_name":"packaging","ecosystem":"pypi","requirements":"25.0","direct":false,"kind":"runtime","optional":false},{"id":25758822619,"package_name":"pandas","ecosystem":"pypi","requirements":"2.3.3","direct":false,"kind":"runtime","optional":false},{"id":25758822620,"package_name":"pandocfilters","ecosystem":"pypi","requirements":"1.5.1","direct":false,"kind":"runtime","optional":false},{"id":25758822645,"package_name":"parso","ecosystem":"pypi","requirements":"0.8.5","direct":false,"kind":"runtime","optional":false},{"id":25758822658,"package_name":"partd","ecosystem":"pypi","requirements":"1.4.2","direct":false,"kind":"runtime","optional":false},{"id":25758822790,"package_name":"pathspec","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":25758822791,"package_name":"pexpect","ecosystem":"pypi","requirements":"4.9.0","direct":false,"kind":"runtime","optional":false},{"id":25758822792,"package_name":"pillow","ecosystem":"pypi","requirements":"11.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758822793,"package_name":"planetary-computer","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758822832,"package_name":"platformdirs","ecosystem":"pypi","requirements":"4.5.0","direct":false,"kind":"runtime","optional":false},{"id":25758822833,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":25758822834,"package_name":"polars","ecosystem":"pypi","requirements":"1.34.0","direct":false,"kind":"runtime","optional":false},{"id":25758822979,"package_name":"polars-runtime-32","ecosystem":"pypi","requirements":"1.34.0","direct":false,"kind":"runtime","optional":false},{"id":25758823029,"package_name":"pre-commit","ecosystem":"pypi","requirements":"4.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758823030,"package_name":"prometheus-client","ecosystem":"pypi","requirements":"0.23.1","direct":false,"kind":"runtime","optional":false},{"id":25758823031,"package_name":"prompt-toolkit","ecosystem":"pypi","requirements":"3.0.52","direct":false,"kind":"runtime","optional":false},{"id":25758823271,"package_name":"propcache","ecosystem":"pypi","requirements":"0.3.2","direct":false,"kind":"runtime","optional":false},{"id":25758823286,"package_name":"protobuf","ecosystem":"pypi","requirements":"6.32.1","direct":false,"kind":"runtime","optional":false},{"id":25758823287,"package_name":"psutil","ecosystem":"pypi","requirements":"7.1.0","direct":false,"kind":"runtime","optional":false},{"id":25758823288,"package_name":"ptyprocess","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":25758823368,"package_name":"pure-eval","ecosystem":"pypi","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":25758823416,"package_name":"py7zr","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758823417,"package_name":"pyarrow","ecosystem":"pypi","requirements":"16.1.0","direct":false,"kind":"runtime","optional":false},{"id":25758823418,"package_name":"pybcj","ecosystem":"pypi","requirements":"1.0.6","direct":false,"kind":"runtime","optional":false},{"id":25758823420,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.23","direct":false,"kind":"runtime","optional":false},{"id":25758823421,"package_name":"pycryptodomex","ecosystem":"pypi","requirements":"3.23.0","direct":false,"kind":"runtime","optional":false},{"id":25758823438,"package_name":"pydantic","ecosystem":"pypi","requirements":"2.12.0","direct":false,"kind":"runtime","optional":false},{"id":25758823439,"package_name":"pydantic-core","ecosystem":"pypi","requirements":"2.41.1","direct":false,"kind":"runtime","optional":false},{"id":25758823440,"package_name":"pygments","ecosystem":"pypi","requirements":"2.19.2","direct":false,"kind":"runtime","optional":false},{"id":25758823441,"package_name":"pyogrio","ecosystem":"pypi","requirements":"0.11.1","direct":false,"kind":"runtime","optional":false},{"id":25758823477,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.2.5","direct":false,"kind":"runtime","optional":false},{"id":25758823478,"package_name":"pyppmd","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":25758823480,"package_name":"pyproj","ecosystem":"pypi","requirements":"3.7.2","direct":false,"kind":"runtime","optional":false},{"id":25758823526,"package_name":"pyproject-hooks","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":25758823538,"package_name":"pystac","ecosystem":"pypi","requirements":"1.14.1","direct":false,"kind":"runtime","optional":false},{"id":25758823595,"package_name":"pystac-client","ecosystem":"pypi","requirements":"0.9.0","direct":false,"kind":"runtime","optional":false},{"id":25758823596,"package_name":"pytest","ecosystem":"pypi","requirements":"8.4.2","direct":false,"kind":"runtime","optional":false},{"id":25758823597,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.9.0.post0","direct":false,"kind":"runtime","optional":false},{"id":25758823598,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25758823599,"package_name":"python-json-logger","ecosystem":"pypi","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758823600,"package_name":"pytorch-lightning","ecosystem":"pypi","requirements":"2.5.5","direct":false,"kind":"runtime","optional":false},{"id":25758823629,"package_name":"pytz","ecosystem":"pypi","requirements":"2025.2","direct":false,"kind":"runtime","optional":false},{"id":25758823630,"package_name":"pywin32","ecosystem":"pypi","requirements":"311","direct":false,"kind":"runtime","optional":false},{"id":25758823666,"package_name":"pywin32-ctypes","ecosystem":"pypi","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":25758823683,"package_name":"pywinpty","ecosystem":"pypi","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":25758823686,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0.3","direct":false,"kind":"runtime","optional":false},{"id":25758823687,"package_name":"pyzmq","ecosystem":"pypi","requirements":"27.1.0","direct":false,"kind":"runtime","optional":false},{"id":25758823702,"package_name":"pyzstd","ecosystem":"pypi","requirements":"0.18.0","direct":false,"kind":"runtime","optional":false},{"id":25758823708,"package_name":"rasterio","ecosystem":"pypi","requirements":"1.4.3","direct":false,"kind":"runtime","optional":false},{"id":25758823714,"package_name":"readme-renderer","ecosystem":"pypi","requirements":"44.0","direct":false,"kind":"runtime","optional":false},{"id":25758823715,"package_name":"referencing","ecosystem":"pypi","requirements":"0.36.2","direct":false,"kind":"runtime","optional":false},{"id":25758823716,"package_name":"requests","ecosystem":"pypi","requirements":"2.32.5","direct":false,"kind":"runtime","optional":false},{"id":25758823717,"package_name":"requests-toolbelt","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758823718,"package_name":"rfc3339-validator","ecosystem":"pypi","requirements":"0.1.4","direct":false,"kind":"runtime","optional":false},{"id":25758823769,"package_name":"rfc3986","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758823785,"package_name":"rfc3986-validator","ecosystem":"pypi","requirements":"0.1.1","direct":false,"kind":"runtime","optional":false},{"id":25758823817,"package_name":"rfc3987","ecosystem":"pypi","requirements":"1.3.8","direct":false,"kind":"runtime","optional":false},{"id":25758823825,"package_name":"rfc3987-syntax","ecosystem":"pypi","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25758823829,"package_name":"rich","ecosystem":"pypi","requirements":"14.1.0","direct":false,"kind":"runtime","optional":false},{"id":25758823830,"package_name":"rioxarray","ecosystem":"pypi","requirements":"0.19.0","direct":false,"kind":"runtime","optional":false},{"id":25758823861,"package_name":"rpds-py","ecosystem":"pypi","requirements":"0.27.1","direct":false,"kind":"runtime","optional":false},{"id":25758823862,"package_name":"rtree","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"runtime","optional":false},{"id":25758823896,"package_name":"ruff","ecosystem":"pypi","requirements":"0.14.0","direct":false,"kind":"runtime","optional":false},{"id":25758823897,"package_name":"safetensors","ecosystem":"pypi","requirements":"0.6.2","direct":false,"kind":"runtime","optional":false},{"id":25758823907,"package_name":"scikit-image","ecosystem":"pypi","requirements":"0.25.2","direct":false,"kind":"runtime","optional":false},{"id":25758824043,"package_name":"scipy","ecosystem":"pypi","requirements":"1.16.2","direct":false,"kind":"runtime","optional":false},{"id":25758824044,"package_name":"secretstorage","ecosystem":"pypi","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":25758824052,"package_name":"segmentation-models-pytorch","ecosystem":"pypi","requirements":"0.5.0","direct":false,"kind":"runtime","optional":false},{"id":25758824075,"package_name":"send2trash","ecosystem":"pypi","requirements":"1.8.3","direct":false,"kind":"runtime","optional":false},{"id":25758824089,"package_name":"setuptools","ecosystem":"pypi","requirements":"80.9.0","direct":false,"kind":"runtime","optional":false},{"id":25758824090,"package_name":"shapely","ecosystem":"pypi","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":25758824108,"package_name":"six","ecosystem":"pypi","requirements":"1.17.0","direct":false,"kind":"runtime","optional":false},{"id":25758824109,"package_name":"sniffio","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":25758824110,"package_name":"sortedcontainers","ecosystem":"pypi","requirements":"2.4.0","direct":false,"kind":"runtime","optional":false},{"id":25758824153,"package_name":"soupsieve","ecosystem":"pypi","requirements":"2.8","direct":false,"kind":"runtime","optional":false},{"id":25758824154,"package_name":"stack-data","ecosystem":"pypi","requirements":"0.6.3","direct":false,"kind":"runtime","optional":false},{"id":25758824165,"package_name":"sympy","ecosystem":"pypi","requirements":"1.14.0","direct":false,"kind":"runtime","optional":false},{"id":25758824166,"package_name":"tblib","ecosystem":"pypi","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":25758824167,"package_name":"tenacity","ecosystem":"pypi","requirements":"9.1.2","direct":false,"kind":"runtime","optional":false},{"id":25758824168,"package_name":"tensorboard","ecosystem":"pypi","requirements":"2.20.0","direct":false,"kind":"runtime","optional":false},{"id":25758824180,"package_name":"tensorboard-data-server","ecosystem":"pypi","requirements":"0.7.2","direct":false,"kind":"runtime","optional":false},{"id":25758824182,"package_name":"tensorboardx","ecosystem":"pypi","requirements":"2.6.4","direct":false,"kind":"runtime","optional":false},{"id":25758824198,"package_name":"terminado","ecosystem":"pypi","requirements":"0.18.1","direct":false,"kind":"runtime","optional":false},{"id":25758824207,"package_name":"texttable","ecosystem":"pypi","requirements":"1.7.0","direct":false,"kind":"runtime","optional":false},{"id":25758824208,"package_name":"tifffile","ecosystem":"pypi","requirements":"2025.10.4","direct":false,"kind":"runtime","optional":false},{"id":25758824210,"package_name":"timm","ecosystem":"pypi","requirements":"1.0.20","direct":false,"kind":"runtime","optional":false},{"id":25758824212,"package_name":"tinycss2","ecosystem":"pypi","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":25758824213,"package_name":"toolz","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758824216,"package_name":"torch","ecosystem":"pypi","requirements":"2.7.1","direct":false,"kind":"runtime","optional":false},{"id":25758824217,"package_name":"torchgeo","ecosystem":"pypi","requirements":"0.7.1","direct":false,"kind":"runtime","optional":false},{"id":25758824220,"package_name":"torchmetrics","ecosystem":"pypi","requirements":"1.8.2","direct":false,"kind":"runtime","optional":false},{"id":25758824221,"package_name":"torchvision","ecosystem":"pypi","requirements":"0.22.1","direct":false,"kind":"runtime","optional":false},{"id":25758824226,"package_name":"tornado","ecosystem":"pypi","requirements":"6.5.2","direct":false,"kind":"runtime","optional":false},{"id":25758824227,"package_name":"tqdm","ecosystem":"pypi","requirements":"4.67.1","direct":false,"kind":"runtime","optional":false},{"id":25758824228,"package_name":"traitlets","ecosystem":"pypi","requirements":"5.14.3","direct":false,"kind":"runtime","optional":false},{"id":25758824231,"package_name":"triton","ecosystem":"pypi","requirements":"3.3.1","direct":false,"kind":"runtime","optional":false},{"id":25758824237,"package_name":"trove-classifiers","ecosystem":"pypi","requirements":"2025.9.11.17","direct":false,"kind":"runtime","optional":false},{"id":25758824243,"package_name":"twine","ecosystem":"pypi","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":25758824245,"package_name":"types-python-dateutil","ecosystem":"pypi","requirements":"2.9.0.20251008","direct":false,"kind":"runtime","optional":false},{"id":25758824251,"package_name":"typeshed-client","ecosystem":"pypi","requirements":"2.8.2","direct":false,"kind":"runtime","optional":false},{"id":25758824257,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.15.0","direct":false,"kind":"runtime","optional":false},{"id":25758824258,"package_name":"typing-inspection","ecosystem":"pypi","requirements":"0.4.2","direct":false,"kind":"runtime","optional":false},{"id":25758824259,"package_name":"tzdata","ecosystem":"pypi","requirements":"2025.2","direct":false,"kind":"runtime","optional":false},{"id":25758824260,"package_name":"ultralytics","ecosystem":"pypi","requirements":"8.3.207","direct":false,"kind":"runtime","optional":false},{"id":25758824266,"package_name":"ultralytics-thop","ecosystem":"pypi","requirements":"2.0.17","direct":false,"kind":"runtime","optional":false},{"id":25758824271,"package_name":"uri-template","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25758824282,"package_name":"urllib3","ecosystem":"pypi","requirements":"2.5.0","direct":false,"kind":"runtime","optional":false},{"id":25758824283,"package_name":"virtualenv","ecosystem":"pypi","requirements":"20.34.0","direct":false,"kind":"runtime","optional":false},{"id":25758824307,"package_name":"wcwidth","ecosystem":"pypi","requirements":"0.2.14","direct":false,"kind":"runtime","optional":false},{"id":25758824308,"package_name":"webcolors","ecosystem":"pypi","requirements":"24.11.1","direct":false,"kind":"runtime","optional":false},{"id":25758824310,"package_name":"webencodings","ecosystem":"pypi","requirements":"0.5.1","direct":false,"kind":"runtime","optional":false},{"id":25758824319,"package_name":"websocket-client","ecosystem":"pypi","requirements":"1.9.0","direct":false,"kind":"runtime","optional":false},{"id":25758824329,"package_name":"werkzeug","ecosystem":"pypi","requirements":"3.1.3","direct":false,"kind":"runtime","optional":false},{"id":25758824342,"package_name":"wget","ecosystem":"pypi","requirements":"3.2","direct":false,"kind":"runtime","optional":false},{"id":25758824346,"package_name":"xarray","ecosystem":"pypi","requirements":"2025.10.1","direct":false,"kind":"runtime","optional":false},{"id":25758824460,"package_name":"yarl","ecosystem":"pypi","requirements":"1.22.0","direct":false,"kind":"runtime","optional":false},{"id":25758824462,"package_name":"zict","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25758824484,"package_name":"zipp","ecosystem":"pypi","requirements":"3.23.0","direct":false,"kind":"runtime","optional":false}]}],"score":14.787579551706651,"created_at":"2024-11-25T00:05:48.437Z","updated_at":"2026-05-02T15:30:18.417Z","avatar_url":"https://github.com/fieldsoftheworld.png","language":"Jupyter Notebook","category":"Consumption","sub_category":"Agriculture and Nutrition","monthly_downloads":841,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"\n# Fields of The World (FTW) - Baselines Codebase \u003c!-- omit in toc --\u003e\n\n[**Fields of The World (FTW)**](https://fieldsofthe.world/) is a large-scale benchmark dataset designed to advance machine learning models for instance segmentation of agricultural field boundaries. This dataset supports the need for accurate and scalable field boundary data, which is essential for global agricultural monitoring, land use assessments, and environmental studies.\n\nThis repository provides the codebase for working with the [FTW dataset](https://beta.source.coop/repositories/kerner-lab/fields-of-the-world/description/), including tools for data pre-processing, model training, and evaluation.\n\n\u003e [!NOTE]\n\u003e The Fields of The World Command Line Inferface (FTW CLI), published under the name `ftw-tools`, currently lives in this `ftw-baselines` repository due to legacy reasons. We plan to migrate the FTW CLI and related tools into an `ftw-tools` repository soon. Until then, the latest and most complete version of the FTW CLI still lives in `ftw-baselines`.\n\n## Table of Contents \u003c!-- omit in toc --\u003e\n\n- [System setup](#system-setup)\n  - [Using uv (Recommended)](#using-uv-recommended)\n    - [Installation](#installation)\n    - [Environment Setup](#environment-setup)\n    - [Usage](#usage)\n    - [Development Setup](#development-setup)\n    - [Verify Installation](#verify-installation)\n- [Predicting field boundaries](#predicting-field-boundaries)\n  - [FTW Semantic Segmentation Baseline Model](#ftw-semantic-segmentation-baseline-model)\n    - [1. Decide which model you want to use](#1-decide-which-model-you-want-to-use)\n    - [2. FTW Inference all (using `ftw inference all`)](#2-ftw-inference-all-using-ftw-inference-all)\n    - [3. Download S2 image scene (using `ftw inference download`)](#3-download-s2-image-scene-using-ftw-inference-download)\n    - [4. Run inference (using `ftw inference run`)](#4-run-inference-using-ftw-inference-run)\n    - [5. Filter predictions by land cover (using `ftw inference filter-by-lulc`)](#5-filter-predictions-by-land-cover-using-ftw-inference-filter-by-lulc)\n    - [6. Polygonize the output (using `ftw inference polygonize`)](#6-polygonize-the-output-using-ftw-inference-polygonize)\n  - [Delineate Anything](#delineate-anything)\n    - [1. End-to-end inference (using `ftw inference instance-segmentation-all`)](#1-end-to-end-inference-using-ftw-inference-instance-segmentation-all)\n- [FTW Baseline Dataset](#ftw-baseline-dataset)\n  - [Download the FTW Baseline Dataset](#download-the-ftw-baseline-dataset)\n  - [Visualize the FTW Baseline Dataset](#visualize-the-ftw-baseline-dataset)\n- [CC-BY vs. the full model](#cc-by-vs-the-full-model)\n- [Experimentation](#experimentation)\n- [Notes](#notes)\n- [Upcoming features](#upcoming-features)\n- [Contributing](#contributing)\n- [Release](#release)\n- [License](#license)\n\n## System setup\n\nTo ensure consistent behavior and compatibility, use a dedicated Python virtual environment to isolate the dependencies for the FTW CLI (ftw-tools).\n\n### Using uv (Recommended)\n\n\n#### Installation\n\nFirst, install `uv` if you haven't already:\n\n```bash\n# On macOS and Linux:\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# On Windows:\npowershell -c \"irm https://astral.sh/uv/install.ps1 | iex\"\n\n# Or via pip:\npip install uv\n```\n\n#### Environment Setup\n\nCreate a virtual environment:\n```bash\nuv venv\n```\n\nActivate your virtual environment:\n```bash\n# On macOS and Linux:\nsource .venv/bin/activate\n\n# On Windows:\n.venv\\Scripts\\activate\n```\n\nInstall ftw-tools in development mode:\n```bash\nuv sync --all-extras --dev\n```\n\n#### Usage\n\nUsing the FTW CLI:\n\n```bash\n# Use the FTW CLI directly (no prefix needed)\nftw --help\n\n# Run any ftw command\nftw data download --countries=Rwanda\nftw model fit -c configs/example_config.yaml\n```\n\n#### Development Setup\n\nFor development work with testing and linting tools:\n\n```bash\n\n# Run tests\nuv run pytest tests/  # uses xdist via default -n auto\n\n# Set up pre-commit hooks (only run this once)\nuv run pre-commit install\n\n# Run pre-commit hooks\nuv run pre-commit run --all-files\n```\n\nTo install the optional delineate-anything feature:\n\n```bash\nuv sync --extra delineate-anything\n```\n\nTo install everything (all optional dependencies):\n\n```bash\nuv sync --all-extras\n```\n\n#### Verify Installation\n\nTo confirm the FTW CLI is properly installed:\n\n```bash\n# Check FTW CLI\nftw --help\n\n# Check PyTorch\nuv run python -c \"import torch; print('PyTorch:', torch.__version__); print('CUDA available:', torch.cuda.is_available())\"\n\n# Check geospatial stack\nuv run python -c \"import rasterio, geopandas; print('Geospatial stack working')\"\n\n# Check FTW CLI import\nuv run python -c \"from ftw_tools.cli import ftw; print('FTW CLI ready')\"\n```\n\nYou should see:\n\nYou should see:\n\n```text\nUsage: ftw [OPTIONS] COMMAND [ARGS]...\n\n  Fields of The World (FTW) - Command Line Interface\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  data       Downloading, unpacking, and preparing the FTW dataset.\n  inference  Running inference on satellite images plus data prep.\n  model      Training and testing FTW models.\n```\n\n## Predicting field boundaries\n\nThe following commands show the steps for using the FTW CLI to obtain the FTW model and data, and then run an inference using that model on that data, and finally polygonizing that output. This example uses a pair of Sentinel-2 (S2) scenes over Austria.\n\n\u003e **Note**: Make sure you have activated your Python virtual environment before running these commands (e.g., `source venv/bin/activate`).\n\n### FTW Semantic Segmentation Baseline Model\n\n#### 1. Decide which model you want to use\n\nIn order to use `ftw inference` you need to select one of the released models.\nThe easiest way to browse them from the CLI is:\n\n```bash\nftw model list\nftw model show FTW_PRUE_EFNET_B5\n```\n\nThe full registry is defined in `ftw_tools/inference/model_registry.py`, and release assets are available [here](https://github.com/fieldsoftheworld/ftw-baselines/releases).\n\n**Note**: If you want more control ie provide specific Sentinel2 scenes to work with follow steps 3-6 to run each part of the inference pipeline sequentially. There is the option to run step 2 `all` which links together the distinct inference steps. If you decide to run step 2 you will get extracted field boundaries as polygons and don't need to proceed with steps 3-6.\n\n#### 2. FTW Inference all (using `ftw inference all`)\n\nThis single CLI call handles the complete inference pipeline: Sentinel-2 scene selection, imagery download, model inference, and polygonization. Sentinel-2 data is selected based on the crop [calendar harvest dates](https://github.com/ucg-uv/research_products/tree/main?tab=readme-ov-file#-citation).\n\n```text\nftw inference all --help\n\nUsage: ftw inference all [OPTIONS]\n\n  Run all inference commands from crop calendar scene selection,then download,\n  inference and polygonize.\n\nOptions:\n  -o, --out PATH                  Directory to save downloaded inference\n                                  imagery, and inference output to  [required]\n  -m, --model str                String representation of released model name.  [required]\n  --year INTEGER RANGE            Year to run model inference over\n                                  [2015\u003c=x\u003c=2025; required]\n  --bbox TEXT                     Bounding box to use for the download in the\n                                  format 'minx,miny,maxx,maxy'\n  -ccx, --cloud_cover_max INTEGER RANGE\n                                  Maximum percentage of cloud cover allowed in\n                                  the Sentinel-2 scene  [default: 20;\n                                  0\u003c=x\u003c=100]\n  -b, --buffer_days INTEGER RANGE\n                                  Number of days to buffer the date for\n                                  querying to help balance decreasing cloud\n                                  cover and selecting a date near the crop\n                                  calendar indicated date.  [default: 14;\n                                  x\u003e=0]\n  -ndx, --nodata_max INTEGER RANGE\n                                  Maximum percentage of nodata pixels allowed\n                                  in the Sentinel-2 scene. Scenes with higher\n                                  nodata percentages (lower area coverage)\n                                  will be filtered out. Supported for both\n                                  Microsoft Planetary Computer and EarthSearch\n                                  backends.  [0\u003c=x\u003c=100]\n  -f, --overwrite                 Overwrites the outputs if they exist\n  -r, --resize_factor INTEGER RANGE\n                                  Resize factor to use for inference.\n                                  [default: 2; x\u003e=1]\n  --gpu INTEGER                   GPU to use, zero-based index. Set to -1 to\n                                  use CPU. CPU is also always used if CUDA or\n                                  MPS is not available.  [default: -1]\n  -ps, --patch_size INTEGER RANGE\n                                  Size of patch to use for inference. Defaults\n                                  to 1024 unless the image is \u003c 1024x1024px\n                                  and a smaller value otherwise.  [x\u003e=128]\n  -bs, --batch_size INTEGER RANGE\n                                  Batch size.  [default: 2; x\u003e=1]\n  --num_workers INTEGER RANGE     Number of workers to use for inference.\n                                  [default: 4; x\u003e=1]\n  -p, --padding INTEGER RANGE     Pixels to discard from each side of the\n                                  patch. Defaults to 64 unless the image is \u003c\n                                  1024x1024px and a smaller value otherwise.\n                                  [x\u003e=0]\n  -mps, --mps_mode                Run inference in MPS mode (Apple GPUs).\n  --save_scores                   Save segmentation softmax scores (rescaled to [0,255])\n                                  instead of classes (argmax of scores)\n  -h, --stac_host [mspc|earthsearch]\n                                  The host to download the imagery from. mspc\n                                  = Microsoft Planetary Computer, earthsearch\n                                  = EarthSearch (Element84/AWS).  [default:\n                                  mspc]\n  -s2, --s2_collection [old-baseline|c1]\n                                  Sentinel-2 collection to use with\n                                  EarthSearch only: 'old-baseline' =\n                                  sentinel-2-l2a, 'c1' = sentinel-2-c1-l2a\n                                  (default). Ignored when using MSPC.\n                                  [default: c1]\n  -v, --verbose                   Enable verbose output showing STAC calls,\n                                  scene details, and download URLs.\n  --help                          Show this message and exit.\n```\n\nExample usage:\n\n```bash\nftw inference all \\\n    --bbox=13.0,48.0,13.2,48.2 \\\n    --year=2024 \\\n    --out=/path/to/output \\\n    --cloud_cover_max=20 \\\n    --buffer_days=14 \\\n    --model=FTW_3_Class_FULL_multiWindow \\\n    --resize_factor=2 \\\n    --overwrite\n```\n\nTo filter out scenes with low area coverage (high nodata percentage), add the `--nodata_max` parameter:\n\n```bash\nftw inference all \\\n    --bbox=13.0,48.0,13.2,48.2 \\\n    --year=2024 \\\n    --out=/path/to/output \\\n    --cloud_cover_max=20 \\\n    --nodata_max=50 \\\n    --buffer_days=14 \\\n    --model=FTW_3_Class_FULL_multiWindow \\\n    --resize_factor=2 \\\n    --overwrite\n```\n\nThis will exclude any scenes where more than 50% of pixels are nodata (i.e., only scenes with \u003e50% area coverage will be selected).\n\nThis will create the following files in the output directory:\n\n- `inference_data.tif` - The downloaded and stacked Sentinel-2 imagery\n- `inference_output.tif` - The raw model inference output\n- `polygons.parquet` - The final polygonized field boundaries\n\n#### 3. Download S2 image scene (using `ftw inference download`)\n\nSteps 3-5 all use `ftw inference`. We provide the `inference` CLI commands to allow users to run models that have been pre-trained on FTW on any temporal pair of S2 images.\n\n```text\nftw inference --help\n\nUsage: ftw inference [OPTIONS] COMMAND [ARGS]...\n\n  Inference-related commands.\n\nOptions:\n  --help  Show this message and exit.\n\nCommands:\n  download    Download 2 Sentinel-2 scenes \u0026 stack them in a single file...\n  polygonize  Polygonize the output from inference\n  run         Run inference on the stacked satellite images\n```\n\nYou need to concatenate the bands of two aligned Sentinel-2 scenes that show your area of interest in two seasons (e.g. planting and harvesting seasons) in the following order: B04_t1, BO3_t1, BO2_t1, B08_t1, B04_t2, BO3_t2, BO2_t2, B08_t2 (t1 and t2 represent two different points in time). The `ftw inference download` command does this automatically given two STAC items. The Microsoft [Planetary Computer Explorer](https://planetarycomputer.microsoft.com/explore?d=sentinel-2-l2a) is a convenient tool for finding relevant scenes and their corresponding STAC items.\n\nTo select the timeframe for the two images (Window A and Window B), we looked at the [crop calendar](https://ipad.fas.usda.gov/ogamaps/cropcalendar.aspx) by USDA and found the approximate time for planting and harvesting. For example, if you open the crop calendar and select [China](https://ipad.fas.usda.gov/rssiws/al/crop_calendar/che.aspx), you will find that most of the crops are planted from Feb to May, and harvested from Aug to Nov. We then put these dates as filtering parameters in the Planetary Computer Explorer. Set the cloud threshold to 10% or less. Then select a clear observation that covers the full tile.\n\n```text\nftw inference download --help\n\nUsage: ftw inference download [OPTIONS]\n\n  Download 2 Sentinel-2 scenes \u0026 stack them in a single file for inference.\n\nOptions:\n  --win_a TEXT     URL to or Microsoft Planetary Computer ID of an Sentinel-2\n                   L2A STAC item for the window A image  [required]\n  --win_b TEXT     URL to or Microsoft Planetary Computer ID of an Sentinel-2\n                   L2A STAC item for the window B image  [required]\n  -o, --out TEXT   Filename to save results to  [required]\n  -f, --overwrite  Overwrites the outputs if they exist\n  --bbox TEXT      Bounding box to use for the download in the format\n                   'minx,miny,maxx,maxy'\n  --help           Show this message and exit.\n```\n\nRun this line to download our S2 scenes of interest. This line specifies a bounding box (bbox) to download a smaller subset of the data, with `--bbox 13.0,48.0,13.3,48.3`. If you leave that off you'll get the full S2 scenes downloaded.\n\n  ```bash\n  ftw inference download --win_a S2B_MSIL2A_20210617T100559_R022_T33UUP_20210624T063729 --win_b S2B_MSIL2A_20210925T101019_R022_T33UUP_20210926T121923 --out inference_imagery/austria_example.tif --bbox 13.0,48.0,13.3,48.3\n  ```\n\n  If you are looking to download data from the FTW Baseline Dataset, you would use `ftw data download`. You can see an example of this lower on this README in the [FTW Baseline Dataset](#ftw-baseline-dataset) section.\n\n#### 4. Run inference (using `ftw inference run`)\n\n`ftw inference run` is the command that will run a given model on overlapping patches of input imagery (i.e. the output of `ftw inference download`) and stitch the results together in GeoTIFF format.\n\n```text\nftw inference run --help\n\nUsage: ftw inference run [OPTIONS] INPUT\n\n  Run inference on the stacked Sentinel-2 L2A satellite images specified via\n  INPUT.\n\nOptions:\n  -m, --model str                 String name of released model, valid model names are defined in `model_registry.py`.  [required]\n  -o, --out PATH                  Output filename for the inference imagery.\n                                  Defaults to the name of the input file name\n                                  with 'inference.' prefix.\n  -r, --resize_factor INTEGER RANGE\n                                  Resize factor to use for inference.\n                                  [default: 2; x\u003e=1]\n  --gpu INTEGER                   GPU to use, zero-based index. Set to -1 to\n                                  use CPU. CPU is also always used if CUDA or\n                                  MPS is not available.  [default: -1]\n  -ps, --patch_size INTEGER RANGE\n                                  Size of patch to use for inference. Defaults\n                                  to 1024 unless the image is \u003c 1024x1024px\n                                  and a smaller value otherwise.  [x\u003e=128]\n  -bs, --batch_size INTEGER RANGE\n                                  Batch size.  [default: 2; x\u003e=1]\n  --num_workers INTEGER RANGE     Number of workers to use for inference.\n                                  [default: 4; x\u003e=1]\n  -p, --padding INTEGER RANGE     Pixels to discard from each side of the\n                                  patch. Defaults to 64 unless the image is \u003c\n                                  1024x1024px and a smaller value otherwise.\n                                  [x\u003e=0]\n  -f, --overwrite                 Overwrite outputs if they exist.\n  -mps, --mps_mode                Run inference in MPS mode (Apple GPUs).\n  --save_scores                   Save segmentation softmax scores (rescaled to [0,255])\n                                  instead of classes (argmax of scores)\n  --help                          Show this message and exit.\n```\n\nLet's run inference on the entire downloaded scene.\n\n  ```bash\n  ftw inference run inference_imagery/austria_example.tif --model 3_Class_FULL_FTW_Pretrained.ckpt --out austria_example_output_full.tif --gpu 0 --overwrite\n  ```\n\n#### 5. Filter predictions by land cover (using `ftw inference filter-by-lulc`)\n\nFTW models are known to make some errors where land parcels that are not cropland (for example, pasture) are segmented as fields. You can try to filter out these errors by filtering the predicted map using a land cover/land use map. The `ftw inference filter-by-lulc` command filters the GeoTIFF predictions raster to only include pixels that are cropland in the land cover map.\n\n```text\nftw inference filter-by-lulc --help\n\nUsage: ftw inference filter-by-lulc [OPTIONS] INPUT\n\n  Filter the output raster in GeoTIFF format by LULC mask.\n\nOptions:\n  -o, --out TEXT          Output filename for the (filtered) polygonized data.\n                          Defaults to the name of the input file with parquet\n                          extension. Available file extensions: .parquet\n                          (GeoParquet, fiboa-compliant), .fgb (FlatGeoBuf),\n                          .gpkg (GeoPackage), .geojson / .json / .ndjson\n                          (GeoJSON)\n  -f, --overwrite         Overwrite outputs if they exist.\n  --collection_name TEXT  Name of the LULC collection to use. Available\n                          collections: io-lulc-annual-v02 (default) and esa-\n                          worldcover\n  --save_lulc_tif         Save the LULC mask as a GeoTIFF.\n  --help                  Show this message and exit.\n```\n\n#### 6. Polygonize the output (using `ftw inference polygonize`)\n\nYou can then use the `ftw inference polygonize` command to convert the output of the inference into a vector format (defaults to GeoParquet/[fiboa](https://github.com/fiboa/), with GeoPackage, FlatGeobuf and GeoJSON as other options).\n\n```text\nftw inference polygonize --help\n\nUsage: ftw inference polygonize [OPTIONS] INPUT\n\n  Polygonize the output from inference for the raster image given via INPUT.\n  Results are in the CRS of the given raster image.\n\nOptions:\n  -o, --out PATH                  Output filename for the polygonized data.\n                                  Defaults to the name of the input file with\n                                  '.parquet' file extension. Available file\n                                  extensions: .parquet (GeoParquet, fiboa-\n                                  compliant), .fgb (FlatGeoBuf), .gpkg\n                                  (GeoPackage), .geojson / .json / .ndjson\n                                  (GeoJSON)\n  -s, --simplify FLOAT RANGE      Simplification factor to use when\n                                  polygonizing in the unit of the CRS, e.g.\n                                  meters for Sentinel-2 imagery in UTM. Set to\n                                  0 to disable simplification.  [default: 15;\n                                  x\u003e=0.0]\n  -sn, --min_size FLOAT RANGE     Minimum area size in square meters to\n                                  include in the output. Set to 0 to disable.\n                                  [default: 500; x\u003e=0.0]\n  -sx, --max_size FLOAT RANGE     Maximum area size in square meters to\n                                  include in the output. Disabled by default.\n                                  [x\u003e=0.0]\n  -f, --overwrite                 Overwrite output if it exists.\n  --close_interiors               Remove the interiors holes in the polygons.\n  -st, --stride INTEGER RANGE     Stride size (in pixels) for cutting tif into\n                                  smaller tiles for polygonizing. Helps avoid\n                                  OOM errors.  [default: 2048; x\u003e=0]\n  --softmax_threshold FLOAT RANGE\n                                  Threshold on softmax scores for class\n                                  predictions. Note: To use this option, you\n                                  must pass a tif of scores (using\n                                  `--save_scores` option from `ftw inference\n                                  run`).  [0\u003c=x\u003c=1]\n  -ma, --merge_adjacent FLOAT RANGE\n                                  Threshold for merging adjacent polygons.\n                                  Threshold is the percent of a polygon's\n                                  perimeter touching another polygon.\n                                  [0.0\u003c=x\u003c=1.0]\n  -ed, --erode_dilate FLOAT RANGE\n                                  Distance (in CRS units, e.g., meters) for a\n                                  morphological opening (erode then dilate)\n                                  applied to each polygon to shave spurs and\n                                  remove thin slivers. Set 0 to disable. A\n                                  good starting value is 0.5–1x the raster\n                                  pixel size.  [default: 0; x\u003e=0.0]\n  -de, --dilate_erode FLOAT RANGE\n                                  Distance (in CRS units, e.g., meters) for a\n                                  morphological closing (dilate then erode)\n                                  applied to each polygon to seal hairline\n                                  gaps, fill pinholes, and connect near-\n                                  touching parts without net growth. Set 0 to\n                                  disable. A good starting value is 0.5–1x the\n                                  raster pixel size.  [default: 0; x\u003e=0.0]\n  -edr, --erode_dilate_raster INTEGER RANGE\n                                  Number of iterations for a morphological\n                                  opening (erode then dilate) applied to\n                                  raster mask before polygonization. Set to 0\n                                  to disable.  [default: 0; x\u003e=0]\n  -der, --dilate_erode_raster INTEGER RANGE\n                                  Number of iterations for a morphological\n                                  closing (dilate then erode) applied to\n                                  raster mask before polygonization. Set to 0\n                                  to disable.  [default: 0; x\u003e=0]\n  -tb, --thin_boundaries          Thin boundaries before polygonization using\n                                  Zhang-Suen thinning algorithm.\n  --help                          Show this message and exit.\n```\n\nSimplification factor is measured in the units of the coordinate reference system (CRS), and for Sentinel-2 this is meters, so a simplification factor of 15 or 20 is usually sufficient (and recommended, or the vector file will be as large as the raster file).\n\n  ```bash\n  ftw inference polygonize austria_example_output_full.tif --simplify 20\n  ```\n\nThis results in a fiboa-compliant file named `austria_example_output_full.parquet`. You can then view this file in QGIS to see something similar to the following image of the sample prediction output. The polygons in red are the predicted fields.\n\n![Sample Prediction Output](/assets/austria_prediction.png)\n\nAnd that's it! In 4 lines of code, you obtained an FTW model, downloaded S2 data, ran model inference on that data, and polygonized the output to have a final parquet product.\n\n### Delineate Anything\n\n#### 1. End-to-end inference (using `ftw inference instance-segmentation-all`)\n\n[Delineate Anything](https://lavreniuk.github.io/Delineate-Anything/) is a pretrained instance segmentation which can detect and segment out individual field boundaries directly to polygons without an intermediate predictions raster. It's trained on the [FBIS-22M](https://huggingface.co/datasets/MykolaL/FBIS-22M) which is a large-scale, multi-resolution dataset comprising 672,909 high-resolution satellite image patches (0.25 m – 10 m) and 22,926,427 instance masks of individual fields. The model comes in two variants: `DelineateAnything` and `DelineateAnything-S`. `DelineateAnything` is the full model and `DelineateAnything-S` is a smaller model that is faster to run (see table below for details). If you use this model in your research, please cite the [Delineate Anything paper](https://arxiv.org/abs/2504.02534).\n\n| Method                   | mAP@0.5 | mAP@0.5:0.95 | Latency (ms) | Size    |\n| ------------------------ | ------- | ------------ | ------------ | ------- |\n| **Delineate Anything-S** | 0.632   | 0.383        | 16.8         | 17.6 MB |\n| **Delineate Anything**   | 0.720   | 0.477        | 25.0         | 125 MB  |\n\nYou can run Delineate Anything on a single scene using the `ftw inference instance-segmentation-all` command or optionally on an existing local file using `ftw inference run-instance-segmentation`. See below for examples.\n\nNote that inference uses patching with overlap which will result in duplicate polygons in the overlapping regions. Postprocessing is used to merge polygons via IoU and containment thresholds which are defined by the `--overlap_iou_threshold` and `--overlap_contain_threshold` parameters. For large scenes with many polygons or using a low confidence threshold, this can become computationally slow.\n\nExample usage:\n\n```bash\nftw inference instance-segmentation-all \\\n    S2B_MSIL2A_20210617T100559_R022_T33UUP_20210624T063729 \\\n    --bbox=13.0,48.0,13.2,48.2 \\\n    --out_dir=instance-segmentation-output \\\n    --gpu=0 \\\n    --model=DelineateAnything \\\n    --resize_factor=2 \\\n    --patch_size=256 \\\n    --max_detections=100 \\\n    --iou_threshold=0.3 \\\n    --conf_threshold=0.05 \\\n    --simplify=2 \\\n    --min_size=500 \\\n    --close_interiors \\\n    --overlap_iou_threshold=0.2 \\\n    --overlap_contain_threshold=0.8 \\\n    --overwrite\n```\n\nUsage:\n\n```text\nftw inference instance-segmentation-all --help\nUsage: ftw inference instance-segmentation-all [OPTIONS] INPUT\n\n  Run all inference instance segmentation commands from download and\n  inference.\n\nOptions:\n  --bbox TEXT                     Bounding box to use for the download in the\n                                  format 'minx,miny,maxx,maxy'\n  -o, --out_dir TEXT              Directory to save downloaded inference\n                                  imagery, and inference output to  [required]\n  -h, --stac_host [mspc|earthsearch]\n                                  The host to download the imagery from. mspc\n                                  = Microsoft Planetary Computer, earthsearch\n                                  = EarthSearch (Element84/AWS).  [default:\n                                  mspc]\n  -m, --model [DelineateAnything|DelineateAnything-S]\n                                  The model to use for inference.  [default:\n                                  DelineateAnything]\n  --gpu INTEGER RANGE             GPU ID to use. If not provided, CPU will be\n                                  used by default.  [x\u003e=0]\n  -r, --resize_factor INTEGER RANGE\n                                  Resize factor to use for inference.\n                                  [default: 2; x\u003e=1]\n  -ps, --patch_size INTEGER RANGE\n                                  Size of patch to use for inference.\n                                  [x\u003e=128]\n  -bs, --batch_size INTEGER RANGE\n                                  Batch size.  [default: 4; x\u003e=1]\n  --num_workers INTEGER RANGE     Number of workers to use for inference.\n                                  [default: 4; x\u003e=1]\n  --max_detections INTEGER RANGE  Maximum number of detections to keep per\n                                  patch.  [default: 100; x\u003e=1]\n  -iou, --iou_threshold FLOAT RANGE\n                                  IoU threshold for matching predictions to\n                                  ground truths  [default: 0.1; 0.0\u003c=x\u003c=1.0]\n  -ct, --conf_threshold FLOAT RANGE\n                                  Confidence threshold for keeping detections.\n                                  [default: 0.1; 0.0\u003c=x\u003c=1.0]\n  -p, --padding INTEGER RANGE     Pixels to discard from each side of the\n                                  patch.  [x\u003e=0]\n  -f, --overwrite                 Overwrites the outputs if they exist\n  -mps, --mps_mode                Run inference in MPS mode (Apple GPUs).\n  -s, --simplify FLOAT RANGE      Simplification factor to use when\n                                  polygonizing in the unit of the CRS, e.g.\n                                  meters for Sentinel-2 imagery in UTM. Set to\n                                  0 to disable simplification.  [default: 2;\n                                  x\u003e=0.0]\n  -sn, --min_size FLOAT RANGE     Minimum area size in square meters to\n                                  include in the output. Set to 0 to disable.\n                                  [default: 500; x\u003e=0.0]\n  -sx, --max_size FLOAT RANGE     Maximum area size in square meters to\n                                  include in the output. Disabled by default.\n                                  [default: 100000; x\u003e=0.0]\n  --close_interiors               Remove the interiors holes in the polygons.\n                                  [default: True]\n  -oit, --overlap_iou_threshold FLOAT RANGE\n                                  Overlap IoU threshold for merging polygons.\n                                  [default: 0.2; 0.0\u003c=x\u003c=1.0]\n  -cot, --overlap_contain_threshold FLOAT RANGE\n                                  Overlap containment threshold for merging polygons.\n                                  [default: 0.5; 0.0\u003c=x\u003c=1.0]\n                                  patch.  [default: 100; x\u003e=1]\n  -iou, --iou_threshold FLOAT RANGE\n                                  IoU threshold for matching predictions to\n                                  ground truths  [default: 0.3; 0.0\u003c=x\u003c=1.0]\n  -ct, --conf_threshold FLOAT RANGE\n                                  Confidence threshold for keeping detections.\n                                  [default: 0.05; 0.0\u003c=x\u003c=1.0]\n  -p, --padding INTEGER RANGE     Pixels to discard from each side of the\n                                  patch.  [x\u003e=0]\n  -f, --overwrite                 Overwrites the outputs if they exist\n  -mps, --mps_mode                Run inference in MPS mode (Apple GPUs).\n  -s, --simplify FLOAT RANGE      Simplification factor to use when\n                                  polygonizing in the unit of the CRS, e.g.\n                                  meters for Sentinel-2 imagery in UTM. Set to\n                                  0 to disable simplification.  [default: 2;\n                                  x\u003e=0.0]\n  -sn, --min_size FLOAT RANGE     Minimum area size in square meters to\n                                  include in the output. Set to 0 to disable.\n                                  [default: 500; x\u003e=0.0]\n  -sx, --max_size FLOAT RANGE     Maximum area size in square meters to\n                                  include in the output. Disabled by default.\n                                  [default: 100000; x\u003e=0.0]\n  --close_interiors               Remove the interiors holes in the polygons.\n                                  [default: True]\n  -oit, --overlap_iou_threshold FLOAT RANGE\n                                  Overlap IoU threshold for merging polygons.\n                                  [default: 0.2; 0.0\u003c=x\u003c=1.0]\n  -cot, --overlap_contain_threshold FLOAT RANGE\n                                  Overlap containment threshold for merging\n                                  polygons.  [default: 0.8; 0.0\u003c=x\u003c=1.0]\n  --help                          Show this message and exit.\n```\n\n## FTW Baseline Dataset\n\nDownload and unpack the FTW Baseline Dataset using the FTW CLI.\nThis will create a `ftw` folder under the given folder after unpacking.\n\n```text\nftw data download --help\nUsage: ftw data download [OPTIONS]\n\n  Download and unpack the FTW dataset.\n\nOptions:\n  -o, --out TEXT        Folder where the files will be downloaded to. Defaults\n                        to './data'.\n  -f, --clean_download  If set, the script will delete the root folder before\n                        downloading.\n  --countries TEXT      Comma-separated list of countries to download. If\n                        'all' (default) is passed, downloads all available\n                        countries.\n  --no-unpack           If set, the script will NOT unpack the downloaded\n                        files.\n  --help                Show this message and exit.\n```\n\nIf you had `--no-unpack` enabled during download, you can manually unpack the downloaded files using the `unpack` command.\nThis will create a `ftw` folder under the given folder after unpacking.\n\n```text\nUsage: ftw data unpack [OPTIONS] [INPUT]\n\n  Unpack the downloaded FTW dataset. Specify the folder where the data is\n  located via INPUT. Defaults to './data'.\n\nOptions:\n  --help  Show this message and exit.\n```\n\n### Download the FTW Baseline Dataset\n\nTo download and unpack the complete FTW Baseline Dataset, use following command:\n\n```bash\nftw data download\n```\n\nTo download and unpack the specific country or set of countries, use following command:\n\n```bash\nftw data download --countries belgium,kenya,vietnam\n```\n\n*Note:* Make sure to avoid adding any space in between the list of comma seperated countries.\n\n### Visualize the FTW Baseline Dataset\n\nExplore `visualize_dataset.ipynb` to know more about the dataset.\n\n![Sample 1](/assets/sample1.png)\n![Sample 2](/assets/sample2.png)\n\n## CC-BY vs. the full model\n\nConsider using CC-BY FTW Trained Checkpoints from the release file for Commercial Purpose. For Non-Commercial Purpose and Academic purpose, you can use the FULL FTW Trained Checkpoints (See the graph below for perfrmance comparison).\n\nWe have also made FTW model checkpoints available that are pretrained only on CC-BY (or equivalent open licenses) datasets. You can download these checkpoints using the following command:\n\n- 3 Class\n\n  ```bash\n  wget https://github.com/fieldsoftheworld/ftw-baselines/releases/download/v1/3_Class_CCBY_FTW_Pretrained.ckpt\n  ```\n\n- 2 Class\n\n  ```bash\n  https://github.com/fieldsoftheworld/ftw-baselines/releases/download/v1/2_Class_CCBY_FTW_Pretrained.ckpt\n  ```\n\n![3 Class IoU](/assets/3%20Class%20IoU%20Comparison.png)\n![2 Class IoU](/assets/2%20Class%20IoU%20Comparison.png)\n\n## Experimentation\n\nFor details on the experimentation process, see [Experimentation section](./EXPERIMENTS.md).\n\n## Notes\n\nIf you see any warnings in this format:\n\n```bash\n/home/byteboogie/miniforge3/envs/ftw/lib/python3.12/site-packages/kornia/feature/lightglue.py:44: FutureWarning: `torch.cuda.amp.custom_fwd(args...)` is deprecated. Please use `torch.amp.custom_fwd(args..., device_type='cuda')` instead.\n  @torch.cuda.amp.custom_fwd(cast_inputs=torch.float32)\n```\n\nThis is due to outdated libraries that rely on an older version of pytorch.\nRest assured `ftw` won't face any issue in experimentation and dataset exploration.\n\n## Upcoming features\n\nCheck out the [Issues Section](https://github.com/fieldsoftheworld/ftw-baselines/issues) to see what we are working on and to suggest desired features.\n\n## Contributing\n\nWe welcome contributions! Please fork the repository, make your changes, and submit a pull request. For any issues, feel free to open an issue ticket.\n\n## Release\n\n1. Get the latest version from the main branch\n2. Update the version number in `pyproject.toml`\n3. Set up the environment in development mode (according to the instructions above)\n4. Ensure `uv.lock` has been updated by the previous steps\n5. Ensure all tests succeed\n6. Clear the `dist` folder, if it exists\n7. Run `uv build`\n8. Run `uv publish` (permissions have @m-mohr, @cholmes, and @calebrob6)\n9. Check that the released package works\n\n## License\n\nThis codebase is released under the MIT License. See the [LICENSE](LICENSE) file for details.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["earth-observation"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/304490","html_url":"https://ost.ecosyste.ms/projects/304490"}