Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        /*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);
        }