Skip to content

core-stack-org/Tree-Health-Monitoring

 
 

Repository files navigation

Scalable Tree Health Monitoring in India

Forests and plantations are the backbone of our planet's ecological balance, offering habitats, absorbing carbon dioxide, regulating climate, and sustaining biodiversity. Beyond traditional forests, small-scale plantations also play a vital role in rural livelihoods by enhancing agroforestry productivity and generating carbon credits. While restoration and conservation initiatives are underway, they require granular and timely insights into tree canopy health. However, tracking tree health indicators like canopy density and height over time has remained a challenging task, particularly in a country as ecologically diverse and vast as India. Traditional tree monitoring methods have often been limited by their manual, time-intensive nature. In an era of climate urgency, this delay can limit the effectiveness of conservation and restoration initiatives. Modern remote sensing technologies allow us to move from static snapshots to near real-time, actionable insights, enabling stakeholders to implement timely interventions. Our recently published paper entitled "Scalable Monitoring of Tree Canopy Density and Height in India at High Spatial Resolutions", to be presented at the ICTD 2024 introduces a novel, scalable, and open-source framework for monitoring tree health across India using advanced remote sensing and machine learning techniques at a fine spatial resolution of 25m. This repository contains the corresponding code pipeline for assessing tree Canopy Cover Density (CCD) and Canopy Height (CH) distribution, and track tree health changes across years in India.

Code Workflow

  • dw_corrections_new_year.js: GEE code script where we correct Dynamic World's tree cover data for any fluctuations based on adjacent years' LULC outputs and store it at 10m resolution.
  • sentinel_data_export_new_year.ipynb: Google colab code script where we export the Sentinel-1 (SAR) and Sentinel-2 (Optical) satellite data for all the tree cover pixels for each district in a given agro-climatic zone (ACZ) at 25m resolution (GEDI data was available at 25m and hence we trained our CCD & CH models & do predictions at 25m). We have exported data after cloud cover and other data quality filters at a seasonal median composite level. There are possibilities of having some missing data due to unavailability of good quality data for making tree health predictions.
  • predict_ccd_ch_results.ipynb: Google colab code script for predicting CCD & CH outputs for all the exported tree pixels for a given ACZ and the year. We can make tree health predictions from AY 2016 onwards, due to the availability of Sentinel-1&2 data.
  • uploadAssets.ipynb: Google colab code script used for combining the district wise result files into a single ACZ result file. Depending on the amount of data in a particular ACZ, we might have multiple resulting files. Each of these files will then have to be uploaded separately. The CSV file(s) need to be manually uploaded on GEE assets, which can be imported as FeatureCollection of the points in any GEE script.
  • fc_to_image.js: GEE code script used to convert uploaded FeatureCollection asset of results to an image at 25m resolution and export it as an asset to GEE. It is easier to perform operations and interpret results as color coded image rather than points' outputs.
  • trees_corrections.ipynb: Google colab code script used to generate fluctuation corrected results of (year-1) and (year-2). This means that if AY 2023's data is added, we need to correct AY 2021 and AY 2022's data. The correction files will be stored on the following path:
    • drive/MyDrive/{agroclimatic zone}/{district}/{year}/result_monthly_cc_corrections.csv
    • drive/MyDrive/{agroclimatic zone}/{district}/{year}/result_chm_corrections.csv

After correcting fluctuations, uploadAssets.ipynb needs to be run again to upload the corrected tree health outputs for a few points to GEE.

  • fc_to_image_corrections.js: GEE code script for converting both CCD and CH corrected FeatureCollection to image and store it as assets.
  • modal_change_analysis_ccd.js: GEE code script to perform CCD change analysis between the given 2 years based on the modal CCD outputs of the 3 consecutive years. For example, if we want to compute the change between year1 and year2, then we would compute change between mode(year1-1, year1, year1+1) and mode(year2-1, year2, year2+1) outputs.
  • modal_change_analysis_ch.js: GEE code script to perform CH change analysis between the given 2 years based on the modal CH outputs of the 3 consecutive years.
  • modal_overall_change.js: GEE code script used to perform the overall tree health change analysis between the given 2 years based on the CCD and CH changes happening between those 2 years.

Contributors

  • Dhruvi Goyal
  • Harsh Singh Chauhan
  • Prof. Aaditeshwar Seth

About

This repository contains the entire code pipeline for training models for detecting tree canopy density and height distribution, and track tree health changes across years in India.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 77.8%
  • JavaScript 22.2%