{"id":6016,"name":"FarmVibes.AI","description":"Can develop rich geospatial insights for agriculture and sustainability.","url":"https://github.com/microsoft/farmvibes-ai","last_synced_at":"2026-04-08T05:30:24.838Z","repository":{"id":60998326,"uuid":"533452400","full_name":"microsoft/farmvibes-ai","owner":"microsoft","description":"FarmVibes.AI: Multi-Modal GeoSpatial ML Models for Agriculture and Sustainability","archived":false,"fork":false,"pushed_at":"2025-07-28T13:36:22.000Z","size":41988,"stargazers_count":846,"open_issues_count":35,"forks_count":173,"subscribers_count":37,"default_branch":"main","last_synced_at":"2026-04-03T11:06:59.714Z","etag":null,"topics":["agriculture","ai","geospatial","geospatial-analytics","multi-modal","remote-sensing","stac","sustainability","weather"],"latest_commit_sha":null,"homepage":"https://microsoft.github.io/farmvibes-ai/","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/microsoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-06T18:24:31.000Z","updated_at":"2026-04-02T23:29:01.000Z","dependencies_parsed_at":"2024-11-05T18:01:16.332Z","dependency_job_id":"932c395e-95ed-44fc-b5c5-f0e49d8df11a","html_url":"https://github.com/microsoft/farmvibes-ai","commit_stats":{"total_commits":40,"total_committers":9,"mean_commits":4.444444444444445,"dds":0.7,"last_synced_commit":"a9e999fcfaf9a90f147257bbdf7221b8a8b7ce52"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/microsoft/farmvibes-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Ffarmvibes-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Ffarmvibes-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Ffarmvibes-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Ffarmvibes-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft","download_url":"https://codeload.github.com/microsoft/farmvibes-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Ffarmvibes-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31410234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"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":"microsoft","name":"Microsoft","uuid":"6154722","kind":"organization","description":"Open source projects and samples from Microsoft","email":"opensource@microsoft.com","website":"https://opensource.microsoft.com","location":"Redmond, WA","twitter":"OpenAtMicrosoft","company":null,"icon_url":"https://avatars.githubusercontent.com/u/6154722?v=4","repositories_count":7713,"last_synced_at":"2026-04-07T00:31:42.651Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/microsoft","funding_links":[],"total_stars":3844692,"followers":116709,"following":0,"created_at":"2022-11-02T16:20:12.368Z","updated_at":"2026-04-07T00:31:42.651Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microsoft/repositories"},"packages":[],"commits":{"id":1322498,"full_name":"microsoft/farmvibes-ai","default_branch":"main","total_commits":41,"total_committers":8,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":5.125,"dds":0.7073170731707317,"past_year_total_commits":1,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":1.0,"past_year_dds":0.0,"last_synced_at":"2026-04-06T01:24:58.712Z","last_synced_commit":"99e1fc137ecf854562cbef9338b83667af339a65","created_at":"2023-09-11T15:20:46.806Z","updated_at":"2026-04-06T01:24:18.310Z","committers":[{"name":"Renato L. de F. Cunha","email":"renato.cunha@microsoft.com","login":"renatolfc","count":12},{"name":"FarmVibes Release Pipeline","email":"farmvibesaicd@microsoft.com","login":"farmvibes-ai-cd","count":12},{"name":"Rafael Padilha","email":"rpadilha@microsoft.com","login":"rafaspadilha","count":11},{"name":"Leonardo Nunes","email":"lnunes@microsoft.com","login":"lonnes","count":2},{"name":"Riche Akparuorji","email":"50128025+iamreechi","login":"iamreechi","count":1},{"name":"Krishna Lodha","email":"47075664+krishnaglodha","login":"krishnaglodha","count":1},{"name":"김진의","email":"engui@gimjin-uiui-MacBookPro.local","login":null,"count":1},{"name":"TerraVibes Release Pipeline","email":"terravibes@microsoft.com","login":null,"count":1}],"past_year_committers":[{"name":"Krishna Lodha","email":"47075664+krishnaglodha","login":"krishnaglodha","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Ffarmvibes-ai/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-07T00:00:11.408Z","repositories_count":6211415,"commits_count":919688213,"contributors_count":35649931,"owners_count":1142793,"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":"microsoft/farmvibes-ai","html_url":"https://github.com/microsoft/farmvibes-ai","last_synced_at":"2026-03-28T01:34:44.709Z","status":"error","issues_count":136,"pull_requests_count":86,"avg_time_to_close_issue":3784871.32,"avg_time_to_close_pull_request":444537.725,"issues_closed_count":100,"pull_requests_closed_count":80,"pull_request_authors_count":15,"issue_authors_count":67,"avg_comments_per_issue":3.2573529411764706,"avg_comments_per_pull_request":0.32558139534883723,"merged_pull_requests_count":70,"bot_issues_count":0,"bot_pull_requests_count":2,"past_year_issues_count":8,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":7,"past_year_avg_comments_per_issue":1.125,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-09-11T15:21:17.012Z","updated_at":"2026-03-28T01:34:44.710Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Ffarmvibes-ai","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Ffarmvibes-ai/issues","issue_labels_count":{"bug":48,"question":39,"workflows":38,"FarmVibes.AI setup":28,"local cluster":17,"triage":15,"notebooks":15,"known issues":5,"enhancement":5,"documentation":4,"remote cluster":3,"next-release-fix":3,"wontfix":1},"pull_request_labels_count":{"dependencies":2},"issue_author_associations_count":{"NONE":128,"CONTRIBUTOR":6,"MEMBER":2},"pull_request_author_associations_count":{"CONTRIBUTOR":66,"NONE":17,"COLLABORATOR":2,"MEMBER":1},"issue_authors":{"click2cloud-sagarB":16,"NicholasBerryman":6,"click2cloud-SanchitG":5,"Click2cloud-Abhijeet":5,"Amr-MKamal":5,"nitinya9av":5,"ziwonSeo-lab":5,"click2cloud-kaliram":4,"rafaspadilha":3,"chetan2309":3,"renatolfc":3,"click2cloud-Nagaraj":3,"iharshulhan":3,"Hi1805":3,"saqibzia-dev":3,"shenoy10":2,"lonnes":2,"PrajjwalGuhe":2,"gussabina":2,"exrobotdad":2,"Yaswanth-Tippireddy":2,"richstep":2,"marias65":2,"ajinkyapol":2,"MuhammadHammadBashir":2,"click2cloud-tejas":2,"12devsilva12":2,"hnlf123":1,"iam-kuldeep04":1,"juwonlo-tech":1,"Shourya13":1,"mursaleen-bkk":1,"amitnjha":1,"Zihonglee":1,"kirrukirru":1,"jardabezdek":1,"madhavaggar":1,"tayyabeh":1,"mtaddei11":1,"oshin94":1,"zz20240226":1,"PeterMHammond":1,"suredream":1,"thanhhungtakeshi":1,"321zyx":1,"click2cloud-amit":1,"sarfrazkhan18":1,"ZoloKiala":1,"metesulak":1,"csharma2309":1,"DavisZhangUIUC":1,"ghost":1,"sscaglia":1,"amodisurya2001":1,"darklord2021":1,"poysh":1,"guvenakcoban":1,"snain":1,"Stokastisk":1,"PandeyJi98":1,"VisheshTanwar-IITR":1,"RMNT":1,"razatsutradhar":1,"agripilot-team":1,"gregcode123":1,"Aca-Ali":1,"Regen231":1},"pull_request_authors":{"renatolfc":29,"rafaspadilha":26,"robertomest":10,"Click2cloud-Abhijeet":6,"Hi1805":2,"Gnanahub":2,"dependabot[bot]":2,"v-ngangarapu":2,"agripilot-team":1,"agripilot-pm":1,"x4v13r64":1,"wlsdml1114":1,"lonnes":1,"iamreechi":1,"ArneTR":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-07T00:00:09.463Z","repositories_count":14120142,"issues_count":34507206,"pull_requests_count":112678841,"authors_count":11228206,"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":6,"triage":5,"FarmVibes.AI setup":2,"local cluster":2,"notebooks":1,"remote cluster":1,"workflows":1},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":8},"past_year_pull_request_author_associations_count":{"NONE":1},"past_year_issue_authors":{"click2cloud-SanchitG":2,"Click2cloud-Abhijeet":1,"darklord2021":1,"metesulak":1,"PandeyJi98":1,"suredream":1,"zz20240226":1},"past_year_pull_request_authors":{"x4v13r64":1},"maintainers":[{"login":"lonnes","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/lonnes"},{"login":"v-ngangarapu","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/v-ngangarapu"}],"active_maintainers":[]},"events":{"total":{"DeleteEvent":5,"PullRequestEvent":23,"ForkEvent":38,"IssuesEvent":30,"WatchEvent":116,"IssueCommentEvent":37,"PushEvent":15,"PullRequestReviewEvent":51,"PullRequestReviewCommentEvent":37,"CreateEvent":7},"last_year":{"ForkEvent":18,"IssuesEvent":12,"WatchEvent":58,"IssueCommentEvent":9,"PullRequestReviewEvent":2,"CreateEvent":1}},"keywords":["agriculture","ai","geospatial","geospatial-analytics","multi-modal","remote-sensing","stac","sustainability","weather"],"dependencies":[{"ecosystem":"pypi","filepath":"src/vibe_core/setup.py","sha":null,"kind":"manifest","created_at":"2022-10-08T05:54:48.195Z","updated_at":"2022-10-08T05:54:48.195Z","repository_link":"https://github.com/microsoft/farmvibes-ai/blob/main/src/vibe_core/setup.py","dependencies":[{"id":6304987079,"package_name":"jsonschema","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6304987080,"package_name":"pydantic","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6304987081,"package_name":"strenum","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6304987082,"package_name":"shapely","ecosystem":"pypi","requirements":"\u003e=1.7.1","direct":true,"kind":"runtime","optional":false},{"id":6304987083,"package_name":"requests","ecosystem":"pypi","requirements":"\u003e=2.27","direct":true,"kind":"runtime","optional":false},{"id":6304987084,"package_name":"pystac","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6304987085,"package_name":"hydra-zen","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":6304987086,"package_name":"rich","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/cluster-build.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:47:28.248Z","updated_at":"2023-09-21T19:47:28.248Z","repository_link":"https://github.com/microsoft/farmvibes-ai/blob/main/.github/workflows/cluster-build.yml","dependencies":[{"id":13856918388,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/doc-build.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:47:28.727Z","updated_at":"2023-09-21T19:47:28.727Z","repository_link":"https://github.com/microsoft/farmvibes-ai/blob/main/.github/workflows/doc-build.yml","dependencies":[{"id":13856918437,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13856918438,"package_name":"ammaraskar/sphinx-action","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":13856918439,"package_name":"ad-m/github-push-action","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-09-21T19:47:29.134Z","updated_at":"2023-09-21T19:47:29.134Z","repository_link":"https://github.com/microsoft/farmvibes-ai/blob/main/docs/requirements.txt","dependencies":[{"id":13856918544,"package_name":"docutils","ecosystem":"pypi","requirements":"==0.18.1","direct":true,"kind":"runtime","optional":false},{"id":13856918545,"package_name":"sphinx","ecosystem":"pypi","requirements":"==6.1.3","direct":true,"kind":"runtime","optional":false},{"id":13856918546,"package_name":"sphinx_rtd_theme","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":13856918547,"package_name":"sphinxcontrib.mermaid","ecosystem":"pypi","requirements":"==0.8.1","direct":true,"kind":"runtime","optional":false},{"id":13856918548,"package_name":"myst_parser","ecosystem":"pypi","requirements":"==1.0.0","direct":true,"kind":"runtime","optional":false},{"id":13856918549,"package_name":"sphinx_autodoc_typehints","ecosystem":"pypi","requirements":"==1.22","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"src/vibe_core/pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:47:29.619Z","updated_at":"2023-09-21T19:47:29.619Z","repository_link":"https://github.com/microsoft/farmvibes-ai/blob/main/src/vibe_core/pyproject.toml","dependencies":[{"id":13856918600,"package_name":"certifi","ecosystem":"pypi","requirements":"~=2023.7.22","direct":true,"kind":"runtime","optional":false},{"id":13856918601,"package_name":"jsonschema","ecosystem":"pypi","requirements":"~=4.6","direct":true,"kind":"runtime","optional":false},{"id":13856918602,"package_name":"pydantic","ecosystem":"pypi","requirements":"~=1.10.0","direct":true,"kind":"runtime","optional":false},{"id":13856918603,"package_name":"strenum","ecosystem":"pypi","requirements":"~=0.4.7","direct":true,"kind":"runtime","optional":false},{"id":13856918604,"package_name":"shapely","ecosystem":"pypi","requirements":"\u003e=1.7.1","direct":true,"kind":"runtime","optional":false},{"id":13856918605,"package_name":"requests","ecosystem":"pypi","requirements":"~=2.31.0","direct":true,"kind":"runtime","optional":false},{"id":13856918606,"package_name":"pystac","ecosystem":"pypi","requirements":"~=1.6.0","direct":true,"kind":"runtime","optional":false},{"id":13856918607,"package_name":"hydra-zen","ecosystem":"pypi","requirements":"~=0.10","direct":true,"kind":"runtime","optional":false},{"id":13856918616,"package_name":"rich","ecosystem":"pypi","requirements":"~=13.3.5","direct":true,"kind":"runtime","optional":false},{"id":13856918617,"package_name":"msal","ecosystem":"pypi","requirements":"==1.22.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/issue-labeler.yml","sha":null,"kind":"manifest","created_at":"2024-02-04T19:45:02.069Z","updated_at":"2024-02-04T19:45:02.069Z","repository_link":"https://github.com/microsoft/farmvibes-ai/blob/main/.github/workflows/issue-labeler.yml","dependencies":[{"id":16025369296,"package_name":"redhat-plumbers-in-action/advanced-issue-labeler","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":16025368972,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":16025369098,"package_name":"stefanbuck/github-issue-parser","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/triage-issues.yml","sha":null,"kind":"manifest","created_at":"2024-02-04T19:45:03.871Z","updated_at":"2024-02-04T19:45:03.871Z","repository_link":"https://github.com/microsoft/farmvibes-ai/blob/main/.github/workflows/triage-issues.yml","dependencies":[]},{"ecosystem":"pypi","filepath":"src/vibe_notebook/setup.py","sha":null,"kind":"manifest","created_at":"2024-11-05T18:01:15.015Z","updated_at":"2024-11-05T18:01:15.015Z","repository_link":"https://github.com/microsoft/farmvibes-ai/blob/main/src/vibe_notebook/setup.py","dependencies":[{"id":20577222759,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20577222760,"package_name":"geopandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20577222761,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20577222762,"package_name":"shapely","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20577222763,"package_name":"rasterio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":20577222764,"package_name":"vibe_core","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]}],"score":8.860499167616016,"created_at":"2023-09-11T14:33:14.869Z","updated_at":"2026-04-08T05:30:24.841Z","avatar_url":"https://github.com/microsoft.png","language":"Jupyter Notebook","category":"Consumption","sub_category":"Agriculture and Nutrition","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# FarmVibes.AI: Multi-Modal GeoSpatial ML Models for Agriculture and Sustainability\n\nWith FarmVibes.AI, you can develop rich geospatial insights for agriculture and sustainability.\n\nBuild models that fuse multiple geospatial and spatiotemporal datasets to obtain insights (e.g.\nestimate carbon footprint, understand growth rate, detect practices followed) that would be\nhard to obtain when these datasets are used in isolation. You can fuse together satellite imagery\n(RGB, SAR, multispectral), drone imagery, weather data, and more.\n\nFusing datasets this way helps generate more robust insights and unlocks new insights that are\notherwise not possible without fusion. This repo contains several fusion workflows (published and\nshown to be key for agriculture related problems) that help you build robust remote sensing, earth\nobservation, and geospatial models with focus on agriculture/farming with ease. Our main focus right\nnow is agriculture and sustainability, which the models are optimized for. However, the framework itself is generic\nenough to help you build models for other domains.\n\n## FarmVibes.AI Primer\n\nThere are three main pieces to FarmVibes.AI. The first one consists of data ingestion and\npre-processing workflows to help prepare data for fusion models tailored towards agriculture.\nAdditionally, we provide model training notebook examples that not only allow the configuration\nof pre-processing of data but also allow tuning existing models with ease. Finally, a compute\nengine that supports data ingestion as well as adjusting existing and creating novel workflows\nwith the tuned model.\n\n### FarmVibes.AI Fusion-Ready Dataset Preparation\n\nIn this step, you can select the datasets that you would like to fuse for building the insights.\nFarmVibes.AI comes with many dataset downloaders. These include satellite imagery from Sentinel 1\nand 2, US Cropland Data, USGS Elevation maps, NAIP imagery, NOAA weather data, private weather data\nfrom Ambient Weather. Additionally, you can also bring in any rasterized datasets that you\nwant to make them fusion-ready for FarmVibes.AI (e.g. drone imagery or other satellite imagery) and, in\nthe future, custom sensor data (such as weather sensors).\n\nThe key technique in FarmVibes.AI is to use as input for ML models data that goes much beyond\ntypes, space and time from where the labels are located. For example, when detecting grain silos\nfrom satellite imagery (labeled only in optical imagery), it is better to rely on optical as well as\nelevation and radar bands. In this scenario, it is also important to combine multiple data modalities with other known agriculture infrastructure entities. Likewise, it is also\nimportant to use as input the images of a given silo across various times of the year to help\ngenerate a more robust model. Including information from many data streams, while also incorporating\nhistorical data from nearby or similar locations  has been shown to improve\nrobustness of geospatial models (especially for yield, growth, and crop classification problems).\nFarmVibes.AI generates such input data for models with ease based on parameters that can be\nspecified.\n\nFarmVibes.AI enables a data scientist to massage and/or tune the datasets to their preferences. The\ntuning is enabled via a configurable workflow which is specified as a directed acyclic graph of data\ndownloading workflows and data preparation workflows. The preparation operators help create the\ninputs (e.g. fused pandas arrays or tensors containing all raw data) to training and inference\nmodules.\n\n### FarmVibes.AI Model Sample Notebook Library\n\nThe next step in FarmVibes.AI involves using the inbuilt notebooks to tune the models to achieve a\nlevel of accuracy for the parts of the world or seasons that you are focusing on. The library\nincludes notebooks for  detecting practices (e.g. harvest date detection), estimating climate impact\n(both seasonal carbon footprint and long term sustainability), micro climate prediction, and crop\nidentification.\n\nFarmVibes.AI comes with these notebooks to help you get started to train fusion models to combine\nthe geospatial datasets into robust insights tailored for your needs. The users can tune the model to\n a desired performance and publish the model to FarmVibes.AI. The model then shows up to be used later in an inference engine that can be employed for other parts of the world, other dates, or more.\n\n### FarmVibes.AI Inference Engine\n\nThe final stage in FarmVibes.AI is to combine the data connectors, pre-processing, and the model\npieces together into a robust inference workflow. The generated workflow can then be used for\nperforming inference in an area of interest and time range that can be passed as inputs to the\nworkflow. FarmVibes.AI can be configured such that it then runs the inference for the time range and\nupdates the results whenever upstream data is updated (e.g. new satellite imagery or sensor data is\nadded). You do this by creating a workflow that is composed of fused data preparation and fusion\nmodel workflows.\n\n## Operation Mode\n\nCurrently, we are open-sourcing the local FarmVibes.AI cluster, that uses pre-build operators and\nworkflows and runs them locally on your data science machine. This means that any data generated is\npersisted locally in your machine. The actual workflows and their implementations are provided via Docker images, with their description\navailable in the [workflow list documentation](https://microsoft.github.io/farmvibes-ai/docfiles/markdown/WORKFLOW_LIST.html).\n\nThe user can interact with the local FarmVibes.AI cluster via a REST API (in localhost) or a local\nPython client (inside a Jupyter Notebook, for example).\n\n## Installation\n\nPlease refer to the the [Quickstart guide](https://microsoft.github.io/farmvibes-ai/docfiles/markdown/QUICKSTART.html) for information on where to get started. If\nyou prefer to setup a dedicated Azure Virtual Machine to run FarmVibes.AI, you can find detailed\ninstructions [in the VM setup documentation](https://microsoft.github.io/farmvibes-ai/docfiles/markdown/VM-SETUP.html).\n\n## Notebook Examples\n\nIn the folder `notebooks` there are several examples to serve as starting points and demonstrating\nhow FarmVibes.AI can be used to create Agriculture insights. Some of the available notebooks are:\n\n* `helloworld`: a simple example on how to use the client to run a workflow and visualize the\nresponse.\n* `harvest_period`: showing how a NDVI time-series computed on top of Sentinel 2 data can\nbe obtained for a single field and planting season and used to estimate emergence and harvest dates.\n* `carbon`: illustrating how to simulate different soil carbon estimates based on different\nagriculture practices, leveraging the [COMET-Farm API](https://gitlab.com/comet-api/api-docs/-/tree/master/).\n* `deepmc`: showing how one can build micro-climate forecasts from weather station data using the\n[DeepMC model](https://spectrum.ieee.org/deepmc-weather-predicition).\n* `crop_segementation`: this\nexample shows how to train a crop identification model based on NDVI data computed on top of our\n[SpaceEye](https://arxiv.org/abs/2106.08408) cloud-free image generation model. In this example, you\ncan also then use the trained model in an inference workflow to obtain predictions in any area where\nwe are able to generate SpaceEye imagery.\n\nWe provide a [complete list of the notebooks available](https://microsoft.github.io/farmvibes-ai/docfiles/markdown/NOTEBOOK_LIST.html)\nand their description in our documentation.\n\n## Documentation\n\nMore detailed information about the different components can be found in the [FarmVibes.AI documentation](https://microsoft.github.io/farmvibes-ai/).\nIn this repository, this information is also accessible in:\n\n* [FARMVIBES_AI.md](./docs/source/docfiles/markdown/FARMVIBES_AI.md) describing how to setup and\nmanage the local cluster.\n* [WORKFLOWS.md](./docs/source/docfiles/markdown/WORKFLOWS.md) describing how workflows\ncan be written and how they function.\n* [CLIENT.md](./docs/source/docfiles/markdown/CLIENT.md) documenting the\nFarmVibes.AI client, which is the preferred way to run workflows and interact with the results.\n* [SECRETS.md](./docs/source/docfiles/markdown/SECRETS.md) describing how to manage and pass secrets to the cluster\n(such as API keys), so that they will be available when running workflows.\n* [TROUBLESHOOTING.md](./docs/source/docfiles/markdown/TROUBLESHOOTING.md) in case you run into any issues.\n\n## Contributing\n\nThis project welcomes contributions and suggestions.  Most contributions require you to agree to a\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\nthe rights to use your contribution. For details, visit [https://cla.opensource.microsoft.com](https://cla.opensource.microsoft.com).\n\nWhen you submit a pull request, a CLA bot will automatically determine whether you need to provide\na CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions\nprovided by the bot. You will only need to do this once across all repos using our CLA.\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\n## Trademarks\n\nThis project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft\ntrademarks or logos is subject to and must follow\n[Microsoft's Trademark \u0026 Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\nAny use of third-party trademarks or logos are subject to those third-party's policies.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/6016","html_url":"https://ost.ecosyste.ms/projects/6016"}