{"id":625,"name":"FSDL Deforestation Detection","description":"A deep learning approach to detecting deforestation risk, using satellite images and a deep learning model.","url":"https://github.com/karthikraja95/fsdl_deforestation_detection","last_synced_at":"2026-05-22T12:30:19.556Z","repository":{"id":38041780,"uuid":"352765763","full_name":"karthikraja95/fsdl_deforestation_detection","owner":"karthikraja95","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-13T22:01:46.000Z","size":94512,"stargazers_count":40,"open_issues_count":10,"forks_count":11,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-05-17T10:05:22.060Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/karthikraja95.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2021-03-29T19:46:39.000Z","updated_at":"2025-10-20T09:58:46.000Z","dependencies_parsed_at":"2023-02-09T17:16:00.141Z","dependency_job_id":null,"html_url":"https://github.com/karthikraja95/fsdl_deforestation_detection","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/karthikraja95/fsdl_deforestation_detection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karthikraja95%2Ffsdl_deforestation_detection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karthikraja95%2Ffsdl_deforestation_detection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karthikraja95%2Ffsdl_deforestation_detection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karthikraja95%2Ffsdl_deforestation_detection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karthikraja95","download_url":"https://codeload.github.com/karthikraja95/fsdl_deforestation_detection/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karthikraja95%2Ffsdl_deforestation_detection/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33213287,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T07:54:09.561Z","status":"ssl_error","status_checked_at":"2026-05-19T07:54:08.508Z","response_time":58,"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":"karthikraja95","name":"Karthik Bhaskar","uuid":"40802179","kind":"user","description":" M.A.Sc  | Deep Learning | Vector Institute | U of T  | NLP | Software Engineer\r\n\r\n","email":"","website":"https://www.kbhaskar.com/","location":"Toronto","twitter":null,"company":"University of Toronto","icon_url":"https://avatars.githubusercontent.com/u/40802179?u=90fe684f34f5511019c8ddbd08359441008bc91a\u0026v=4","repositories_count":35,"last_synced_at":"2024-06-11T15:58:40.500Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/karthikraja95","funding_links":[],"total_stars":45,"followers":12,"following":4,"created_at":"2022-11-16T06:16:17.644Z","updated_at":"2024-06-11T15:58:50.321Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karthikraja95","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karthikraja95/repositories"},"packages":[],"commits":{"id":1254301,"full_name":"karthikraja95/fsdl_deforestation_detection","default_branch":"master","total_commits":53,"total_committers":3,"total_bot_commits":7,"total_bot_committers":1,"mean_commits":17.666666666666668,"dds":0.3207547169811321,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-05-19T11:01:24.387Z","last_synced_commit":"6824a993c18b57a34b791d317030b4d485644f91","created_at":"2023-03-27T11:31:57.730Z","updated_at":"2026-05-19T11:01:24.112Z","committers":[{"name":"André Cristóvão Neves Ferreira","email":"andrecnf@gmail.com","login":"AndreCNF","count":36},{"name":"Karthik Bhaskar","email":"40802179+karthikraja95","login":"karthikraja95","count":10},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":7}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/karthikraja95%2Ffsdl_deforestation_detection/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-21T00:00:09.753Z","repositories_count":6237143,"commits_count":884406364,"contributors_count":34893394,"owners_count":1155485,"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":"karthikraja95/fsdl_deforestation_detection","html_url":"https://github.com/karthikraja95/fsdl_deforestation_detection","last_synced_at":"2025-09-01T03:33:10.814Z","status":"error","issues_count":0,"pull_requests_count":130,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":3609072.783333333,"issues_closed_count":0,"pull_requests_closed_count":120,"pull_request_authors_count":4,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":0.8307692307692308,"merged_pull_requests_count":11,"bot_issues_count":0,"bot_pull_requests_count":121,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-09T10:37:30.548Z","updated_at":"2025-09-01T03:33:10.814Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/karthikraja95%2Ffsdl_deforestation_detection","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/karthikraja95%2Ffsdl_deforestation_detection/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":120,"python":68,"github_actions":52},"issue_author_associations_count":{},"pull_request_author_associations_count":{"CONTRIBUTOR":120,"NONE":4,"COLLABORATOR":4,"OWNER":1},"issue_authors":{},"pull_request_authors":{"dependabot[bot]":120,"cclauss":4,"AndreCNF":4,"karthikraja95":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-09T00:00:07.995Z","repositories_count":14538909,"issues_count":34221040,"pull_requests_count":112169279,"authors_count":11258009,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"AndreCNF","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/AndreCNF"},{"login":"karthikraja95","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/karthikraja95"}],"active_maintainers":[]},"events":{"total":{"WatchEvent":2},"last_year":{"WatchEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"fsdl_deforestation_detection/deployment/requirements.txt","sha":null,"kind":"manifest","created_at":"2022-07-12T17:11:55.307Z","updated_at":"2022-07-12T17:11:55.307Z","repository_link":"https://github.com/karthikraja95/fsdl_deforestation_detection/blob/master/fsdl_deforestation_detection/deployment/requirements.txt","dependencies":[{"id":180171426,"package_name":"streamlit","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/build.yml","sha":null,"kind":"manifest","created_at":"2023-02-09T17:16:00.106Z","updated_at":"2023-02-09T17:16:00.106Z","repository_link":"https://github.com/karthikraja95/fsdl_deforestation_detection/blob/master/.github/workflows/build.yml","dependencies":[{"id":7499647332,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7499647333,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2.2.1","direct":true,"kind":"composite","optional":false},{"id":7499647334,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2.1.4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/greetings.yml","sha":null,"kind":"manifest","created_at":"2023-02-09T17:16:00.113Z","updated_at":"2023-02-09T17:16:00.113Z","repository_link":"https://github.com/karthikraja95/fsdl_deforestation_detection/blob/master/.github/workflows/greetings.yml","dependencies":[{"id":7499647344,"package_name":"actions/first-interaction","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release-drafter.yml","sha":null,"kind":"manifest","created_at":"2023-02-09T17:16:00.120Z","updated_at":"2023-02-09T17:16:00.120Z","repository_link":"https://github.com/karthikraja95/fsdl_deforestation_detection/blob/master/.github/workflows/release-drafter.yml","dependencies":[{"id":7499647391,"package_name":"release-drafter/release-drafter","ecosystem":"actions","requirements":"v5.15.0","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"docker/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-02-09T17:16:00.132Z","updated_at":"2023-02-09T17:16:00.132Z","repository_link":"https://github.com/karthikraja95/fsdl_deforestation_detection/blob/master/docker/Dockerfile","dependencies":[{"id":7499647398,"package_name":"python","ecosystem":"docker","requirements":"3.7-slim-buster","direct":true,"kind":"build","optional":false}]}],"score":5.0106352940962555,"created_at":"2023-09-11T11:54:35.410Z","updated_at":"2026-05-22T12:30:19.570Z","avatar_url":"https://github.com/karthikraja95.png","language":"Jupyter Notebook","category":"Biosphere","sub_category":"Deforestation and Reforestation","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# FSDL Deforestation Detection\n\n\u003cdiv align=\"center\"\u003e\n\n[![Open in Streamlit](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://share.streamlit.io/andrecnf/fsdl_deforestation_detection/fsdl_deforestation_detection/dashboard/streamlit_app.py)\n\n[![Dependencies Status](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen.svg)](https://github.com/karthikraja95/fsdl_deforestation_detection/pulls?utf8=%E2%9C%93\u0026q=is%3Apr%20author%3Aapp%2Fdependabot)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Security: bandit](https://img.shields.io/badge/security-bandit-green.svg)](https://github.com/PyCQA/bandit)\n[![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/karthikraja95/fsdl_deforestation_detection/blob/master/.pre-commit-config.yaml)\n[![Semantic Versions](https://img.shields.io/badge/%F0%9F%9A%80-semantic%20versions-informational.svg)](https://github.com/karthikraja95/fsdl_deforestation_detection/releases)\n[![License](https://img.shields.io/github/license/karthikraja95/fsdl_deforestation_detection)](https://github.com/karthikraja95/fsdl_deforestation_detection/blob/master/LICENSE)\n\nDetecting deforestation from satellite images: a full stack deep learning project\n\n\u003c/div\u003e\n\n## Description\n\nA deep learning approach to detecting deforestation risk, using satellite images and a deep learning model. We relied on [Planet](https://www.planet.com/) imagery from two [Kaggle](https://www.kaggle.com/) datasets (one from the [Amazon rainforest](https://www.kaggle.com/c/planet-understanding-the-amazon-from-space) and another on [oil palm plantations in Borneo](https://www.kaggle.com/c/widsdatathon2019)) and trained a [ResNet](https://paperswithcode.com/method/resnet) model using [FastAI](https://docs.fast.ai/). For more details, check the following links:\n\n* [Streamlit dashboard for testing the model and exploring the data](https://share.streamlit.io/andrecnf/fsdl_deforestation_detection/fsdl_deforestation_detection/dashboard/streamlit_app.py)\n\n* [Model training notebook in Colab](https://colab.research.google.com/github/karthikraja95/fsdl_deforestation_detection/blob/master/fsdl_deforestation_detection/experimental/FSDL_Final_Model.ipynb)\n\n* [Project management workspace in Notion](https://www.notion.so/Homepage-2ff744c443814f459d80a6e5819226a5)\n\n* [Loom video about the project](https://www.loom.com/share/365d412db3a0474ba46d4fdd7f4c5494)\n\n* [Medium article about this project](https://towardsdatascience.com/detecting-deforestation-from-satellite-images-7aa6dfbd9f61)\n\nThis is the result of a group project, made by [André Ferreira](https://andrecnf.com/) and [Karthik Bhaskar](https://www.kbhaskar.com/), for the [Full Stack Deep Learning - Spring 2021 online course](http://fullstackdeeplearning.com/spring2021/).\n\n## Very first steps\n\n### Initial\n\n1. Initialize `git` inside your repo:\n\n```bash\ngit init\n```\n\n2. If you don't have `Poetry` installed run:\n\n```bash\nmake download-poetry\n```\n\n3. Initialize poetry and install `pre-commit` hooks:\n\n```bash\nmake install\n```\n\n4. Upload initial code to GitHub (ensure you've run `make install` to use `pre-commit`):\n\n```bash\ngit add .\ngit commit -m \":tada: Initial commit\"\ngit branch -M main\ngit remote add origin https://github.com/karthikraja95/fsdl_deforestation_detection.git\ngit push -u origin main\n```\n\n### Initial setting up\n\n- Set up [Dependabot](https://docs.github.com/en/github/administering-a-repository/enabling-and-disabling-version-updates#enabling-github-dependabot-version-updates) to ensure you have the latest dependencies.\n- Set up [Stale bot](https://github.com/apps/stale) for automatic issue closing.\n\n### Poetry\n\nAll manipulations with dependencies are executed through Poetry. If you're new to it, look through [the documentation](https://python-poetry.org/docs/).\n\n\u003cdetails\u003e\n\u003csummary\u003eNotes about Poetry\u003c/summary\u003e\n\u003cp\u003e\n\nPoetry's [commands](https://python-poetry.org/docs/cli/#commands) are very intuitive and easy to learn, like:\n\n- `poetry add numpy`\n- `poetry run pytest`\n- `poetry build`\n- etc\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n### Makefile usage\n\n[`Makefile`](https://github.com/karthikraja95/fsdl_deforestation_detection/blob/master/Makefile) contains many functions for fast assembling and convenient work.\n\n\u003cdetails\u003e\n\u003csummary\u003e1. Download Poetry\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nmake download-poetry\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e2. Install all dependencies and pre-commit hooks\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nmake install\n```\n\nIf you do not want to install pre-commit hooks, run the command with the NO_PRE_COMMIT flag:\n\n```bash\nmake install NO_PRE_COMMIT=1\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e3. Check the security of your code\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nmake check-safety\n```\n\nThis command launches a `Poetry` and `Pip` integrity check as well as identifies security issues with `Safety` and `Bandit`. By default, the build will not crash if any of the items fail. But you can set `STRICT=1` for the entire build, or you can configure strictness for each item separately.\n\n```bash\nmake check-safety STRICT=1\n```\n\nor only for `safety`:\n\n```bash\nmake check-safety SAFETY_STRICT=1\n```\n\nmultiple\n\n```bash\nmake check-safety PIP_STRICT=1 SAFETY_STRICT=1\n```\n\n\u003e List of flags for `check-safety` (can be set to `1` or `0`): `STRICT`, `POETRY_STRICT`, `PIP_STRICT`, `SAFETY_STRICT`, `BANDIT_STRICT`.\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e4. Check the codestyle\u003c/summary\u003e\n\u003cp\u003e\n\nThe command is similar to `check-safety` but to check the code style, obviously. It uses `Black`, `Darglint`, `Isort`, and `Mypy` inside.\n\n```bash\nmake check-style\n```\n\nIt may also contain the `STRICT` flag.\n\n```bash\nmake check-style STRICT=1\n```\n\n\u003e List of flags for `check-style` (can be set to `1` or `0`): `STRICT`, `BLACK_STRICT`, `DARGLINT_STRICT`, `ISORT_STRICT`, `MYPY_STRICT`.\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e5. Run all the codestyle formaters\u003c/summary\u003e\n\u003cp\u003e\n\nCodestyle uses `pre-commit` hooks, so ensure you've run `make install` before.\n\n```bash\nmake codestyle\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e6. Run tests\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nmake test\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e7. Run all the linters\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nmake lint\n```\n\nthe same as:\n\n```bash\nmake test \u0026\u0026 make check-safety \u0026\u0026 make check-style\n```\n\n\u003e List of flags for `lint` (can be set to `1` or `0`): `STRICT`, `POETRY_STRICT`, `PIP_STRICT`, `SAFETY_STRICT`, `BANDIT_STRICT`, `BLACK_STRICT`, `DARGLINT_STRICT`, `ISORT_STRICT`, `MYPY_STRICT`.\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e8. Build docker\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nmake docker\n```\n\nwhich is equivalent to:\n\n```bash\nmake docker VERSION=latest\n```\n\nMore information [here](https://github.com/karthikraja95/fsdl_deforestation_detection/tree/master/docker).\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e9. Cleanup docker\u003c/summary\u003e\n\u003cp\u003e\n\n```bash\nmake clean_docker\n```\n\nor to remove all build\n\n```bash\nmake clean\n```\n\nMore information [here](https://github.com/karthikraja95/fsdl_deforestation_detection/tree/master/docker).\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n## 🛡 License\n\n[![License](https://img.shields.io/github/license/karthikraja95/fsdl_deforestation_detection)](https://github.com/karthikraja95/fsdl_deforestation_detection/blob/master/LICENSE)\n\nThis project is licensed under the terms of the `MIT` license. See [LICENSE](https://github.com/karthikraja95/fsdl_deforestation_detection/blob/master/LICENSE) for more details.\n\n## 📃 Citation\n\n```\n@misc{fsdl_deforestation_detection,\n  author = {Karthik Bhaskar, Andre Ferreira},\n  title = {Predicting deforestation from Satellite Images},\n  year = {2021},\n  publisher = {GitHub},\n  journal = {GitHub repository},\n  howpublished = {\\url{https://github.com/karthikraja95/fsdl_deforestation_detection}}\n}\n```\n\n\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["archiving","measur","transforms","optimize","generic","conversion","observation","projection","compose","animals"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/625","html_url":"https://ost.ecosyste.ms/projects/625"}