Ünite 4 / 12

QGIS ve Python ile Mekânsal Veri İş Akışı

Kazanimlar:

  • QGIS ve Python (GeoPandas gibi kütüphaneler) ile mekânsal veri işlemede AI'ı kod ve iş akışı üretiminde kullanabilme
  • AI'ın ürettiği mekânsal kodu küçük örnek veri üzerinde test edip koordinat sistemi ve geometri hatalarına karşı doğrulayabilme
  • Veri gizliliğini ve AI ürettiği scriptin gerçek proje verisinde çalıştırılmadan önce kontrol edilmesi gerektiğini kavrayabilme

Bir planlama biriminde tekrar eden mekânsal işler (katmanları kırpmak, tampon çizmek, alanları hesaplamak, tabloları birleştirmek) elle yapıldığında saatler alır ve hata üretir. Bu işleri otomatikleştiren iki güçlü, ücretsiz ve açık kaynak araç vardır: QGIS (masaüstü bir CBS yazılımı) ve Python (mekânsal veri için GeoPandas, Shapely, Rasterio gibi kütüphaneleri olan bir programlama dili). AI, bu araçlar için kod ve iş akışı üretmede olağanüstü hızlıdır: bir cümlelik istekten çalışır bir script taslağı çıkarır. Ama AI kodu göremediğiniz varsayımlarla yazar — yanlış koordinat sistemi, yanlış birim, elemanları sessizce silen bir işlem. Bu yüzden AI'ın ürettiği her mekânsal kod, gerçek proje verisinde çalıştırılmadan önce okunmalı ve küçük bir örnekte test edilmelidir. Bu ünite, kod yazmayı bilmeseniz de AI ile güvenli mekânsal otomasyonu öğretir.

Neden QGIS ve Python

QGIS, tıklayarak analiz yapmanızı sağlar; öğrenmesi kolaydır ve Python konsolu içerir. Python ise tekrar eden işleri bir kez yazıp yüzlerce dosyada çalıştırmanızı sağlar. GeoPandas, tablo verisini (pandas) coğrafyayla birleştiren, plancılar için en pratik kütüphanedir: bir satır kodla katman okur, filtreler, tampon çizer, alan hesaplar. AI, GeoPandas kodunu çok iyi yazar; ama iyi görünen kod her zaman doğru kod değildir.

Dikkat: AI'ın yazdığı bir script hata vermeden çalışabilir ve yine de tümüyle yanlış sonuç verebilir. "Çalıştı" ile "doğru" farklı şeylerdir. Doğrulama, kodun hata vermemesi değil, sonucun bilinen bir referansla eşleşmesidir.

Bir başka önemli kavram tekrarlanabilirliktir (reproducibility): kamu kurumunda yaptığınız bir analiz, aylar sonra başka biri tarafından aynı adımlarla tekrarlanabilmelidir. Elle tıklayarak yapılan işler hatırlanmaz ve denetlenemez; oysa bir Python scripti hem işin kaydıdır hem de aynı sonucu yeniden üretir. AI ile ürettiğiniz kodu yorumlarıyla birlikte saklamak, hem hesap verebilirliği hem de kurumsal hafızayı güçlendirir. Bu yüzden "çalışan kod" değil, "okunabilir, yorumlu ve saklanan kod" hedefleyin. İyi bir alışkanlık, her scriptin başına hangi veriyle, hangi tarihte, hangi amaçla çalıştığını yazan kısa bir açıklama bloğu eklemektir.

AI ile kod üretmenin altın kuralları

  1. Bağlamı ver. Dosya formatı, CRS, sütun adları, ne yapmak istediğin.
  2. Küçük iste. Tek bir iş yapan kısa kod, dev bir script'ten daha güvenlidir.
  3. Açıklama iste. Kodun her satırının ne yaptığını AI'a yazdır; anlamadığın kodu çalıştırma.
  4. Örnekte test et. Önce 10-20 kayıtlık bir örnek veride dene.
  5. Referansla karşılaştır. Bir alanı/mesafeyi bildiğin bir değerle kıyasla.
  6. Yedekle. Ana veriyi asla üzerine yazma; kopyada çalış.

