# [SKRIP 3.1-Pro: Batch Processing Citra Drone dengan ArcPy]
# Penulis: Badar Mubarok Yogaswara
# [CEK] Cocokkan dengan versi Anda. Butuh ekstensi Spatial Analyst atau Image Analyst.
import os
import arcpy
from arcpy.sa import Raster, Float

arcpy.CheckOutExtension("Spatial")
arcpy.env.overwriteOutput = True

folder_input = r"D:\Data_Drone\Ortofoto_Mentah"
folder_output = r"D:\Data_Drone\NDVI_Hasil"
arcpy.env.workspace = folder_input

daftar = arcpy.ListRasters("*", "TIF")
total = len(daftar)
print(f"Memulai batch {total} ubin...")

for i, nama in enumerate(daftar, start=1):
    # Urutan band mengikuti Skrip 3.1 QGIS: pastikan Band_1 = NIR dan Band_2 = Red
    band1 = Float(Raster(os.path.join(folder_input, nama, "Band_1")))
    band2 = Float(Raster(os.path.join(folder_input, nama, "Band_2")))
    ndvi = (band1 - band2) / (band1 + band2)
    ndvi.save(os.path.join(folder_output, "NDVI_" + nama))
    print(f"{i}/{total} selesai: {nama}")

arcpy.CheckInExtension("Spatial")
print("Batch selesai.")
