"Gelecek, şimdinin bir uzantısı değil, şimdinin can sıkıntısından kaçışıdır." – Oscar Wilde"

Buğday ve Arpada Kök ve Kökboğazı Çürüklüklerinin Entegre Mücadelesi: Etmenler, Belirtiler ve Güncel Yaklaşımlar

Bu metin, buğday ve arpanın küresel gıda güvenliğindeki kritik önemini ve bu tahılların üretimini tehdit eden fungal kökenli kök ve kökboğazı çürüklüklerini ele alıyor. Fusarium türleri başta olmak üzere çeşitli patojenlerin neden olduğu bu hastalık kompleksi, farklı ekolojik koşullarda ortaya çıkarak ciddi verim kayıplarına yol açıyor. Hastalığın karmaşık yapısı ve çoklu etmen varlığı, mücadeleyi zorlaştıran faktörler olarak öne çıkıyor.

yazı resim

Buğday (Triticum aestivum L.) ve arpa (Hordeum vulgare L.), dünya genelinde en fazla üretilen tahıl türleri arasında yer almakta ve küresel gıda güvenliğinde kritik bir role sahip bulunmaktadır. Bu stratejik ürünlerin sürdürülebilir üretiminde en önemli sınırlayıcı faktörlerden biri fungal kökenli kök ve kökboğazı çürüklükleridir. Bu hastalık kompleksi, toprak kökenli patojenlerin neden olduğu ve özellikle stres koşullarında ciddi verim kayıplarına yol açan bir sendromdur. Kök ve kökboğazı çürüklüklerinin etmenleri arasında Fusarium türleri (özellikle F. culmorum ve F. pseudograminearum), Bipolaris sorokiniana, Rhizoctonia cerealis ve Pseudocercosporella herpotrichoides başlıca yer almaktadır. Bu patojenlerin her biri farklı ekolojik koşullarda baskın hale gelebilmekte ve çeşitli belirtiler oluşturmaktadır. Hastalığın karmaşık doğası, çoklu etmen varlığı ve çevresel faktörlere bağımlılığı, mücadelesini zorlaştıran temel unsurlardır. Modern tarımda sürdürülebilir üretim anlayışı çerçevesinde, kimyasal mücadele yöntemlerinin tek başına yeterli olmadığı ve çevresel riskleri de beraberinde getirdiği kabul edilmektedir. Bu nedenle, entegre hastalık yönetimi (IDM) yaklaşımının benimsenmesi gerekmektedir. Bu yaklaşım, kültürel önlemler, biyolojik mücadele, dayanıklı çeşit kullanımı ve gerektiğinde kimyasal uygulamaları içeren holistik bir stratejiyi ifade etmektedir.
HASTALLIK ETMENLERİ VE MORFOLOJİK ÖZELLİKLERİ
Fusarium türleri
Fusarium pseudograminearum Aoki & O'Donnell
F. pseudograminearum, buğday ve arpada kök çürüklüğünün başlıca etmenlerinden biridir. Bu türün teşhis edici morfolojik özellikleri şunlardır:
- Fialit yapısı: Fialitleri üzerinde boğumun hemen yanında karakteristik bir bölme oluşur
- Makrokonidiler: Belirgin ayak hücreli, genellikle 5-6 bölmeli, hafifçe kıvrık ve düz yapıda
- Klamidospor oluşumu: Besi yerinde klamidospor oluşturma kapasitesine sahiptir
- Pigmentasyon: PDA ve SNA ortamlarında karmen kırmızısı renk oluşturur
Fusarium culmorum (WG Smith) Sacc.
F. culmorum'un ayırt edici karakteristikleri:
- Makrokonidiler: Kültürde bol miktarda kısa ve kalın görünümlü makrokonidiyum oluşturur
- Bölme sayısı: Makrokonidiyumları genellikle 4-5 bölmeli olup, belirgin bir ayak hücresi bulunmaz
- Klamidospor: Kültürde klamidospor oluşturur
- Renk: Oluşturduğu pigmentler nedeniyle somon rengi karakteristiktir
Bipolaris sorokiniana (Sacc.)
B. sorokiniana'nın morfolojik özellikleri:
- Konidioforlar: Koyu kahverengi, kısa yapıda, çoğunlukla tek veya küçük gruplar halinde, düz veya kıvrık, 110-150 x 6-10 µm boyutlarında
- Konidiosporlar: 3-10 bölmeli, 60-120 x 5-20 µm boyutlarında
- Yaşam döngüsü: Hem tohumla hem de bitki artıkları ile bir yıldan diğerine geçiş gösterir
Rhizoctonia cerealis Van der Hoeven
R. cerealis'in karakteristik özellikleri:
- Hif yapısı: Hifleri dik açı oluşturacak şekilde yan dallar oluşturur
- Bölmeler: Yan dallar üzerinde boğumun hemen yanında bölme meydana gelir
- Renk değişimi: Miseller gençken şeffaf, sonra sarımtırak, yaşlandıkça koyu kahverengi hal alır
- Yaşam süresi: Toprakta uzun süre canlı kalabilme yeteneğine sahiptir
Pseudocercosporella herpotrichoides Ggt.
P. herpotrichoides'in morfolojik karakteristikleri:
- Vejetatif miseller: Genellikle sarı ile kahverengi uzun hücrelere sahip
- Stroma miselleri: Çok hücreli, kalın duvarlı ve poligonal yapıda
- Sporlar: Çoğunlukla 5-7 bölmeli, ince uzun yapıda, genellikle 40-60 x 1.5-3.5 µm boyutlarında
- Besiyeri gelişimi: PDA besiyerinde az sayıda da olsa gelişebilme kapasitesi
EPİDEMİYOLOJİ VE ÇEVRESEL FAKTÖRLER
İnokulumun Kaynağı ve Yaşam Döngüsü
Kök ve kökboğazı çürüklüğü etmenleri hem toprak hem de tohum kökenli patojenlerdir. Bu funguslar toprakta bitki artıkları üzerinde iki yıldan fazla canlılıklarını koruyabilme yeteneğine sahiptir. Bitki artıklarının toprak yüzeyinde bekletilmesi durumunda, patojenlerin yaşamlarını sürdürmeleri kolaylaşmaktadır.
İnokulumun birincil kaynakları:

  1. Enfekteli tohumlar: Patojenler tohum üzerinde veya içinde bulunarak yeni alanlara taşınır
  2. Topraktaki bitki artıkları: Önceki sezondan kalan enfekteli sap, kök ve yaprak kalıntıları
  3. Topraktaki sklerot ve klamidosporlar: Uzun süre canlılığını koruyabilen dayanıklı yapılar
    Hastalığı Etkileyen Çevresel Faktörler
    İklim Koşulları
    - Fusarium türleri: Kurak geçen uzun ilkbahar periyodundan sonraki yağışlarda şiddetli hastalık oluşturur.
    - B. sorokiniana: Sıcak ve nemli koşullarda gelişim gösterir.
    - R. cerealis: Sonbaharda yağış ve sulamanın iyi olması durumunda bitkiler daha dirençli hale gelir.
    - P. herpotrichoides: İlkbahar yağışlarında fungusun hifleri genç yaprak kınlarına ulaşır. Toprak Koşulları
    - Ağır topraklar: Oksijenin yetersiz olduğu ağır topraklarda hastalık daha şiddetli gelişir.
    - Zayıf topraklar: Besin elementi eksikliği olan topraklarda hastalık artışı gözlenir.
    - Toprak işleme: Minimal toprak işlemesi yapılan alanlarda hastalık daha yoğun görülür.
    HASTALLIK BELİRTİLERİ VE TEŞHİS
    Genel Belirtiler
    Kök ve kökboğazı çürüklüklerinin ortak belirtileri:
    - Fide döneminde: Sararma, gelişme geriliği ve ölümler
    - Vejetatif dönemde: Bitki boyunun kısalması, kardeşlenmenin azalması
    - Generatif dönemde: "Beyaz başak" oluşumu, başaklarda bükülme
    - Kök sisteminde: Kahverengi-siyah çürük lekeler, kök sisteminin zayıflaması
    Etmene Özgü Belirtiler
    Fusarium Belirtileri
    - Bitkinin tacında ve yaprak kınının altında pembe renklenme
    - Sap ve boğumda bal rengi görünüm
    - Enfekteli kökler plastik torbaya konulduğunda pembe renklenmenin belirginleşmesi
    - Çiçeklenme döneminde beyaz başak oluşumu
    - Gövde kurtlarının da etkisiyle sap içinden kesilme
    Bipolaris sorokiniana Belirtileri
    - Kök ve kökboğazında koyu veya soluk kahverengi lekeler
    - Yapraklarda noktalar halinde nekrotik lekeler
    - Başakta kavuz ve tane yanıklığı
    - Embriyo kararması
    - Tüm gelişme dönemlerinde ve organ sistemlerinde hastalık
    Rhizoctonia cerealis Belirtileri
    - Bitkilerde donuk, mor veya koyu yeşil renk değişimi
    - Kök sisteminin kısalması ve kahverengileşmesi
    - Bitki saplarında kenarları belirgin oval lekeler
    - Gelişme geriliği ve genel zayıflık
    Pseudocercosporella herpotrichoides Belirtileri
    - Genç yaprak kınlarında ve saplarda donuk oval lekeler
    - Lekelerin kenarlarında kahverengi görünüm
    - Lekelerin ortasında siyah stromaya ait püstüller
    - Çürük kısımlardan bitkinin kıvrılması ve gelişigüzel yatması
    - Hasat döneminde boş başaklar ve cılız taneler
    EKONOMİK ÖNEMİ VE YAYILIŞI
    Ekonomik Kayıplar
    Kök ve kökboğazı çürüklükleri, uygun koşulların oluştuğu durumlarda %50 veya daha fazla ürün kaybına neden olabilmektedir. Bu kayıplar aşağıdaki faktörlerden kaynaklanmaktadır:
    - Fide ölümleri: Erken dönem enfeksiyonları sonucu bitki populasyonunda azalma
    - Verim elementlerinde azalma: Başak sayısı, başakta tane sayısı ve bin tane ağırlığında düşüş
    - Kalite kayıpları: Tane ağırlığı, protein içeriği ve teknolojik kalite parametrelerinde bozulma
    - İkincil enfeksiyonlar: Zayıflayan bitkilerin diğer hastalık ve zararlılara karşı duyarlılığının artması
    Coğrafi Yayılış
    Türkiye'de hastalık etmenlerinin dağılımı bölgesel farklılıklar göstermektedir:
    - Marmara ve Ege Bölgeleri: F. pseudograminearum ve P. herpotrichoides daha yaygın
    - Tüm bölgeler: F. culmorum ve R. cerealis yaygın olarak rastlanır
    - İç Anadolu: Kurak koşullar nedeniyle Fusarium türleri baskın
    - Karadeniz Bölgesi: Yüksek nem nedeniyle B. sorokiniana daha sık görülür.
    MÜCADELE STRATEJİLERİ
    Kültürel Mücadele Yöntemleri
    Kültürel mücadele, sürdürülebilir hastalık yönetiminin temel taşını oluşturmaktadır. Bu yaklaşım, hastalığın gelişimi için uygun olmayan koşullar oluşturaarak patojen popülasyonunu azaltmayı hedeflemektedir.
    Dayanıklı Çeşit Kullanımı
    Dayanıklı çeşit kullanımı, en ekonomik ve çevre dostu mücadele yöntemidir. Dayanıklılık ıslahında dikkat edilmesi gereken hususlar:
    - Horizontal dayanıklılık: Birden fazla patojene karşı geniş spektrumlu dayanıklılık
    - Çeşit çeşitliliği: Tek çeşit kullanımından kaçınarak genetik çeşitliliği koruma
    - Bölgesel uyum: Yerel koşullara uygun çeşit seçimi
    - Erkencilik faktörü: Geççi çeşitlerin hastalıklara karşı daha dayanıklı olma eğilimi
    Ürün Rotasyonu
    Ürün rotasyonu, hastalık döngüsünü kırarak inokulumu azaltan temel bir yöntemdir:
    - Fusarium türleri için: 2-3 yıllık rotasyon önerilir.
    - Konukçu olmayan bitkiler: Baklagiller, ayçiçeği gibi alternatif ürünler
    - Tuzak bitki olarak yulaf: Fusarium türlerinin popülasyonunu azaltan özel bir rotasyon elemanı
    Toprak İşleme ve Anız Yönetimi
    Etkili toprak işleme ve anız yönetimi stratejileri:
    - Anızların gömülmesi: Bitki artıklarının toprağa karıştırılarak çürüme sürecinin hızlandırılması
    - Ekim öncesi temizlik: Topraktaki yeşil bitki ve artıklarının yok edilmesi
    - Uygun ekim derinliği: Tohumun optimum koşullarda çimlenmesini sağlama
    - Toprak tavı: Ekim sırasında uygun nem seviyesinin korunması
    Beslenme Yönetimi
    Dengeli beslenme, bitkinin hastalığa karşı direncini artıran kritik bir faktördür:
    - Azot yönetimi: Aşırı azot uygulamasından kaçınma
    - Fosfor ve potasyum: Kök gelişimini destekleyici besin elementleri
    - İz elementler: Çinko, mangan, demir eksikliklerinin giderilmesi
    - Organik madde: Toprak mikrobiyotasını zenginleştirme
    Kimyasal Mücadele
    Kimyasal mücadele, özellikle tohum ilaçlaması şeklinde uygulandığında etkili sonuçlar vermektedir. Ancak bu yöntem, entegre mücadele sisteminin bir parçası olarak kullanılmalıdır.
    Tohum İlaçlaması
    Tohum ilaçlaması, hastalık mücadelesinin en kritik aşamalarından biridir:
    Uygulama zamanı: Ekimden hemen önce
    Uygulama tekniği: İlacın tohum yüzeyini tamamen kaplaması
    Kullanılan ekipmanlar: Selektörlü ilaçlama makineleri veya karıştırıcı düzenekler
    Aktif Maddeler ve Ticari Ürünler
    Güncel olarak kullanılan başlıca aktif maddeler ve ürünler:
    Prochloraz + Tetraconazole kombinasyonları:
    - Fusazil (Syngenta): 200 ml/da fungisit uygulaması
    - Hem yaprak/gövde koruyucu hem toprak etkili
    - PHI süresi yaklaşık 56 gün
    Fludioxonil + Sedaxane kombinasyonları:
    - Dooku (Syngenta): 150 ml/100 kg tohum
    - Özellikle tohum ilaçlaması için formüle edilmiş
    - Rhizoctonia, Fusarium, Pythium ve Bipolaris'e karşı etkili
    Carboxin + Thiram kombinasyonları:
    - Vitavax 200 FF: Geleneksel tohum ilaçları
    - Geniş spektrumlu koruyucu etki
    - Tohum kaynaklı enfeksiyonlara karşı etkili
    Direnç Yönetimi
    Fungisit direncinin gelişimini önlemek için:
    - Aktif madde rotasyonu: Farklı etki mekanizmalı fungisitlerin dönüşümlü kullanımı
    - Kombinasyon ürünleri: Farklı gruplardan aktif maddelerin birlikte kullanımı
    - Doz optimizasyonu: Etiket dozlarına uygun uygulama
    Entegre Hastalık Yönetimi
    Entegre hastalık yönetimi, birden fazla mücadele yönteminin sinerjik etkisinden yararlanır:
    Temel İlkeler
    - Önleme odaklı yaklaşım: Hastalığın oluşumunu engelleme
    - Çok bileşenli sistem: Farklı yöntemlerin koordineli kullanımı
    - Ekonomik eşik: Maliyet-fayda analizine dayalı karar verme
    - Çevre duyarlılığı: Ekolojik dengenin korunması
    Monitoring ve Karar Destek Sistemleri
    Modern tarımda hastalık yönetimi için teknolojik araçların kullanımı:
    İklim tabanlı tahmin modelleri:
    - Sıcaklık, nem ve yağış verilerine dayalı risk analizi
    - Hastalık gelişimi için kritik dönemlerin belirlenmesi
    Uzaktan algılama teknolojileri:
    - Uydu görüntüleri ile stresli alanların tespiti
    - Drone teknolojisi ile yüksek çözünürlüklü haritalama
    Mobil uygulamalar:
    - Plantix, Agrobase gibi hastalık teşhis uygulamaları
    - Fotoğraf tabanlı otomatik tanı sistemleri
    Yapay zeka tabanlı sistemler:
    - Makine öğrenmesi algoritmaları ile hastalık tahmini
    - Büyük veri analizi ile optimize edilmiş mücadele önerileri
    YENİ TEKNOLOJİLER VE GELECEĞE BAKIŞ
    Moleküler Teşhis Yöntemleri
    Geleneksel morfolojik teşhis yöntemlerine ek olarak, moleküler teknikler daha hızlı ve kesin sonuçlar sunmaktadır:
    - PCR tabanlı yöntemler: Spesifik primer çiftleri ile hızlı teşhis
    - Gerçek zamanlı PCR (qPCR): Patojenlerin kantitasyonu
    - DNA barkodlama: Tür düzeyinde kesin identifikasyon
    - Metagenomik analizler: Toprak mikrobiota analizleri
    Hassas Tarım Teknolojileri
    Hassas tarım yaklaşımı ile hastalık yönetimi:
    Değişken oranlı uygulama:
    - GPS tabanlı hassas ilaçlama sistemleri
    - Tarla içi değişkenliğe göre optimize edilmiş dozlar
    Sensör teknolojileri:
    - Toprak nem ve sıcaklık sensörleri
    - Bitki stres durumu monitörleme sistemleri
    Otomasyon sistemleri:
    - Otonom ilaçlama robotları
    - Yapay zeka destekli karar verme sistemleri
    Biyolojik Mücadele Potansiyeli
    Sürdürülebilir tarım anlayışı çerçevesinde biyolojik mücadele alternatiflerinin geliştirilmesi:
    Antagonist mikroorganizmalar:
    - Trichoderma türleri
    - Bacillus subtilis ve benzeri bakteriler
    - Pseudomonas fluorescens grubu bakteriler
    Biyolojik fungisitler:
    - Mikrobiyal kaynaklı aktif maddeler
    - Doğal kaynaklı bitki koruma ürünleri
    Genetik İyileştirme ve Islah Programları
    Modern ıslah teknikleri ile hastalığa dayanıklı çeşit geliştirme:
    Marker destekli seleksiyon:
    - DNA markerları ile dayanıklılık genlerinin takibi
    - Piramitleme stratejileri ile çoklu gen transferi
    Genomik seleksiyon:
    - Genom çapında ilişkilendirme çalışmaları
    - Tahmin modellerinin ıslah programlarında kullanımı
    DEĞERLENDİRME VE İZLEME SİSTEMLERİ
    Hastalık Şiddeti Değerlendirmesi
    Standardize edilmiş değerlendirme protokolleri:
    Arazi örneklemesi:
    - Tarla büyüklüğüne göre örnekleme noktası sayısı
    - Köşegen yöntemi ile objektif örnekleme
    Skala sistemi (0-7):
    - 0: Bitki sağlam (%0)
    - 1: Az sararma (%1-15) - Kök ve kökboğazı sararmış
    - 3: Orta derecede sararma (%16-40) - Kahverengileşme 1. yaprak kınına kadar
    - 5: Şiddetli sararma (%41-70) - Kök ve kökboğazı kahverengi, yapraklarda lekeler
    - 7: Bitki ölü (%71-100)
    Mücadele Etkinliğinin Değerlendirilmesi
    Kritik değerlendirme dönemleri:
    - 2-4 yapraklı dönem: Erken enfeksiyon kontrolü
    - Süt olum dönem: Geç dönem etkinlik değerlendirmesi
    Karşılaştırmalı analizler:
    - İlaçlı ve ilaçsız parsel karşılaştırmaları
    - Farklı mücadele yöntemlerinin etkinlik analizi
    Buğday ve arpada kök ve kökboğazı çürüklükleri, karmaşık etiyolojiye sahip multifaktöryel bir hastalık kompleksidir. Bu hastalıkların başarılı bir şekilde yönetilmesi, entegre mücadele yaklaşımının benimsenmesiyle mümkündür.
    Temel Öneriler
    Kısa vadeli stratejiler:
  4. Tohum kalitesi: Sertifikalı, hastalıksız tohum kullanımı
  5. Tohum ilaçlaması: Uygun fungisitlerle tohum koruma
  6. Dayanıklı çeşit: Bölgesel koşullara uygun dayanıklı çeşit seçimi
  7. Ekim zamanı: Optimum ekim zamanına uyma
    Orta vadeli stratejiler:
  8. Rotasyon planlaması: 2-3 yıllık ürün rotasyonu uygulaması
  9. Toprak iyileştirme: Organik madde artışı ve pH düzenleme
  10. Su yönetimi: Drenaj sistemlerinin iyileştirilmesi
  11. Besin yönetimi: Dengeli gübreleme programları
    Uzun vadeli stratejiler:
  12. Çeşit geliştirme: Dayanıklı çeşit ıslah programları
  13. Sürdürülebilir sistem: Ekolojik dengeyi koruyan üretim sistemleri
  14. Teknoloji entegrasyonu: Hassas tarım teknolojilerinin adaptasyonu
    BİTKİ HASTALIK RİSK TAHMİN SİSTEMİ
    python

