FAQ
ArcPy: マルチバンド ラスターのバンド間演算

ナレッジ番号:3407 | 登録日:2023/05/29 | 更新日:2024/11/21

概要

マルチバンド ラスターをバンド間演算するためのサンプル コードです。

サンプル コード

バンド間演算を行うことで、衛星画像(マルチバンド ラスター)のバンドから NDVI(植生指数)画像を作成します。
サンプル コードでは、バンド 3 が赤、バンド 4 が近赤外の衛星画像をバンド間演算します。

# ArcPy サイト パッケージ、os モジュールをインポートします。
import arcpy, os

# Spatial Analyst ライセンスを取得します。
from arcpy.sa import *
arcpy.CheckOutExtension("Spatial")

# 入出力ファイルを定義します。
infile = r"C:\temp\image.tif"
outfile = r"C:\temp\ndvi.tif"
if arcpy.Exists(outfile):
    arcpy.Delete_management(outfile)

# マルチバンド ラスターをラスターオブジェクトに格納します。さらに各バンドの情報を取得してラスターオブジェクトに格納します。
inRaster = arcpy.Raster(infile)
bands = arcpy.Describe(inRaster).children

# バンド 3(赤)とバンド 4 (近赤外)の全パス名を生成して、ラスターオブジェクトに格納します。
band3 = arcpy.Raster(inRaster.catalogPath+os.sep+bands[2].name)
band4 = arcpy.Raster(inRaster.catalogPath+os.sep+bands[3].name)

# バンド間演算を行います。
outRaster = Float(band4-band3)/Float(band4+band3)

# 出力ファイルに保存します。
outRaster.save(outfile)

補足情報

ヘルプ: Raster オブジェクト

ArcPy で画像処理をしてみよう ~その3:ラスタ演算(Spatial Analyst)

メタデータ

機能

種類

製品

バージョン