private void FindIklimForValues() { ITable vatRaster = BuildRasterAttributeTable("Siniflandirma_Koppen"); ITable vatYag = BuildRasterAttributeTable("CombineYag"); ITable vatSic = BuildRasterAttributeTable("CombineSic"); AddField(vatRaster, "IKLIMTURU", "TEXT"); IQueryFilter queryFilter = new QueryFilterClass(); ICursor updateCursor = vatRaster.Search(queryFilter, false); IRow feature = null; int yagField = vatRaster.FindField("CombineYag"); int sicField = vatRaster.FindField("CombineSic"); while ((feature = updateCursor.NextRow()) != null) { IQueryFilter queryFilterSic = new QueryFilterClass(); queryFilterSic.WhereClause = "Value = " + feature.get_Value(sicField); ICursor updateCursorSic = vatSic.Search(queryFilterSic, false); IRow rowSic = updateCursorSic.NextRow(); Sicaklik sicaklik = new Sicaklik(); sicaklik.YilOrtSic = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("YilOrtSic"))); sicaklik.AySicOca = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicOca"))); sicaklik.AySicSub = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicSub"))); sicaklik.AySicMar = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicMar"))); sicaklik.AySicNis = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicNis"))); sicaklik.AySicMay = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicMay"))); sicaklik.AySicHaz = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicHaz"))); sicaklik.AySicTem = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicTem"))); sicaklik.AySicAgu = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicAgu"))); sicaklik.AySicEyl = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicEyl"))); sicaklik.AySicEki = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicEki"))); sicaklik.AySicKas = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicKas"))); sicaklik.AySicAra = Convert.ToDouble(rowSic.get_Value(rowSic.Fields.FindField("AySicAra"))); IQueryFilter queryFilterYag = new QueryFilterClass(); queryFilterYag.WhereClause = "Value = " + feature.get_Value(yagField); ICursor updateCursorYag = vatYag.Search(queryFilterYag, false); IRow rowYag = updateCursorYag.NextRow(); Yagis yagis = new Yagis(); yagis.YilTopYag = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("YilTopYag"))); yagis.AyYagOca = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagOca"))); yagis.AyYagSub = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagSub"))); yagis.AyYagMar = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagMar"))); yagis.AyYagNis = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagNis"))); yagis.AyYagMay = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagMay"))); yagis.AyYagHaz = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagHaz"))); yagis.AyYagTem = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagTem"))); yagis.AyYagAgu = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagAgu"))); yagis.AyYagEyl = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagEyl"))); yagis.AyYagEki = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagEki"))); yagis.AyYagKas = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagKas"))); yagis.AyYagAra = Convert.ToDouble(rowYag.get_Value(rowYag.Fields.FindField("AyYagAra"))); var yazYagis = yagis.AyYagNis + yagis.AyYagMay + yagis.AyYagHaz + yagis.AyYagTem + yagis.AyYagAgu + yagis.AyYagEyl; var kisYagis = yagis.AyYagEki + yagis.AyYagKas + yagis.AyYagAra + yagis.AyYagOca + yagis.AyYagSub + yagis.AyYagMar; var topYagis = yazYagis + kisYagis; var T = sicaklik.YilOrtSic; List <double> sicaklikListesi = new List <double>(); sicaklikListesi.Add(sicaklik.AySicOca); sicaklikListesi.Add(sicaklik.AySicSub); sicaklikListesi.Add(sicaklik.AySicMar); sicaklikListesi.Add(sicaklik.AySicNis); sicaklikListesi.Add(sicaklik.AySicMay); sicaklikListesi.Add(sicaklik.AySicHaz); sicaklikListesi.Add(sicaklik.AySicTem); sicaklikListesi.Add(sicaklik.AySicAgu); sicaklikListesi.Add(sicaklik.AySicEyl); sicaklikListesi.Add(sicaklik.AySicEki); sicaklikListesi.Add(sicaklik.AySicKas); sicaklikListesi.Add(sicaklik.AySicAra); sicaklikListesi.Sort(); double TSoguk = sicaklikListesi[0]; double TSicak = sicaklikListesi[sicaklikListesi.Count - 1]; var P = yagis.YilTopYag; double r = 0.0; List <double> yazYagisList = new List <double>(); List <double> kisYagisList = new List <double>(); kisYagisList.Add(yagis.AyYagEki); kisYagisList.Add(yagis.AyYagKas); kisYagisList.Add(yagis.AyYagAra); kisYagisList.Add(yagis.AyYagOca); kisYagisList.Add(yagis.AyYagSub); kisYagisList.Add(yagis.AyYagMar); yazYagisList.Add(yagis.AyYagNis); yazYagisList.Add(yagis.AyYagMay); yazYagisList.Add(yagis.AyYagHaz); yazYagisList.Add(yagis.AyYagTem); yazYagisList.Add(yagis.AyYagAgu); yazYagisList.Add(yagis.AyYagEyl); kisYagisList.Sort(); yazYagisList.Sort(); List <double> Pm = new List <double>(); Pm.AddRange(kisYagisList); Pm.AddRange(yazYagisList); Pm.Sort(); var carpan = 10000; var PsMin = yazYagisList[0]; var PsMax = yazYagisList[yazYagisList.Count - 1]; var PwMin = kisYagisList[0]; var PwMax = kisYagisList[kisYagisList.Count - 1]; if (kisYagis > topYagis * 0.7) { r = 20 * T; } else if (yazYagis > topYagis * 0.7) { r = 20 * T + 280 * carpan; } else { r = 20 * T + 140 * carpan; } string IklimTuru = string.Empty; if (TSicak >= 10 * carpan) { if (TSoguk >= 18 * carpan) { if (Pm[0] > 60 * carpan) { IklimTuru = "Af"; } else if (Pm[0] < 60 * carpan) { if (Pm[0] > (100 * carpan) - (P / 25)) { IklimTuru = "Am"; } else if (Pm[0] < (100 * carpan) - (P / 25)) { IklimTuru = "Aw"; } } } else if (TSoguk < 18 * carpan) { if (P < r) { if ((P >= r / 2) && (r > P)) { if (T >= 18 * carpan) { IklimTuru = "BSh"; } else if (T < 18 * carpan) { IklimTuru = "BSk"; } } else if (P < r / 2) { if (T >= 18 * carpan) { IklimTuru = "BWh"; } else if (T < 18 * carpan) { IklimTuru = "BWk"; } } } else if (P >= r) { if ((TSoguk > -3 * carpan) && (TSoguk < 18 * carpan)) { if ((PsMin < PwMin) && (PwMax > 3 * PsMin) && (PsMin < 40 * carpan)) { if (TSicak >= 22 * carpan) { IklimTuru = "Csa"; } else if (TSicak < 22 * carpan) { if ((sicaklikListesi[11] > 10 * carpan) && (sicaklikListesi[10] > 10 * carpan) && (sicaklikListesi[9] > 10 * carpan) && (sicaklikListesi[8] > 10 * carpan)) { IklimTuru = "Csb"; } else { IklimTuru = "Csc"; } } } else if ((PsMin > PwMin) && (PsMax > 10 * PwMin)) { if (TSicak >= 22 * carpan) { IklimTuru = "Cwa"; } else if (TSicak < 22 * carpan) { if ((sicaklikListesi[11] > 10 * carpan) && (sicaklikListesi[10] > 10 * carpan) && (sicaklikListesi[9] > 10 * carpan) && (sicaklikListesi[8] > 10 * carpan)) { IklimTuru = "Cwb"; } else { IklimTuru = "Cwc"; } } } else { if (TSicak >= 22 * carpan) { IklimTuru = "Cfa"; } else if (TSicak < 22 * carpan) { if ((sicaklikListesi[11] > 10 * carpan) && (sicaklikListesi[10] > 10 * carpan) && (sicaklikListesi[9] > 10 * carpan) && (sicaklikListesi[8] > 10 * carpan)) { IklimTuru = "Cfb"; } else { IklimTuru = "Cfc"; } } } } else if (TSoguk <= -3 * carpan) { if ((PsMin < PwMin) && (PwMax > 3 * PsMin) && (PsMin < 40 * carpan)) { if (TSicak >= 22 * carpan) { IklimTuru = "Dsa"; } else if (TSicak < 22 * carpan) { if ((sicaklikListesi[11] > 10 * carpan) && (sicaklikListesi[10] > 10 * carpan) && (sicaklikListesi[9] > 10 * carpan) && (sicaklikListesi[8] > 10 * carpan)) { IklimTuru = "Dsb"; } else { if (TSoguk >= -38 * carpan) { IklimTuru = "Dsc"; } else if (TSoguk < -38 * carpan) { IklimTuru = "Dsd"; } } } } else if ((PsMin > PwMin) && (PsMax > 10 * PwMin)) { if (TSicak >= 22 * carpan) { IklimTuru = "Dwa"; } else if (TSicak < 22 * carpan) { if ((sicaklikListesi[11] > 10 * carpan) && (sicaklikListesi[10] > 10 * carpan) && (sicaklikListesi[9] > 10 * carpan) && (sicaklikListesi[8] > 10 * carpan)) { IklimTuru = "Dwb"; } else { if (TSoguk >= -38 * carpan) { IklimTuru = "Dwc"; } else if (TSoguk < -38 * carpan) { IklimTuru = "Dwd"; } } } } else { if (TSicak >= 22 * carpan) { IklimTuru = "Dfa"; } else if (TSicak < 22 * carpan) { if ((sicaklikListesi[11] > 10 * carpan) && (sicaklikListesi[10] > 10 * carpan) && (sicaklikListesi[9] > 10 * carpan) && (sicaklikListesi[8] > 10 * carpan)) { IklimTuru = "Dfb"; } else { if (TSoguk >= -38 * carpan) { IklimTuru = "Dfc"; } else if (TSoguk < -38 * carpan) { IklimTuru = "Dfd"; } } } } } } } } else if (TSicak < 10 * carpan) { if (TSicak > 0) { IklimTuru = "ET"; } else if (TSicak <= 0) { IklimTuru = "EF"; } } feature.set_Value(feature.Fields.FindField("IKLIMTURU"), IklimTuru); feature.Store(); } }
/*Sıcaklık Hesaplama*/ public List <Sicaklik> hesapla(double x) { List <Sicaklik> Sicaklik = new List <Sicaklik>(); Sicaklik nesne = new Sicaklik(); double derece = 0; i = 0; /* çok düşük sıcaklık*/ if (0 <= x && x <= 20) { if (0 <= x && x <= 10) { derece = 1; } if (10 < x && x <= 20) { derece = (20 - x) / 10; } i++; nesne.Uyelik = "Çok Düşük"; nesne.Derece = derece; Sicaklik.Add(nesne); } /* düşük sıcaklık*/ if (15 <= x && x <= 40) { nesne = new Sicaklik(); if (15 <= x && x < 27.5) { derece = (x - 15) / 12.5; } if (27.5 <= x && x <= 40) { derece = (40 - x) / 12.5; } i++; nesne.Uyelik = "Düşük"; nesne.Derece = derece; Sicaklik.Add(nesne); } /* orta sıcaklık*/ if (35 <= x && x <= 60) { nesne = new Sicaklik(); if (35 <= x && x < 47.5) { derece = (x - 35) / 12.5; } if (47.5 <= x && x <= 60) { derece = (60 - x) / 12.5; } i++; nesne.Uyelik = "Orta"; nesne.Derece = derece; Sicaklik.Add(nesne); } /* yüksek sıcaklık*/ if (55 <= x && x <= 80) { nesne = new Sicaklik(); if (55 <= x && x < 67.5) { derece = (x - 55) / 12.5; } if (67.5 <= x && x <= 80) { derece = (80 - x) / 12.5; } i++; nesne.Uyelik = "Yüksek"; nesne.Derece = derece; Sicaklik.Add(nesne); } /* çok yüksek sıcaklık*/ if (75 <= x && x <= 100) { nesne = new Sicaklik(); if (75 <= x && x < 87.5) { derece = (x - 75) / 12.5; } if (87.5 <= x && x <= 100) { derece = (100 - x) / 12.5; } i++; nesne.Uyelik = "Çok Yüksek"; nesne.Derece = derece; Sicaklik.Add(nesne); } return(Sicaklik); }