This question already has an answer here:

I have downloaded NDVI MODIS 500m image i.e. MOD13A1. From the hdf format that i got i converted them into tif format using the HEG tool. The images that i got some are showing pixel values -32767 to 32768; some images are showing from -2000 to 10156. How do i use the scale factor 0.0001 in such case to get NDVI values from -1 to 1 .

marked as duplicate by Aaron Jun 18 '16 at 4:47

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • See here for an excellent answer already on GIS Stack Exchange. @dmahr – GeoSharp Oct 15 '15 at 9:46
  • I had already seen that answer but what about the pixel values that are greater than 10000 how do you get the NDVI values corresponding to these pixels. – saurabh shah Oct 15 '15 at 9:57
  • 1
    Are you absolutely sure you have pixels larger than 10000? The valid data range for EVI/NDVI of MOD13A1 are -2000 to 10000 and should never exceed that. – Kersten Oct 15 '15 at 11:36
  • Yeah i can attach images i have viewed them both in Arcgis and matlab. – saurabh shah Oct 15 '15 at 12:27
  • Also in the link that is shared by James it is specified that the pixel values vary from -32768 to 32767 then how can we use the scaling factor of 0.0001 – saurabh shah Oct 15 '15 at 12:30

I've encountered similar situations with MODIS albedo product before, but not NDVI. Based on my experience with MODIS data (albedo and others), these datasets are not perfect, and sometimes there will be values appear which are neither within the range of valid values nor fill values indicated by the product website. My recommendation would be first to check out if the original HDF files have those weird values. Since you did conversion using HEG, it's always good to see if those values appeared during the conversion process. Then i'd recommend create a series of masks yourself, based on the QA bands and the actual values. I believe MOD13A1 product has two QA bands, you can use them to mask out pixels of lower quality according to your need. Also, since there may still be weird values even for high quality observations, you can set another mask to exclude all pixels that are not within the valid range. After applying these masks, you are difinitely going to have only high quality NDVI values left and they are within -2000 - 10000. You can then scale them down uniformly.

Not the answer you're looking for? Browse other questions tagged or ask your own question.