- Research Objective & Context
I am developing my undergraduate thesis focused on the deforestation dynamics of Suceava County, Romania, a region under heavy logging pressure. My goal is to produce a high-quality cartographic series (1986, 1991, 1995, 2000, 2005, 2010, 2015, 2020, 2025) to visualize forest loss.
According to Global Forest Watch (GFW), Suceava has lost approximately 71,000 hectares (~15%) of tree cover since 2001. My objective is to replicate this trend visually and statistically using a Landsat time-series, starting from a 1985-1986 baseline.
- Technical Challenges Encountered (The "False Growth" Problem)
Despite the documented deforestation, my current GEE implementation is failing due to three major roadblocks:
Spectral Drift (Landsat 5 vs. Landsat 8/9): There is a significant inconsistency between sensors. The OLI sensor (L8/L9) is much more sensitive than the TM sensor (L5). This causes modern NDVI values to saturate or appear higher than historical ones, leading to a "false reforestation" trend in the results.
Persistent Data Gaps in the 1980s: Historical Landsat 5 Collection 2 imagery for Romania frequently contains "puzzle-piece" gaps (No-Data areas) caused by aggressive cloud masking or limited satellite passes. This makes the 1986 baseline look fragmented and underestimated.
Low-Altitude Spectral Noise: In areas below 300 meters, agricultural crops and pastures exhibit NDVI signatures identical to mature forests during peak summer, causing massive "false positive" forest pixels in recent years.
- Requirements for the Script
I am looking for a "plug-and-play" script that automates the following expert-level processes:
Cross-Sensor Harmonization: Implementation of Roy et al. (2016) transformation coefficients to align Landsat 8/9 OLI bands with Landsat 5 TM.
Temporal Gap-Filling (Quality Mosaic): A workflow that uses a multi-year window (e.g., a 7-year composite for the 1986 epoch) using the .qualityMosaic('NDVI') method to ensure a 100% gap-free baseline.
Dual-Index Filtering: Using both NDVI and NDMI (Normalized Difference Moisture Index) to separate actual forest canopies from agricultural vegetation.
Topographic Masking: Hard-coding a Digital Elevation Model (SRTM) filter to exclude all pixels below 300m altitude.
Spatial Cleaning (Focal Morphological Filters): Applying focal_min() followed by focal_max() to remove "salt-and-pepper" noise and smooth forest edges for professional GIS output.
- Desired Workflow for QGIS Integration
I need the script to be structured so that it calculates the hectares for each year and provides a standardized export function:
Input: User defines the AOI (Suceava County asset).
Processing: Automated harmonization, masking, and gap-filling.
Output:
Console print of forest area (ha) per year.
Export.image.toDrive() for each epoch as a clean, 1-bit (Forest/Non-Forest) GeoTIFF.
A final "Change Map" (1986 vs 2025) showing: Stable Forest, Loss, and Gain.
- Conclusion
I require a script that produces results consistent with Global Forest Watch statistics (~71k ha loss). I want to perform the final cartographic design in QGIS, so the exported TIF files must be spatially accurate and spectrally cleaned within Google Earth Engine.
Technical Level: Intermediate / Advanced
Tags: #ForestLoss #Landsat #TimeSeries #Harmonization #Suceava #Romania #QGIS
I am developing my undergraduate thesis focused on the deforestation dynamics of Suceava County, Romania, a region under heavy logging pressure. My goal is to produce a high-quality cartographic series (1986, 1991, 1995, 2000, 2005, 2010, 2015, 2020, 2025) to visualize forest loss.
According to Global Forest Watch (GFW), Suceava has lost approximately 71,000 hectares (~15%) of tree cover since 2001. My objective is to replicate this trend visually and statistically using a Landsat time-series, starting from a 1985-1986 baseline.
Despite the documented deforestation, my current GEE implementation is failing due to three major roadblocks:
Spectral Drift (Landsat 5 vs. Landsat 8/9): There is a significant inconsistency between sensors. The OLI sensor (L8/L9) is much more sensitive than the TM sensor (L5). This causes modern NDVI values to saturate or appear higher than historical ones, leading to a "false reforestation" trend in the results.
Persistent Data Gaps in the 1980s: Historical Landsat 5 Collection 2 imagery for Romania frequently contains "puzzle-piece" gaps (No-Data areas) caused by aggressive cloud masking or limited satellite passes. This makes the 1986 baseline look fragmented and underestimated.
Low-Altitude Spectral Noise: In areas below 300 meters, agricultural crops and pastures exhibit NDVI signatures identical to mature forests during peak summer, causing massive "false positive" forest pixels in recent years.
I am looking for a "plug-and-play" script that automates the following expert-level processes:
Cross-Sensor Harmonization: Implementation of Roy et al. (2016) transformation coefficients to align Landsat 8/9 OLI bands with Landsat 5 TM.
Temporal Gap-Filling (Quality Mosaic): A workflow that uses a multi-year window (e.g., a 7-year composite for the 1986 epoch) using the .qualityMosaic('NDVI') method to ensure a 100% gap-free baseline.
Dual-Index Filtering: Using both NDVI and NDMI (Normalized Difference Moisture Index) to separate actual forest canopies from agricultural vegetation.
Topographic Masking: Hard-coding a Digital Elevation Model (SRTM) filter to exclude all pixels below 300m altitude.
Spatial Cleaning (Focal Morphological Filters): Applying focal_min() followed by focal_max() to remove "salt-and-pepper" noise and smooth forest edges for professional GIS output.
I need the script to be structured so that it calculates the hectares for each year and provides a standardized export function:
Input: User defines the AOI (Suceava County asset).
Processing: Automated harmonization, masking, and gap-filling.
Output:
Console print of forest area (ha) per year.
Export.image.toDrive() for each epoch as a clean, 1-bit (Forest/Non-Forest) GeoTIFF.
A final "Change Map" (1986 vs 2025) showing: Stable Forest, Loss, and Gain.
I require a script that produces results consistent with Global Forest Watch statistics (~71k ha loss). I want to perform the final cartographic design in QGIS, so the exported TIF files must be spatially accurate and spectrally cleaned within Google Earth Engine.
Technical Level: Intermediate / Advanced
Tags: #ForestLoss #Landsat #TimeSeries #Harmonization #Suceava #Romania #QGIS