GEREKLİ KÜTÜPHANELER

import pandas as pd
import numpy as np
import requests
import json
from datetime import datetime, timedelta
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.metrics import mean_absolute_error, r2_score
from sklearn.preprocessing import StandardScaler
import folium
from folium.plugins import HeatMap, MarkerCluster
from prophet import Prophet
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import warnings
warnings.filterwarnings('ignore')

⚙️ YAPILANDIRMA AYARLARI

class Config:
OPENWEATHER_API_KEY = "SENİN_API_KEY_BURAYA"
NASA_API_KEY = "NASA_API_KEY_BURAYA" # NDVI verisi için

Marmara Bölgesi Koordinatları (önemli tarım alanları)

MARMARA_LOCATIONS = {
'İstanbul': (41.0082, 28.9784),
'Bursa': (40.1885, 29.0610),
'Tekirdağ': (40.9781, 27.5110),
'Kocaeli': (40.7652, 29.9401),
'Sakarya': (40.7731, 30.3940),
'Balıkesir': (39.6537, 27.8903),
'Çanakkale': (40.1553, 26.4142),
'Edirne': (41.6771, 26.5550),
'Kırklareli': (41.7356, 27.2250)
}

Bitki türleri ve risk parametreleri

BITKI_TURLERI = {
'zeytin': {'ideal_sicaklik': (15, 30), 'nem_limit': 75, 'ndvi_min': 0.3},
'uzum': {'ideal_sicaklik': (18, 28), 'nem_limit': 80, 'ndvi_min': 0.4},
'domates': {'ideal_sicaklik': (20, 30), 'nem_limit': 70, 'ndvi_min': 0.5},
'misir': {'ideal_sicaklik': (18, 32), 'nem_limit': 65, 'ndvi_min': 0.6},
'bugday': {'ideal_sicaklik': (10, 25), 'nem_limit': 60, 'ndvi_min': 0.4}
}

