4

NDVI式が

NDVI = (NIR — VIS)/(NIR + VIS)

Pythonで計算してみました。私はこれまでのところこれを持っています:

inRaster = ('Landsat.tif')
out_NDVI_file = ('NDVI.tif')

red = arcpy.Describe(inRaster+'/Band_3')
NIR = arcpy.Describe(inRaster+'/Band_4')

num = arcpy.sa.Float(NIR-red)
denom = arcpy.sa.Foat(NIR+red)
NDVI = arcpy.sa.Divide(num, denom)

NDVI.Save(out_NDVI_file)

しかし、私はこのエラーメッセージを受け取ります、

Traceback (most recent call last):
  File "F:\abc\def.py", line 32, in <module>
    num = arcpy.sa.Float(NIR-red)
TypeError: unsupported operand type(s) for -: 'geoprocessing describe data object' and 'geoprocessing describe data object'

私が間違っていることについてのアイデアはありますか?

4

2 に答える 2

4

交換すれば

red = arcpy.Describe(inRaster+'/Band_3')
NIR = arcpy.Describe(inRaster+'/Band_4')

red = arcpy.sa.Raster(inRaster+'/Band_3')
NIR = arcpy.sa.Raster(inRaster+'/Band_4')

スクリプトは期待どおりに動作するはずです。

于 2013-08-27T10:30:51.217 に答える