Adım adım: AI ile güvenli bir mekânsal script

  1. Görevi netleştir. "Parsel katmanından yeşil alanları seç, alanlarını hesapla, 5000 m² üstünü ayrı dosyaya yaz."
  2. Veriyi tanımla. Format (GeoPackage/Shapefile), CRS, ilgili sütun adı.
  3. AI'a kod + açıklama yazdır. Satır satır yorumla.
  4. CRS ve birim kontrolü yaptır. Alan m² mi, katman metrik CRS'te mi?
  5. Örnek veride çalıştır. Sonucu gözle kontrol et.
  6. Bir referansla doğrula. Bir parselin alanını tapu değeriyle kıyasla.
  7. Ana veride çalıştır, çıktıyı yeni dosyaya yaz.

Zayıf prompt / Güçlü prompt

Zayıf prompt: "Parsellerin alanını hesapla."

AI koordinat sistemini, formatı ve sütunu bilmeden yazar; alan yanlış birimde veya yanlış CRS'te çıkabilir.

Güçlü prompt: "GeoPandas ile bir GeoPackage katmanı ('parseller.gpkg', CRS: EPSG:5254 gibi metrik bir ulusal sistem) okuyup her parselin alanını m² olarak yeni bir 'alan_m2' sütununa yaz. Kodun her satırını yorumla. Alan hesabından önce katmanın metrik bir CRS'te olduğunu kontrol eden bir satır ekle; değilse uyar. Çıktıyı yeni bir dosyaya yaz, orijinali değiştirme."

İkinci prompt CRS, birim, güvenli çıktı ve açıklama içerdiği için denetlenebilir, güvenli bir kod üretir.

Dört kopyalanabilir şablon

Görev: GeoPandas ile aşağıdaki işi yapan kısa bir Python kodu yaz.Her satırı Türkçe yorumla. İşlem: [...]Girdi dosyası: [...] (format, CRS: [...], ilgili sütun: [...])Kural: Orijinal dosyayı değiştirme, çıktıyı YENİ dosyaya yaz.İşlemden önce CRS'in metrik olduğunu kontrol et; değilse uyar.

Görev: Aşağıdaki Python/GeoPandas kodunu satır satır açıkla veRİSKLERİ işaretle: hangi satır veri silebilir/üzerine yazabilir, hangiişlem CRS veya birim varsayıyor, hangi adım büyük veride yavaş olur.Kodu değiştirme; sadece açıkla ve uyar.Kod: [...]

Görev: Bu kodu gerçek veride çalıştırmadan önce küçük bir TEST planı yaz.Hangi örnek veriyle, hangi beklenen sonuçla, hangi referans değeriyledoğrulanmalı? Bir kontrol listesi ver.Kod/işlem: [...]

Görev: Aşağıdaki QGIS işlemini (tıklama adımları) hem QGIS menü yoluhem de eşdeğer Python/GeoPandas kodu olarak tarif et. Farkları vedikkat noktalarını (CRS, birim) belirt.İşlem: [...]

Bir tablo: sık mekânsal işlemler ve tuzakları

İşlem

Ne yapar

AI kodunda tuzak

Doğrulama

Alan hesabı

Poligon alanını bulur

Coğrafi CRS'te alan anlamsız

Bilinen alanla kıyas

Tampon (buffer)

Sınır etrafında bölge

Birim (derece/metre) hatası

Metrik CRS + ölçüm

Mekânsal birleştirme

Katmanları ilişkilendirir

Yanlış anahtar/çift kayıt

Kayıt sayısı kontrolü

Kırpma (clip)

Alanla keser

Sınır dışı veri kaybı

Girdi/çıktı karşılaştır

Yeniden projeksiyon

CRS değiştirir

Yanlış hedef CRS

EPSG kodu teyidi

Üç mini vaka

