# Buku "Python untuk GIS", Bab 28: Pola dan Improvisasi: Kerangka Siap Salin dan Cara Mengubahnya
# Pola 28.3: Memanggil alat Processing
import os
import processing

DATA = os.environ.get("PY_DATA", r"D:/Latihan")
sungai = DATA + "/paket-i4/Sungai.gpkg"
batas = DATA + "/paket-i4/Batas_KPH.gpkg"

# Keluaran alat pertama menjadi masukan alat kedua
sempadan = processing.run("native:buffer", {
    "INPUT": sungai, "DISTANCE": 30, "DISSOLVE": True,
    "OUTPUT": "TEMPORARY_OUTPUT"})["OUTPUT"]
irisan = processing.run("native:intersection", {
    "INPUT": batas, "OVERLAY": sempadan,
    "OUTPUT": "TEMPORARY_OUTPUT"})["OUTPUT"]

for f in irisan.getFeatures():
    print(f["NAMA_KPH"], round(f.geometry().area() / 10000, 2), "ha sempadan")
