code: def run(self):
          
          self.output("* NDVI processing started.", normal=True)
  
          bands = self._read_bands()
          image_data = self._get_image_data()
  
          new_bands = []
          for i in range(0, 2):
              new_bands.append(numpy.empty(image_data['shape'], dtype=numpy.float32))
  
          self._warp(image_data, bands, new_bands)
  
          # Bands are no longer needed
          del bands
  
          calc_band = numpy.true_divide((new_bands[1] - new_bands[0]), (new_bands[1] + new_bands[0]))
  
          output_band = numpy.rint((calc_band + 1) * 255 / 2).astype(numpy.uint8)
  
          output_file = join(self.dst_path, self._filename(suffix='NDVI'))
  
          return self.write_band(output_band, output_file, image_data)
docs: Executes NDVI processing