📊 VERİ YÖNETİMİ SINIFI

class VeriYoneticisi:
def __init__(self):
self.weather_data = {}
self.hastalik_verisi = self._tarihsel_hastalik_verisi_olustur()
def _tarihsel_hastalik_verisi_olustur(self):
"""Tarihsel bitki hastalık verisi simülasyonu"""
tarihler = pd.date_range(start='2020-01-01', end=datetime.now(), freq='D')
data = []
for tarih in tarihler:
for sehir, koordinat in Config.MARMARA_LOCATIONS.items():

Mevsimsel etki

mevsim = (tarih.month % 12 + 3) // 3
mevsim_etkisi = {1: 0.1, 2: 0.3, 3: 0.6, 4: 0.2}[mevsim]

Rastgele hastalık vakaları (gerçek veride API'den çekilecek)

hastalik_olasilik = 0.1 + mevsim_etkisi * 0.3
hastalik_vakasi = np.random.binomial(1, hastalik_olasilik)
data.append({
'tarih': tarih,
'sehir': sehir,
'enlem': koordinat[0],
'boylam': koordinat[1],
'hastalik_vakasi': hastalik_vakasi,
'mevsim': mevsim
})
return pd.DataFrame(data)
def hava_durumu_verisi_cek(self, gun_sayisi=30):
"""OpenWeatherMap API'den hava durumu verisi çekme"""
base_url = "http://api.openweathermap.org/data/2.5/onecall/timemachine"
for sehir, (lat, lon) in Config.MARMARA_LOCATIONS.items():
try:

Geçmiş 30 günlük veri

end_date = datetime.now()
start_date = end_date - timedelta(days=gun_sayisi)
gunluk_veriler = []
for i in range(gun_sayisi):
tarih = start_date + timedelta(days=i)
timestamp = int(tarih.timestamp())
url = f"{base_url}?lat={lat}&lon={lon}&dt={timestamp}&appid={Config.OPENWEATHER_API_KEY}&units=metric&lang=tr"
response = requests.get(url)
if response.status_code == 200:
gun_data = response.json()
gunluk_veriler.append({
'tarih': tarih,
'sehir': sehir,
'enlem': lat,
'boylam': lon,
'sicaklik': gun_data['current']['temp'],
'nem': gun_data['current']['humidity'],
'ruzgar_hizi': gun_data['current']['wind_speed'],
'yagis': gun_data['current'].get('rain', {}).get('1h', 0),
'basinc': gun_data['current']['pressure'],
'bulutluluk': gun_data['current']['clouds']
})
self.weather_data[sehir] = pd.DataFrame(gunluk_veriler)
print(f"✅ {sehir} hava durumu verisi çekildi")
except Exception as e:
print(f"❌ {sehir} veri çekme hatası: {e}")
def ndvi_verisi_olustur(self):
"""NDVI verisi simülasyonu (gerçek projede NASA veya Copernicus API)"""
ndvi_data = []
for sehir, (lat, lon) in Config.MARMARA_LOCATIONS.items():
for i in range(30): # Son 30 gün
tarih = datetime.now() - timedelta(days=30-i)

Mevsimsel NDVI varyasyonu

mevsim_etkisi = np.sin(2 * np.pi * tarih.timetuple().tm_yday / 365)
ndvi = 0.4 + 0.3 * mevsim_etkisi + np.random.normal(0, 0.05)
ndvi = max(0.1, min(0.9, ndvi)) # 0.1-0.9 arası sınırla
ndvi_data.append({
'tarih': tarih,
'sehir': sehir,
'enlem': lat,
'boylam': lon,
'ndvi': ndvi
})
return pd.DataFrame(ndvi_data)

🧠 MAKİNE ÖĞRENMESİ MODELİ

class RiskTahminModeli:
def __init__(self):
self.model = None
self.scaler = StandardScaler()
self.feature_importance = None
def veri_hazirla(self, hava_verisi, ndvi_verisi, hastalik_verisi):
"""Tüm verileri birleştir ve özellik mühendisliği yap"""

Verileri birleştir

merged_data = hava_verisi.merge(ndvi_verisi, on=['tarih', 'sehir', 'enlem', 'boylam'])
merged_data = merged_data.merge(hastalik_verisi, on=['tarih', 'sehir', 'enlem', 'boylam'])

Özellik mühendisliği

merged_data['yil'] = merged_data['tarih'].dt.year
merged_data['ay'] = merged_data['tarih'].dt.month
merged_data['hafta'] = merged_data['tarih'].dt.isocalendar().week
merged_data['mevsim'] = (merged_data['ay'] % 12 + 3) // 3

Hareketli ortalamalar

merged_data['sicaklik_7gun_ortalama'] = merged_data.groupby('sehir')['sicaklik'].transform(
lambda x: x.rolling(7, min_periods=1).mean()
)
merged_data['nem_7gun_ortalama'] = merged_data.groupby('sehir')['nem'].transform(
lambda x: x.rolling(7, min_periods=1).mean()
)

Risk ön göstergeleri

merged_data['yuksek_nem_risk'] = (merged_data['nem'] > 75).astype(int)
merged_data['ideal_sicaklik'] = ((merged_data['sicaklik'] >= 15) &
(merged_data['sicaklik'] <= 30)).astype(int)

return merged_data

def egit(self, X, y):
"""Modeli eğit"""

Veriyi ölçeklendir

X_scaled = self.scaler.fit_transform(X)

Random Forest modeli

self.model = RandomForestRegressor(
n_estimators=300,
max_depth=15,
min_samples_split=5,
min_samples_leaf=2,
random_state=42,
n_jobs=-1
)

Çapraz doğrulama

cv_scores = cross_val_score(self.model, X_scaled, y, cv=5, scoring='r2')
print(f"📊 Çapraz Doğrulama R² Skorları: {cv_scores}")
print(f"📊 Ortalama R²: {cv_scores.mean():.3f}")

Model eğitimi

self.model.fit(X_scaled, y)

Özellik önem dereceleri

self.feature_importance = pd.DataFrame({
'feature': X.columns,
'importance': self.model.feature_importances_
}).sort_values('importance', ascending=False)
return self
def tahmin_et(self, X):
"""Tahmin yap"""
X_scaled = self.scaler.transform(X)
return self.model.predict(X_scaled)

📈 GÖRSELLEŞTİRME SINIFI

class Gorsellestirme:
def __init__(self, data):
self.data = data
def interaktif_harita_olustur(self):
"""Interaktif risk haritası oluştur"""

Harita merkezi (Marmara bölgesi)

m = folium.Map(location=[40.5, 29.0], zoom_start=8)

Marker kümeleme

marker_cluster = MarkerCluster().add_to(m)

Renk skalası (yeşil -> kırmızı)

def risk_renk(risk):
if risk < 20: return 'green'
elif risk < 40: return 'lightgreen'
elif risk < 60: return 'orange'
elif risk < 80: return 'lightred'
else: return 'red'

Her şehir için marker ekle

for sehir in self.data['sehir'].unique():
sehir_data = self.data[self.data['sehir'] == sehir].iloc[-1] # Son veri
lat, lon = Config.MARMARA_LOCATIONS[sehir]

Popup içeriği

popup_html = f"""

{sehir}

Risk Skoru: {sehir_data['risk_skoru']:.1f}/100

Sıcaklık: {sehir_data['sicaklik']:.1f}°C

Nem: {sehir_data['nem']:.1f}%

Yağış: {sehir_data['yagis']:.1f} mm

NDVI: {sehir_data['ndvi']:.3f}

Tarih: {sehir_data['tarih'].strftime('%d.%m.%Y')}

"""
folium.Marker(
location=[lat, lon],
popup=folium.Popup(popup_html, max_width=300),
tooltip=f"{sehir} - Risk: {sehir_data['risk_skoru']:.1f}",
icon=folium.Icon(color=risk_renk(sehir_data['risk_skoru']), icon='leaf')
).add_to(marker_cluster)

HeatMap ekle

heat_data = [[row['enlem'], row['boylam'], row['risk_skoru']]
for _, row in self.data.iterrows()]
HeatMap(heat_data, radius=15, blur=10, max_zoom=1).add_to(m)

m.save('marmara_bitki_risk_haritasi.html')
print("🗺️ Interaktif harita oluşturuldu: marmara_bitki_risk_haritasi.html")
return m

def zaman_serisi_grafigi(self):
"""Zaman serisi grafiği oluştur"""
fig = make_subplots(
rows=2, cols=1,
subplot_titles=('Risk Skoru Değişimi', 'Meteorolojik Veriler'),
vertical_spacing=0.1
)

Risk skoru grafiği

for sehir in self.data['sehir'].unique():
sehir_data = self.data[self.data['sehir'] == sehir]
fig.add_trace(
go.Scatter(x=sehir_data['tarih'], y=sehir_data['risk_skoru'],
name=sehir, mode='lines+markers'),
row=1, col=1
)

Meteorolojik veriler

ornek_sehir = list(Config.MARMARA_LOCATIONS.keys())[0]
ornek_data = self.data[self.data['sehir'] == ornek_sehir]

fig.add_trace(
go.Scatter(x=ornek_data['tarih'], y=ornek_data['sicaklik'],
name='Sıcaklık (°C)', line=dict(color='red')),
row=2, col=1
)

fig.add_trace(
go.Scatter(x=ornek_data['tarih'], y=ornek_data['nem'],
name='Nem (%)', line=dict(color='blue'), yaxis='y2'),
row=2, col=1
)
fig.update_layout(
title='Marmara Bölgesi Bitki Hastalık Risk Analizi',
height=800,
showlegend=True
)
fig.write_html('zaman_serisi_analiz.html')
print("📈 Zaman serisi grafiği oluşturuldu")
return fig

🔮 TAHMİN SİSTEMİ

class TahminSistemi:
def __init__(self, model, veri_yoneticisi):
self.model = model
self.veri_yoneticisi = veri_yoneticisi
def gelecek_tahmini_yap(self, gun_sayisi=7):
"""Gelecek için tahmin yap"""

Prophet ile hava durumu tahmini

tahmin_verileri = []
for sehir in Config.MARMARA_LOCATIONS.keys():

Hava durumu tahmini (basitleştirilmiş)

son_veri = self.veri_yoneticisi.weather_data[sehir].iloc[-1]
for i in range(gun_sayisi):
tahmin_tarihi = datetime.now() + timedelta(days=i+1)

Basit tahmin modeli (gerçek projede Prophet kullanılacak)

tahmin_sicaklik = son_veri['sicaklik'] + np.random.normal(0, 2)
tahmin_nem = max(30, min(95, son_veri['nem'] + np.random.normal(0, 10)))
tahmin_yagis = max(0, son_veri['yagis'] + np.random.exponential(0.5))

Mevsimsel NDVI tahmini

mevsim_etkisi = np.sin(2 * np.pi * tahmin_tarihi.timetuple().tm_yday / 365)
tahmin_ndvi = 0.4 + 0.3 * mevsim_etkisi + np.random.normal(0, 0.03)
tahmin_verileri.append({
'tarih': tahmin_tarihi,
'sehir': sehir,
'sicaklik': tahmin_sicaklik,
'nem': tahmin_nem,
'yagis': tahmin_yagis,
'ndvi': max(0.1, min(0.9, tahmin_ndvi)),
'ruzgar_hizi': son_veri['ruzgar_hizi'],
'basinc': son_veri['basinc'],
'bulutluluk': son_veri['bulutluluk']
})
return pd.DataFrame(tahmin_verileri)

🚀 ANA UYGULAMA

class BitkiHastalikRiskAnalizi:
def __init__(self):
self.veri_yoneticisi = VeriYoneticisi()
self.model = RiskTahminModeli()
self.tahmin_sistemi = None
self.sonuclar = None

def calistir(self):
"""Tam analiz işlemini çalıştır"""
print("🌿 MARMARA BÖLGESİ BİTKİ HASTALIK RİSK ANALİZİ")
print("=" * 50)

1. VERİ TOPLAMA

print("📥 Veri toplanıyor...")
self.veri_yoneticisi.hava_durumu_verisi_cek(gun_sayisi=30)
ndvi_verisi = self.veri_yoneticisi.ndvi_verisi_olustur()

Tüm verileri birleştir

tum_veriler = []
for sehir in Config.MARMARA_LOCATIONS.keys():
if sehir in self.veri_yoneticisi.weather_data:
hava_verisi = self.veri_yoneticisi.weather_data[sehir]
sehir_ndvi = ndvi_verisi[ndvi_verisi['sehir'] == sehir]
sehir_hastalik = self.veri_yoneticisi.hastalik_verisi[
self.veri_yoneticisi.hastalik_verisi['sehir'] == sehir
]

Verileri birleştir

birlesik_veri = hava_verisi.merge(sehir_ndvi, on=['tarih', 'sehir'])
birlesik_veri = birlesik_veri.merge(sehir_hastalik, on=['tarih', 'sehir'])
tum_veriler.append(birlesik_veri)
tum_veriler = pd.concat(tum_veriler, ignore_index=True)

2. RİSK SKORU HESAPLAMA

print("🧮 Risk skorları hesaplanıyor...")
def gelismis_risk_skoru(row, bitki_turu='domates'):
"""Gelişmiş risk skoru hesaplama"""
bitki_param = Config.BITKI_TURLERI[bitki_turu]
skor = 0

Sıcaklık riski

ideal_min, ideal_max = bitki_param['ideal_sicaklik']
if ideal_min <= row['sicaklik'] <= ideal_max:
skor += 25 # İdeal aralık
elif row['sicaklik'] < ideal_min - 5 or row['sicaklik'] > ideal_max + 5:
skor += 40 # Tehlikeli sıcaklık

Nem riski

if row['nem'] > bitki_param['nem_limit']:
skor += 30 # Yüksek nem riski

Yağış riski

if row['yagis'] > 10:
skor += 20 # Aşırı yağış

Bitki sağlığı riski

if row['ndvi'] < bitki_param['ndvi_min']:
skor += 25 # Zayıf bitki örtüsü

Süreklilik riski (7 günlük ortalama)

if row.get('nem_7gun_ortalama', row['nem']) > bitki_param['nem_limit']:
skor += 15
return min(skor, 100)
tum_veriler['risk_skoru'] = tum_veriler.apply(
lambda x: gelismis_risk_skoru(x, 'domates'), axis=1
)

3. MODEL EĞİTİMİ

print("🤖 Makine öğrenmesi modeli eğitiliyor...")

Özellikler ve hedef değişken

ozellikler = ['sicaklik', 'nem', 'yagis', 'ndvi', 'ruzgar_hizi',
'basinc', 'bulutluluk', 'ay', 'mevsim']
X = tum_veriler[ozellikler]
y = tum_veriler['risk_skoru']

Model eğitimi

self.model.egit(X, y)

Tahminler

tum_veriler['tahmin_risk'] = self.model.tahmin_et(X)

4. GÖRSELLEŞTİRME

print("📊 Görselleştirmeler oluşturuluyor...")
gorsel = Gorsellestirme(tum_veriler)
gorsel.interaktif_harita_olustur()
gorsel.zaman_serisi_grafigi()

5. TAHMİN SİSTEMİ

print("🔮 Gelecek tahminleri yapılıyor...")
self.tahmin_sistemi = TahminSistemi(self.model, self.veri_yoneticisi)
gelecek_tahmin = self.tahmin_sistemi.gelecek_tahmini_yap(7)

Gelecek için risk tahmini

X_gelecek = gelecek_tahmin[ozellikler]
gelecek_tahmin['risk_tahmini'] = self.model.tahmin_et(X_gelecek)

6. RAPOR OLUŞTURMA

self.rapor_olustur(tum_veriler, gelecek_tahmin)
self.sonuclar = tum_veriler
print("✅ Analiz tamamlandı!")
return self.sonuclar
def rapor_olustur(self, tarihsel_veri, tahmin_verisi):
"""Detaylı analiz raporu oluştur"""
print("\n📋 ANALİZ RAPORU")
print("=" * 40)

Genel istatistikler

ortalama_risk = tarihsel_veri['risk_skoru'].mean()
max_risk = tarihsel_veri['risk_skoru'].max()
riskli_sehirler = tarihsel_veri.groupby('sehir')['risk_skoru'].mean().sort_values(ascending=False)
print(f"📊 Ortalama Risk Skoru: {ortalama_risk:.1f}/100")
print(f"⚠️ Maksimum Risk Skoru: {max_risk:.1f}/100")
print(f"🏙️ Şehir Bazlı Riskler:")
for sehir, risk in riskli_sehirler.items():
print(f" {sehir}: {risk:.1f}/100")

Özellik önem dereceleri

print(f"\n🔍 Özellik Önem Dereceleri:")
for _, row in self.model.feature_importance.head(5).iterrows():
print(f" {row['feature']}: {row['importance']:.3f}")

Gelecek tahmin uyarıları

yuksek_risk_tahmin = tahmin_verisi[tahmin_verisi['risk_tahmini'] > 70]
if not yuksek_risk_tahmin.empty:
print(f"\n🚨 YÜKSEK RİSK UYARILARI (Önümüzdeki 7 gün):")
for _, uyari in yuksek_risk_tahmin.iterrows():
print(f" 📅 {uyari['tarih'].strftime('%d.%m.%Y')} - {uyari['sehir']}: {uyari['risk_tahmini']:.1f}/100")

🎯 PROGRAM BAŞLATMA

if __name__ == "__main__":

Uygulamayı başlat

analiz = BitkiHastalikRiskAnalizi()
sonuclar = analiz.calistir()

Kullanıcıya bilgi

print(f"""
ANALİZ TAMAMLANDI!
Oluşturulan Dosyalar:

  • marmara_bitki_risk_haritasi.html (Interaktif harita)
  • zaman_serisi_analiz.html (Grafikler)
    KURULUM:
    pip install pandas numpy requests scikit-learn folium plotly prophet
    GERÇEK VERİ İLE KULLANIM:
  1. OpenWeatherMap'ten API anahtarı alın
  2. NASA EARTHDATA için hesap oluşturun
  3. Gerçek NDVI verisi entegre edin
  4. Tarihsel hastalık verisi ekleyin
    Bu sistem şu anda simülasyon verileriyle çalışıyor. Gerçek veri entegrasyonu için ilgili API'lerden veri çekme kısımlarını aktif etmeniz yeterli.

Yorumlar

Başa Dön