Skip to main content

Hi everyone,

 

I recently worked with Planet data for the first time. I downloaded two PlanetScope images from the Planetary Explorer (RGB-IR reflectance and I also chose the option to harmonize images with Sentinel-2)

I then calculated NDVI for both images and then the average. I am very surprised by the averages I find. In the center of the image a fire happened in between the two dates so I would expect NDVI to decrease (makes sense). However, I am suspicions of the increases in NDVI I see in other areas, that seem to be the same order of magnitude. While this could be an artifact of NDVI just being quite low in general, I was still wondering if there is an issue with comparing data across difference images taken by different satellites?

Here is the code I used to process the data (in R):

library(tidyverse)
library(sf)
library(terra)
library(tidyterra)

NDVI = function(raster) {
ndvi_r = (rasterr[4]] - rasterr[3]]) / (rasterr[4]] + rasterr[3]])

return(ndvi_r)
}

raster_prefire = terra::rast('2025-05-27_strip_8094341_composite_file_format.tif')
raster_postfire = terra::rast('2025-06-09_strip_8121430_composite_file_format.tif')

NDVI_prefire = NDVI(raster_prefire)
NDVI_postfire = NDVI(raster_postfire)

NDndvi = (NDVI_postfire - NDVI_prefire)

There's no issue with comparing NDVI across multiple images because NDVI is a standardized calculation.

However NDVI ranges from -1 to 1 (vegetation values from 0 to 1). Dense vegetation usually has values 0.6 and higher. The NDVI values shown here are all under 0.3 and the change detection image has an even smaller range. Something may be wrong with the NDVI images, the calculation looks correct- what imagery did you download? How many bands?


Hi Ely,

 

thank you for your reply! I used four-band images (RGB-IR reflectance, harmonized with Sentinel-2) 

I’m not too worried about the range of NDVI. This is in the desert, and there is not a lot of vegetation. The values looks comparable to what I am used to from working with Landsat. I might have to check daily variability in NDVI and use multiple images to calculate the pre- and post-state, though I find it hard to believe that natural variability would be that high. 


The speckled pattern of blue around the scene could be caused by a few things such as from scene-to-scene variability, radiometric noise, atmospheric differences between collections. As well, at lower values of NDVI, small changes is reflectance can cause larger shifts in NDVI value changes.

Things you can do to improve this analysis output could be to:

  • You may want to add a larger transparent region of the color map around -0.05 → 0.05 where those values are so small they represent areas that most likely didn’t see real change. Or only display in your color ramp the areas with a decrease in NDVI
  • You could resample at a lower pixel size, essentially aggregating multiple pixels would increase the signal your are seeing. Or use a low pass filter to reduce some of the noise.
  • You could add additional observations before and after the fire - for example to calculate a median from 3 days before the fire to use as a baseline. The median value is going to be closer to the true value and account for some of the variability.
  • You might explore using different indices like SAVI which might be more well-adjusted to arid zones

Reply