I'm trying to calculate Index‐Based Built‐up Index (IBI). This index has been mentioned in A new index for delineating built‐up land features in satellite imagery. As mentioned in the paper, the range of IBI is from -1 to 1 (page 4271 of the paper).

But in my case, the range is from -195.371 to 473.1621.

The formula for IBI is,

enter image description here

For IBI value 473.1621, the inputs values are NDBI = 0.185422, SAVI = 0.074422, MNDWI = -0.4437.

In my understanding, we have to add SAVI and MNDWI first then divide the result by 2. Then use that result with the respective sign in the numerator and the denominator with NDBI.

The syntax I'm using in Google Earth Engine for this is,

var ibi = ndbi.subtract((savi.add(mndwi)).divide(2)).divide(ndbi.add((savi.add(mndwi)).divide(2))).rename('ibi');

Is it wrong? I am not able to understand what is the problem here.

2 Answers 2


That formula, with the inputs you specified results in a value of 0.850, not 473.

But to avoid this sort of mess, you should use image.expression:

var ibi = ee.Image().expression("ibi = (ndbi - ((savi + mndwi)/2)) / (ndbi + ((savi + mndwi)/2))", {
  ndbi: ee.Image(0.185422),
  savi: ee.Image(0.074422),
  mndwi: ee.Image(-0.04437)


  • Sorry, I had mistakenly written the wrong value for mndwi. In this mndwi is -0.4437. With this value, both the methods show the same answers, 472.619. I have changed the value in the question.
    – Badal
    Oct 11, 2021 at 4:07
  • The authors are incorrect about this being an index ranging from 0 to 1. If the either the SAVI or MNDWI inputs are allowed to be negative, then that is not only not guaranteed, the result can be infinite. Oct 11, 2021 at 11:30
  • This was my mistake, the paper has described making the inputs positive before calculation.
    – Badal
    Oct 11, 2021 at 15:07

Before calculating the IBI, the values of the NDVI, the NDBI, and the MNDWI should be added to 1 or rescaled within 0–255 to convert the negative values of the indices into positive values.

This is written on the paper. My mistake was that I had not gone through the paper correctly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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