# Skrip 1.1: membaca tabel atribut lapisan Petak (QGIS Python Console)
# Penulis: Badar Mubarok Yogaswara
import os
from qgis.core import QgsVectorLayer, QgsProject, QgsDistanceArea, QgsCoordinateTransformContext

DATA = os.environ.get("B2_DATA", r"C:/KPH_Contoh/paket-b2")
petak = QgsVectorLayer(DATA + "/Petak_KPH.gpkg|layername=Petak", "Petak", "ogr")
if not petak.isValid():
    raise SystemExit("Lapisan Petak tidak terbaca. Periksa DATA: " + DATA)
print("Valid:", petak.isValid(), "| Jumlah baris:", petak.featureCount())

# Kolom (field) dan tipenya
for fld in petak.fields():
    print(fld.name(), "-", fld.typeName())

# Tiga baris pertama
for i, fitur in enumerate(petak.getFeatures()):
    print(fitur["KODE_PETAK"], fitur["NAMA_KPH"], fitur["JENIS"], fitur["TAHUN_TANAM"], fitur["STATUS"])
    if i == 2:
        break

# Ringkasan dasar: jumlah dan rata-rata LUAS_LAMA_HA
nilai = [f["LUAS_LAMA_HA"] for f in petak.getFeatures()]
print("Jumlah LUAS_LAMA_HA:", round(sum(nilai), 2), "| Rata-rata:", round(sum(nilai) / len(nilai), 4))
print("Jenis unik:", sorted(set(f["JENIS"] for f in petak.getFeatures())))