Vaka 1 — Sessiz üzerine yazma. Bir plancı, AI'ın yazdığı bir script'i doğrudan ana katman üzerinde çalıştırır. Kod, bir filtreyi yanlış uygulayıp katmanın yarısını siler ve aynı dosyaya kaydeder. Yedek olmadığı için günlerce sürmüş bir veri kaybolur. Ders: çıktı her zaman yeni dosyaya, ana veri her zaman yedekli.

Vaka 2 — Yanlış birimli tampon. Bir ekip, okullara 500 metrelik erişim tamponu ister. AI kodu coğrafi CRS'te çalışır; 500 "derece" tampon tüm haritayı kaplar. Ekip küçük örnekte test ettiği için hatayı ana veriye geçmeden yakalar; metrik CRS'e projeksiyon ekleyip düzeltir. Test etme alışkanlığı bir felaketi önler.

Vaka 3 — Açıklamayla öğrenme. Kod bilmeyen bir plancı, AI'a her satırı yorumlatarak bir birleştirme (join) kodu üretir. Açıklamada "bu satır eşleşmeyen kayıtları düşürür" ifadesini görür ve bunun bazı parselleri kaybedeceğini fark eder; AI'dan eşleşmeyenleri de tutan bir sürüm ister. Kodu anlamak, onu güvenle kullanmanın ön koşuludur.

Sık yapılan hatalar

  • Ana veride doğrudan çalıştırmak. Her zaman kopyada çalışın, çıktıyı yeni dosyaya yazın.
  • "Çalıştı"yı "doğru" sanmak. Hatasız kod yanlış sonuç verebilir; referansla doğrulayın.
  • CRS ve birim varsaymak. Alan ve mesafe işlemlerinde metrik CRS'i her zaman kontrol edin.
  • Anlamadığın kodu çalıştırmak. Açıklama istemeden, satırların ne yaptığını bilmeden çalıştırmak riskli.
  • Küçük testi atlamak. Örnek veride denemeden büyük veriye geçmek en sık hata kaynağıdır.
  • Gizli veriyi bulut araçlarına düşünmeden vermek. Kod ürettirirken gerçek parsel/kişi verisini paylaşmayın; örnek/anonim veri kullanın.

Özetle

QGIS ve Python (özellikle GeoPandas), planlamadaki tekrar eden mekânsal işleri otomatikleştirir; AI bu araçlar için hızla kod üretir. Ama AI kodu göremediğiniz varsayımlarla yazar: yanlış CRS, yanlış birim, veriyi sessizce silen işlemler. Güvenli kullanım altı kurala dayanır: bağlam ver, küçük iste, açıklama al, örnekte test et, referansla doğrula, yedekle. "Çalıştı" ile "doğru" aynı şey değildir. Kod bilmeseniz bile, her satırı anlayarak ve gizli veriyi paylaşmadan AI ile güvenli mekânsal otomasyon yapabilirsiniz.

Uygulama görevi

Tekrar eden bir mekânsal iş seçin (örneğin bir katmandaki alanları hesaplayıp bir eşiğin üstünü ayırmak). (1) İlk şablonla AI'a kod + satır açıklaması yazdırın. (2) İkinci şablonla aynı kodun risklerini işaretletin ve en az bir "veri silebilir/CRS varsayıyor" satırı bulun. (3) Üçüncü şablonla bir test planı çıkarın: hangi örnek veri, hangi referans değer. (4) Kodu gerçek veride çalıştırmadan önce yapacağınız üç güvenlik adımını yazın.

Kontrol listesi

  • [ ] AI'a format, CRS ve sütun bağlamını verdim.
  • [ ] Kodun her satırını açıklattım; anlamadığım kodu çalıştırmadım.
  • [ ] Kısa, tek işlevli kod istedim.
  • [ ] Küçük örnek veride test ettim ve sonucu gözle kontrol ettim.
  • [ ] Sonucu bilinen bir referans değeriyle doğruladım.
  • [ ] Ana veriyi yedekledim; çıktıyı yeni dosyaya yazdım.
  • [ ] Gerçek gizli veriyi bulut aracına vermedim; anonim/örnek veri kullandım.