Ejemplo n.º 1
0
        private void btnCalistir_Click(object sender, EventArgs e)
        {
            if (cmbIklimEkoloji.SelectedIndex < 0)
            {
                MessageBox.Show("İklim-Ekoloji katmanı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbProjectArea.SelectedIndex < 0)
            {
                MessageBox.Show("Proje sınırı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbKadastro.SelectedIndex < 0)
            {
                MessageBox.Show("Kadastro katmanı belirlenmeden işlem yapılamaz.");
                return;
            }
            AppSingleton.Instance().CreateWorkspacePath();
            if (AppSingleton.Instance().SettingsControl == null)
            {
                SettingsControl control = new SettingsControl();
                control.Load();
                control.CheckForm();
            }
            tpSonuc.Visible    = true;
            tpSonuc.CustomText = "İklim Katmanı kesiliyor...";
            tpSonuc.Maximum    = 5;

            tpSonuc.VisualMode = ProgressBarDisplayMode.TextAndPercentage;
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();
            var iklimClipLayer = AppSingleton.Instance().RasterClipLayer((cmbIklimEkoloji.SelectedItem as LayerObject).layer, ((cmbProjectArea.SelectedItem as LayerObject).layer as IFeatureLayer), "RC_IKLIM");

            tpSonuc.CustomText = "Poligona dönüştürülüyor...";
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();

            var fClass = RasterToPolygon(iklimClipLayer);

            JoinField(fClass, "gridcode", iklimClipLayer, "Value");
            tpSonuc.CustomText = "Kadastro Katmanı kesiliyor...";
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();

            var clipLayer = AppSingleton.Instance().ClipLayers((cmbProjectArea.SelectedItem as LayerObject).layer, (cmbKadastro.SelectedItem as LayerObject).layer);

            tpSonuc.CustomText = "Katmanlar kesiştiriliyor...";
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();

            InterSect(fClass, clipLayer);
            tpSonuc.CustomText = "İşlem tamamlandı...";
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();
            (this.Parent as Form).Close();
        }
Ejemplo n.º 2
0
        private void btnCalistir_Click(object sender, EventArgs e)
        {
            if (cmbEkolojikSitAlani.SelectedIndex < 0)
            {
                MessageBox.Show("Ekolojik Sit Alanı katmanı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbProjectArea.SelectedIndex < 0)
            {
                MessageBox.Show("Proje sınırı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbIklimSiniri.SelectedIndex < 0)
            {
                MessageBox.Show("İklim Sınırı katmanı belirlenmeden işlem yapılamaz.");
                return;
            }
            AppSingleton.Instance().CreateWorkspacePath();
            if (AppSingleton.Instance().SettingsControl == null)
            {
                SettingsControl control = new SettingsControl();
                control.Load();
                control.CheckForm();
            }
            tpSonuc.Visible    = true;
            tpSonuc.VisualMode = ProgressBarDisplayMode.TextAndPercentage;
            tpSonuc.CustomText = "İklim Katmanı kesiliyor...";
            tpSonuc.Maximum    = 5;
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();
            var iklimClipLayer = AppSingleton.Instance().RasterClipLayer((cmbIklimSiniri.SelectedItem as LayerObject).layer, ((cmbProjectArea.SelectedItem as LayerObject).layer as IFeatureLayer), "RC_IKL");

            tpSonuc.CustomText = "Ekoloji Katmanı kesiliyor...";
            tpSonuc.PerformStep();
            var ekolojiClipLayer = AppSingleton.Instance().RasterClipLayer((cmbEkolojikSitAlani.SelectedItem as LayerObject).layer, ((cmbProjectArea.SelectedItem as LayerObject).layer as IFeatureLayer), "RC_EKO");
            var vatIklim         = AppSingleton.Instance().BuildRasterAttributeTable("RC_IKL");
            var vatEko           = AppSingleton.Instance().BuildRasterAttributeTable("RC_EKO");

            var layerNames = iklimClipLayer + ";" + ekolojiClipLayer;

            tpSonuc.CustomText = "Katmanlar birleştiriliyor...";
            tpSonuc.PerformStep();
            AppSingleton.Instance().Combine(layerNames, "IKL_EKO");
            var vatIklEko = AppSingleton.Instance().BuildRasterAttributeTable("IKL_EKO");

            tpSonuc.CustomText = "Eksik kolonlar ekleniyor...";
            tpSonuc.PerformStep();
            JoinField(vatIklEko, "RC_IKL", vatIklim, "Value");
            JoinField(vatIklEko, "RC_EKO", vatEko, "Value");
            tpSonuc.CustomText = "İşlem tamamlandı...";
            tpSonuc.PerformStep();
            (this.Parent as Form).Close();
        }
Ejemplo n.º 3
0
        private void host_WizardCompleted()
        {
            AppSingleton.Instance().CreateWorkspacePath();

            if (AppSingleton.Instance().SettingsControl == null)
            {
                SettingsControl control = new SettingsControl();
                control.Load();
                control.CheckForm();
            }

            lastControl.SetRichTextBoxLabel("Veriler çalışma alanı sınırlarına göre kesiliyor...");
            foreach (var item in AppSingleton.Instance().allLayers)
            {
                if (!ClipLayers(item.layer))
                {
                    MessageBox.Show("Hata Kodu :1103 . Lütfen yöneticiniz ile görüşünüz.");
                    return;
                }
            }
            lastControl.SetRichTextBoxLabel("İşlem tamamlandı...");

            foreach (var item in AppSingleton.Instance().PolygonLayerList)
            {
                FieldLayerObject fieldLayerObject = GetFieldLayerObject(item.layer.Name);
                if (fieldLayerObject == null)
                {
                    MessageBox.Show("Hata Kodu :1110 . Lütfen yöneticiniz ile görüşünüz.");
                    return;
                }

                lastControl.SetRichTextBoxLabel(item.layer.Name + " katmanı için raster dönüşüm yapılıyor...");
                if (!PolygonToRaster(item.layer, "Clip_", fieldLayerObject.FieldName, ""))
                {
                    MessageBox.Show("Hata Kodu :1111 . Lütfen yöneticiniz ile görüşünüz.");
                    return;
                }
                lastControl.SetRichTextBoxLabel("İşlem tamamlandı...");
                Dictionary <string, string> myDict = fieldLayerObject.FieldList;
                string reclassifyList = "";
                foreach (var pair in myDict)
                {
                    var key = pair.Key;
                    if (key.Contains(" "))
                    {
                        key = "'" + key + "'";
                    }
                    if (reclassifyList == "")
                    {
                        reclassifyList = key + " " + pair.Value + ";";
                    }
                    else
                    {
                        reclassifyList = reclassifyList + key + " " + pair.Value + ";";
                    }
                }
                reclassifyList = reclassifyList + "NODATA " + AppSingleton.Instance().NodataValue;

                lastControl.SetRichTextBoxLabel(item.layer.Name + " katmanı yeniden sınıflandırılıyor...");

                IFeatureClass fclass = (AppSingleton.Instance().PersonalWorkspace as IFeatureWorkspace).OpenFeatureClass("Poly_Raster_" + item.layer.Name);

                Type factoryType = Type.GetTypeFromProgID(
                    "esriDataSourcesGDB.AccessWorkspaceFactory");

                IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance
                                                         (factoryType);

                IRasterWorkspaceEx rasterWorkspaceEx = workspaceFactory.OpenFromFile(AppSingleton.Instance().WorkspacePath, 0) as IRasterWorkspaceEx;

                //IRasterWorkspace rasterWorkspace = AppSingleton.Instance().PersonalWorkspace as IRasterWorkspace;
                IRasterDataset      rasterDataset = rasterWorkspaceEx.OpenRasterDataset("Poly_Raster_" + item.layer.Name);
                IRasterDatasetEdit2 raster        = (IRasterDatasetEdit2)rasterDataset;

                ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset = (ESRI.ArcGIS.Geodatabase.IGeoDataset)rasterDataset;
                raster.BuildAttributeTable();
                ITable vat = (raster as IRasterBandCollection).Item(0).AttributeTable;

                //Check if field Exists
                var check = false;
                for (int j = 0; j < vat.Fields.FieldCount; j++)
                {
                    IField field = vat.Fields.get_Field(j);
                    if (field.Name == fieldLayerObject.FieldName)
                    {
                        check = true;
                    }
                }

                if (!check)
                {
                    lastControl.SetRichTextBoxLabel("Eksik kolonlar ekleniyor...");
                    if (!JoinField(vat, "Value", item.layer.Name, fieldLayerObject.FieldName, fieldLayerObject.FieldName))
                    {
                        MessageBox.Show("Hata Kodu :5614 . Lütfen yöneticiniz ile görüşünüz.");
                        return;
                    }
                }

                string returnStr = SetFieldToValue(vat, fieldLayerObject.FieldName);
                bool   aragecis  = true;
                if (!Reclassify(item.layer, "Value", returnStr, "Poly_Raster_", "TempReclass_"))
                {
                    aragecis = false;
                }

                if (aragecis == true)
                {
                    if (!Reclassify(item.layer, "Value", reclassifyList, "TempReclass_", "Reclassified_"))
                    {
                        MessageBox.Show("Hata Kodu :1112 . Lütfen yöneticiniz ile görüşünüz.");
                        return;
                    }
                }
                else
                {
                    if (!Reclassify(item.layer, fieldLayerObject.FieldName, reclassifyList, "Poly_Raster_", "Reclassified_"))
                    {
                        MessageBox.Show("Hata Kodu :1112 . Lütfen yöneticiniz ile görüşünüz.");
                        return;
                    }
                }

                IRasterDataset      reclassedDataset = rasterWorkspaceEx.OpenRasterDataset("Reclassified_" + item.layer.Name);
                IRasterDatasetEdit2 reclassed        = (IRasterDatasetEdit2)reclassedDataset;

                ESRI.ArcGIS.Geodatabase.IGeoDataset reclassedGeoDataset = (ESRI.ArcGIS.Geodatabase.IGeoDataset)reclassedDataset;
                reclassed.BuildAttributeTable();

                ITable vatReclass = (reclassed as IRasterBandCollection).Item(0).AttributeTable;

                //Check if field Exists
                var checkReclass = false;
                for (int j = 0; j < vatReclass.Fields.FieldCount; j++)
                {
                    IField field = vatReclass.Fields.get_Field(j);
                    if (field.Name == fieldLayerObject.FieldName)
                    {
                        checkReclass = true;
                    }
                }

                if (!checkReclass)
                {
                    if (!JoinField(vatReclass, "Value", item.layer.Name, fieldLayerObject.FieldName, fieldLayerObject.FieldName))
                    {
                        MessageBox.Show("Hata Kodu :5614 . Lütfen yöneticiniz ile görüşünüz.");
                        return;
                    }
                }

                lastControl.SetRichTextBoxLabel("İşlem tamamlandı...");
            }
            string rasterString = string.Empty;

            foreach (var item in reclassList)
            {
                if (rasterString == string.Empty)
                {
                    rasterString = item;
                }
                else
                {
                    rasterString = rasterString + ";" + item;
                }
            }
            foreach (var item in AppSingleton.Instance().RasterLayerList)
            {
                if (rasterString == string.Empty)
                {
                    rasterString = item.Name;
                }
                else
                {
                    rasterString = rasterString + ";" + item.Name;
                }
            }
            lastControl.SetRichTextBoxLabel("Tüm raster katmanlar birleştiriliyor...");
            if (!Combine(rasterString))
            {
                MessageBox.Show("Hata Kodu :2639. Lütfen yöneticiniz ile görüşünüz.");
                return;
            }

            //Combine işlemleri

            Type factoryType2 = Type.GetTypeFromProgID(
                "esriDataSourcesGDB.AccessWorkspaceFactory");

            IWorkspaceFactory workspaceFactory2 = (IWorkspaceFactory)Activator.CreateInstance
                                                      (factoryType2);

            IRasterWorkspaceEx rasterWorkspaceEx2 = workspaceFactory2.OpenFromFile(AppSingleton.Instance().WorkspacePath, 0) as IRasterWorkspaceEx;

            //IRasterWorkspace rasterWorkspace = PersonalWorkspace as IRasterWorkspace;
            IRasterDataset      rasterDataset2 = rasterWorkspaceEx2.OpenRasterDataset("Ekolojik_Sit_Alani");
            IRasterDatasetEdit2 raster2        = (IRasterDatasetEdit2)rasterDataset2;

            ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset2 = (ESRI.ArcGIS.Geodatabase.IGeoDataset)rasterDataset2;
            raster2.BuildAttributeTable();
            ITable vat2 = (raster2 as IRasterBandCollection).Item(0).AttributeTable;

            List <string> fieldList = new List <string>();

            for (int j = 0; j < vat2.Fields.FieldCount; j++)
            {
                IField field = vat2.Fields.get_Field(j);
                if (field.Name.ToUpper() != "OID" && field.Name.ToUpper() != "VALUE" && field.Name.ToUpper() != "COUNT")
                {
                    fieldList.Add(field.Name);
                }
            }

            lastControl.SetRichTextBoxLabel("Final katmanında eksik kolonlar tanımlanıyor...");

            for (int i = 0; i < AppSingleton.Instance().PolygonLayerList.Count; i++)
            {
                var item = AppSingleton.Instance().PolygonLayerList[i];
                FieldLayerObject fieldLayerObject = GetFieldLayerObject(item.layer.Name);
                var reclassifiedlayername         = AppSingleton.Instance().WorkspacePath + "\\Reclassified_" + item.layer.Name;
                if (!JoinField(vat2, fieldList[i], reclassifiedlayername, "Value", fieldLayerObject.FieldName))
                {
                    MessageBox.Show("Hata Kodu :5614 . Lütfen yöneticiniz ile görüşünüz.");
                    return;
                }
            }

            //foreach (var item in reclassList)
            //{
            //    IFeatureClass fclass = (AppSingleton.Instance().PersonalWorkspace as IFeatureWorkspace).OpenFeatureClass(item);

            //    Type factoryType = Type.GetTypeFromProgID(
            //    "esriDataSourcesGDB.AccessWorkspaceFactory");
            //    string guid = Guid.NewGuid().ToString();
            //    IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance
            //        (factoryType);

            //    IRasterWorkspaceEx rasterWorkspaceEx = workspaceFactory.OpenFromFile(AppSingleton.Instance().WorkspacePath, 0) as IRasterWorkspaceEx;

            //    //IRasterWorkspace rasterWorkspace = AppSingleton.Instance().PersonalWorkspace as IRasterWorkspace;
            //    IRasterDataset rasterDataset = rasterWorkspaceEx.OpenRasterDataset(item);
            //    IRasterDatasetEdit2 raster = (IRasterDatasetEdit2)rasterDataset;

            //    ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset = (ESRI.ArcGIS.Geodatabase.IGeoDataset)rasterDataset;
            //    raster.BuildAttributeTable();
            //    ITable vat = (raster as IRasterBandCollection).Item(0).AttributeTable;
            //    //IFeatureClass fclass= (AppSingleton.Instance().PersonalWorkspace as IFeatureWorkspace).OpenFeatureClass(item);
            //    List<double> valueList = GetUniques(vat as ITable, "Value");
            //    double max = FindMaxValue(valueList);
            //    double min = FindMinValue(valueList);
            //    IFeatureLayer fLayer = new FeatureLayerClass();
            //    fLayer.Name = item;
            //    fLayer.FeatureClass = fclass;
            //    lastControl.SetRichTextBoxLabel("Öznitelik ekleniyor...");
            //    AddField(fLayer, "Normal", "");
            //    lastControl.SetRichTextBoxLabel("İşlem tamamlandı...");
            //    lastControl.SetRichTextBoxLabel("Normalleştirme işlemi yapılıyor...");
            //    foreach (var myLayer in AppSingleton.Instance().AllLayersDict)
            //    {
            //        string layerName = myLayer.Key;
            //        if ("Reclassified_" + layerName == item)
            //        {
            //            LayerType lType = myLayer.Value;
            //            switch (lType.Metod)
            //            {
            //                case "x/Maks":
            //                    SetFirstNormal(vat, max);
            //                    break;
            //                case "1-(x/Maks)":
            //                    SetSecondNormal(vat, max);
            //                    break;
            //                case "(x-Min)/(Maks-Min)":
            //                    SetThirdNormal(vat, max, min);
            //                    break;
            //                case "(Maks-x)/(Maks-Min)":
            //                    SetFourthNormal(vat, max, min);
            //                    break;
            //                default:
            //                    Console.WriteLine("Invalid selection. Please select 1, 2, or 3.");
            //                    break;
            //            }

            //        }

            //    }
            //    lastControl.SetRichTextBoxLabel("İşlem tamamlandı...");
            //}

            lastControl.SetRichTextBoxLabel("İşlem tamamlandı...");
            //this.Dispose();
            //MessageBox.Show("Done!"); //obviously you'd do something else in a real app...
        }
Ejemplo n.º 4
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (cmbVeriSeti.SelectedIndex < 0)
            {
                MessageBox.Show("Uygulama katmanı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbCalismaAlani.SelectedIndex < 0)
            {
                MessageBox.Show("Proje sınırı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbOrtSic.SelectedIndex < 0)
            {
                MessageBox.Show("Yıllık Ortalama Sıcaklık değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbOrtYag.SelectedIndex < 0)
            {
                MessageBox.Show("Yıllık Toplam Yağış değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            AppSingleton.Instance().CreateWorkspacePath();
            if (AppSingleton.Instance().SettingsControl == null)
            {
                SettingsControl control = new SettingsControl();
                control.Load();
                control.CheckForm();
            }
            tpSonuc.Visible    = true;
            tpSonuc.VisualMode = ProgressBarDisplayMode.TextAndPercentage;
            tpSonuc.CustomText = "Uygulama Katmanı kesiliyor...";
            tpSonuc.Maximum    = 19;
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();
            var clipLayer = AppSingleton.Instance().ClipLayers((cmbCalismaAlani.SelectedItem as LayerObject).layer, (cmbVeriSeti.SelectedItem as LayerObject).layer);

            tpSonuc.CustomText = "Yağış katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var yagisLayer = AppSingleton.Instance().IDW(clipLayer, cmbOrtYag.SelectedItem.ToString(), "yagisLayer");

            tpSonuc.CustomText = "Sıcaklık katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var sicaklikLayer = AppSingleton.Instance().IDW(clipLayer, cmbOrtSic.SelectedItem.ToString(), "sicaklikLayer");

            tpSonuc.CustomText = "Siniflandirma_Erinc katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var sonucRaster = Divide(yagisLayer, sicaklikLayer);

            Int(sonucRaster, "Siniflandirma_Erinc");
            var vat = AppSingleton.Instance().BuildRasterAttributeTable("Siniflandirma_Erinc");

            tpSonuc.CustomText = "Veriler ekleniyor...";
            tpSonuc.PerformStep();
            AppSingleton.Instance().AddField(vat, "IKLIMTIPI", "TEXT");
            IQueryFilter queryFilter  = new QueryFilterClass();
            ICursor      updateCursor = vat.Search(queryFilter, false);
            IRow         feature      = null;
            int          idmField     = vat.FindField("VALUE");
            int          ozellikField = vat.FindField("IKLIMTIPI");

            while ((feature = updateCursor.NextRow()) != null)
            {
                var ozellik = string.Empty;
                var Ieye    = Convert.ToInt32(feature.get_Value(idmField));
                if (Ieye < 8)
                {
                    ozellik = "Tam Kurak";
                }
                else if (8 <= Ieye & Ieye < 15)
                {
                    ozellik = "Kurak";
                }
                else if (15 <= Ieye & Ieye < 23)
                {
                    ozellik = "Yarı Kurak";
                }
                else if (23 <= Ieye & Ieye < 40)
                {
                    ozellik = "Yarı Nemli";
                }
                else if (40 <= Ieye & Ieye < 55)
                {
                    ozellik = "Nemli";
                }
                else
                {
                    ozellik = "Çok Nemli";
                }
                feature.set_Value(ozellikField, ozellik);
                feature.Store();
            }
            tpSonuc.CustomText = "İşlem tamamlandı...";
            tpSonuc.PerformStep();
            (this.Parent as Form).Close();
        }
Ejemplo n.º 5
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            AppSingleton.Instance().CreateWorkspacePath();
            if (AppSingleton.Instance().SettingsControl == null)
            {
                SettingsControl control = new SettingsControl();
                control.Load();
                control.CheckForm();
            }

            if (cmbProjectArea.SelectedIndex < 0)
            {
                MessageBox.Show("Proje sınırı belirlenmeden işlem yapılamaz.");
                return;
            }

            if (rbYillik.Checked)
            {
                if (cmbVeriYillik.SelectedIndex < 0)
                {
                    MessageBox.Show("Uygulama katmanı belirlenmeden işlem yapılamaz.");
                    return;
                }

                if (cmbOrtalamaSicaklikYillik.SelectedIndex < 0)
                {
                    MessageBox.Show("Yıllık Ortalama Sıcaklık değeri belirlenmeden işlem yapılamaz.");
                    return;
                }
                if (cmbToplamYagisYillik.SelectedIndex < 0)
                {
                    MessageBox.Show("Yıllık Toplam Yağış değeri belirlenmeden işlem yapılamaz.");
                    return;
                }
                tpSonuc.Visible    = true;
                tpSonuc.VisualMode = ProgressBarDisplayMode.TextAndPercentage;
                tpSonuc.CustomText = "Uygulama Katmanı kesiliyor...";
                tpSonuc.Maximum    = 8;
                tpSonuc.Step       = 1;
                tpSonuc.PerformStep();

                var clipLayer = AppSingleton.Instance().ClipLayers((cmbProjectArea.SelectedItem as LayerObject).layer, (cmbVeriYillik.SelectedItem as LayerObject).layer);
                tpSonuc.CustomText = "T Katmanı oluşturuluyor...";
                tpSonuc.PerformStep();
                var IDWT = IDW(clipLayer, cmbOrtalamaSicaklikYillik.SelectedItem.ToString(), "IDWT");
                tpSonuc.CustomText = "T Katmanı tamsayıya çevriliyor...";
                tpSonuc.PerformStep();
                var T = Int(IDWT, "T");
                tpSonuc.CustomText = "P Katmanı oluşturuluyor...";
                tpSonuc.PerformStep();
                var IDWP = IDW(clipLayer, cmbToplamYagisYillik.SelectedItem.ToString(), "IDWP");
                tpSonuc.CustomText = "P Katmanı tamsayıya çevriliyor...";
                tpSonuc.PerformStep();
                var P = Int(IDWP, "P");
                tpSonuc.CustomText = "IDM Katmanı oluşturuluyor...";
                tpSonuc.PerformStep();
                var idm = RasterCalculatorYillik(P, T, "IDM");
                tpSonuc.CustomText = "Veriler ekleniyor...";
                tpSonuc.PerformStep();
                ITable vatYillik = BuildRasterAttributeTable("IDM");
                AddField(vatYillik, "OZELLIK", "TEXT");
                IQueryFilter queryFilter  = new QueryFilterClass();
                ICursor      updateCursor = vatYillik.Search(queryFilter, false);
                IRow         feature      = null;
                int          idmField     = vatYillik.FindField("VALUE");
                int          ozellikField = vatYillik.FindField("OZELLIK");
                while ((feature = updateCursor.NextRow()) != null)
                {
                    string ozellik = string.Empty;
                    double idmVal  = Convert.ToDouble(feature.get_Value(idmField));
                    if (idmVal < 5)
                    {
                        ozellik = "Kurak";
                    }
                    else if (idmVal >= 5 && idmVal < 10)
                    {
                        ozellik = "Yarı Kurak";
                    }
                    else if (idmVal >= 10 && idmVal < 20)
                    {
                        ozellik = "Yarı Kurak - Nemli Arası";
                    }
                    else if (idmVal >= 20 && idmVal < 30)
                    {
                        ozellik = "Yarı Nemli";
                    }
                    else if (idmVal >= 30 && idmVal < 60)
                    {
                        ozellik = "Nemli";
                    }
                    else
                    {
                        ozellik = "Çok Nemli";
                    }
                    feature.set_Value(ozellikField, ozellik);
                    feature.Store();
                }
                tpSonuc.CustomText = "İşlem tamamlandı...";
                tpSonuc.PerformStep();
                (this.Parent as Form).Close();
            }
            else
            {
                if (cmbVeriAylik.SelectedIndex < 0)
                {
                    MessageBox.Show("Uygulama katmanı belirlenmeden işlem yapılamaz.");
                    return;
                }

                if (cmbOrtalamaSicaklikAylik.SelectedIndex < 0)
                {
                    MessageBox.Show("Aylık Ortalama Sıcaklık değeri belirlenmeden işlem yapılamaz.");
                    return;
                }
                if (cmbToplamYagisAylik.SelectedIndex < 0)
                {
                    MessageBox.Show("Aylık Toplam Yağış değeri belirlenmeden işlem yapılamaz.");
                    return;
                }
                tpSonuc.Visible    = true;
                tpSonuc.VisualMode = ProgressBarDisplayMode.TextAndPercentage;
                tpSonuc.CustomText = "Uygulama Katmanı kesiliyor...";
                tpSonuc.Maximum    = 8;
                tpSonuc.Step       = 1;
                tpSonuc.PerformStep();
                var clipLayer = AppSingleton.Instance().ClipLayers((cmbProjectArea.SelectedItem as LayerObject).layer, (cmbVeriAylik.SelectedItem as LayerObject).layer);
                tpSonuc.CustomText = "T Katmanı oluşturuluyor...";
                tpSonuc.PerformStep();

                var IDWT = IDW(clipLayer, cmbOrtalamaSicaklikAylik.SelectedItem.ToString(), "IDWT");
                tpSonuc.CustomText = "T Katmanı tamsayıya çevriliyor...";
                tpSonuc.PerformStep();
                var T = Int(IDWT, "T");
                tpSonuc.CustomText = "P Katmanı oluşturuluyor...";
                tpSonuc.PerformStep();
                var IDWP = IDW(clipLayer, cmbToplamYagisAylik.SelectedItem.ToString(), "IDWP");
                tpSonuc.CustomText = "P Katmanı tamsayıya çevriliyor...";
                tpSonuc.PerformStep();
                var P = Int(IDWP, "P");
                tpSonuc.CustomText = "IDM Katmanı oluşturuluyor...";
                tpSonuc.PerformStep();
                var idm = RasterCalculatorAylik(P, T, "Siniflandirma_DeMArtonne");
                tpSonuc.CustomText = "Veriler ekleniyor...";
                tpSonuc.PerformStep();
                ITable vatAylik = BuildRasterAttributeTable("Siniflandirma_DeMartonne");
                AddField(vatAylik, "OZELLIK", "TEXT");
                IQueryFilter queryFilter  = new QueryFilterClass();
                ICursor      updateCursor = vatAylik.Search(queryFilter, false);
                IRow         feature      = null;
                int          idmField     = vatAylik.FindField("VALUE");
                int          ozellikField = vatAylik.FindField("OZELLIK");
                while ((feature = updateCursor.NextRow()) != null)
                {
                    string ozellik = string.Empty;
                    double idmVal  = Convert.ToDouble(feature.get_Value(idmField));
                    if (idmVal < 5)
                    {
                        ozellik = "Kurak";
                    }
                    else if (idmVal >= 5 && idmVal < 10)
                    {
                        ozellik = "Yarı Kurak";
                    }
                    else if (idmVal >= 10 && idmVal < 20)
                    {
                        ozellik = "Yarı Kurak - Nemli Arası";
                    }
                    else if (idmVal >= 20 && idmVal < 30)
                    {
                        ozellik = "Yarı Nemli";
                    }
                    else if (idmVal >= 30 && idmVal < 60)
                    {
                        ozellik = "Nemli";
                    }
                    else
                    {
                        ozellik = "Çok Nemli";
                    }
                    feature.set_Value(ozellikField, ozellik);
                    feature.Store();
                }
                tpSonuc.CustomText = "İşlem tamamlandı...";
                tpSonuc.PerformStep();
                (this.Parent as Form).Close();
            }
        }
Ejemplo n.º 6
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (cmbInputLayer.SelectedIndex < 0)
            {
                MessageBox.Show("Uygulama katmanı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbInputBorder.SelectedIndex < 0)
            {
                MessageBox.Show("Proje sınırı belirlenmeden işlem yapılamaz.");
                return;
            }


            AppSingleton.Instance().CreateWorkspacePath();
            if (AppSingleton.Instance().SettingsControl == null)
            {
                SettingsControl control = new SettingsControl();
                control.Load();
                control.CheckForm();
            }

            tpSonuc.Visible    = true;
            tpSonuc.VisualMode = ProgressBarDisplayMode.TextAndPercentage;
            tpSonuc.CustomText = "Uygulama Katmanı kesiliyor...";
            tpSonuc.Maximum    = 33;
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();
            var           clipLayer = AppSingleton.Instance().ClipLayers((cmbInputBorder.SelectedItem as LayerObject).layer, (cmbInputLayer.SelectedItem as LayerObject).layer);
            var           layerName = System.IO.Path.GetFileNameWithoutExtension(clipLayer);
            IFeatureClass clipClass = (AppSingleton.Instance().PersonalWorkspace as IFeatureWorkspace).OpenFeatureClass(layerName);

            tpSonuc.CustomText = "Katman kopyalanıyor...";
            tpSonuc.PerformStep();
            var copiedfclass = CopyFeatureClass(clipClass);

            IFeatureClass fclass = (AppSingleton.Instance().PersonalWorkspace as IFeatureWorkspace).OpenFeatureClass("Copy");

            IQueryFilter   queryFilter  = new QueryFilterClass();
            IFeatureCursor updateCursor = fclass.Search(queryFilter, false);
            IFeature       feature      = null;

            while ((feature = updateCursor.NextFeature()) != null)
            {
                MultiplyFeatureValue(feature);
            }
            var layer = (cmbInputLayer.SelectedItem as LayerObject).layer;

            tpSonuc.CustomText = "YilOrtSic katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var YilOrtSic = IDW(fclass, "yilTmp", "YilOrtSic"); tpSonuc.CustomText = "AySicOca katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicOcak = IDW(fclass, "ocaTmp", "AySicOca"); tpSonuc.CustomText = "AySicSub katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicSubat = IDW(fclass, "subTmp", "AySicSub"); tpSonuc.CustomText = "AySicMar katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicMart = IDW(fclass, "marTmp", "AySicMar"); tpSonuc.CustomText = "AySicNis katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicNisan = IDW(fclass, "nisTmp", "AySicNis"); tpSonuc.CustomText = "AySicMay katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicMayis = IDW(fclass, "mayTmp", "AySicMay"); tpSonuc.CustomText = "AySicHaz katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicHaziran = IDW(fclass, "hazTmp", "AySicHaz"); tpSonuc.CustomText = "AySicTem katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicTemmuz = IDW(fclass, "temTmp", "AySicTem"); tpSonuc.CustomText = "AySicAgu katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicAgustos = IDW(fclass, "aguTmp", "AySicAgu"); tpSonuc.CustomText = "AySicEyl katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicEylul = IDW(fclass, "eylTmp", "AySicEyl"); tpSonuc.CustomText = "AySicEki katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicEkim = IDW(fclass, "ekiTmp", "AySicEki"); tpSonuc.CustomText = "AySicKas katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicKasim = IDW(fclass, "kasTmp", "AySicKas"); tpSonuc.CustomText = "AySicAra katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AySicAralik = IDW(fclass, "araTmp", "AySicAra");

            string layerNames = YilOrtSic + ";" + AySicOcak + ";" + AySicSubat + ";" + AySicMart
                                + ";" + AySicNisan + ";" + AySicMayis + ";" + AySicHaziran + ";" + AySicTemmuz
                                + ";" + AySicAgustos + ";" + AySicEylul + ";" + AySicEkim + ";" + AySicKasim + ";" + AySicAralik;

            tpSonuc.CustomText = "Katmanlar birleştiriliyor...";
            tpSonuc.PerformStep();
            var combine1 = Combine(layerNames, "CombineSic"); tpSonuc.CustomText = "YilTopYag katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var YilTopYag = IDW(fclass, "yilRain", "YilTopYag"); tpSonuc.CustomText = "AyYagOca katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagOcak = IDW(fclass, "ocaRain", "AyYagOca"); tpSonuc.CustomText = "AyYagSub katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagSubat = IDW(fclass, "subRain", "AyYagSub"); tpSonuc.CustomText = "AyYagMar katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagMart = IDW(fclass, "marRain", "AyYagMar"); tpSonuc.CustomText = "AyYagNis katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagNisan = IDW(fclass, "nisRain", "AyYagNis"); tpSonuc.CustomText = "AyYagMay katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagMayis = IDW(fclass, "mayRain", "AyYagMay"); tpSonuc.CustomText = "AyYagHaz katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagHaziran = IDW(fclass, "hazRain", "AyYagHaz"); tpSonuc.CustomText = "AyYagTem katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagTemmuz = IDW(fclass, "temRain", "AyYagTem"); tpSonuc.CustomText = "AyYagAgu katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagAgustos = IDW(fclass, "aguRain", "AyYagAgu"); tpSonuc.CustomText = "AyYagEyl katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagEylul = IDW(fclass, "eylRain", "AyYagEyl"); tpSonuc.CustomText = "AyYagEki katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagEkim = IDW(fclass, "ekiRain", "AyYagEki"); tpSonuc.CustomText = "AyYagKas katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagKasim = IDW(fclass, "kasRain", "AyYagKas"); tpSonuc.CustomText = "AyYagAra katmanı oluşturuluyor...";

            tpSonuc.PerformStep();
            var AyYagAralik = IDW(fclass, "araRain", "AyYagAra");

            string layerNames2 = YilTopYag + ";" + AyYagOcak + ";" + AyYagSubat + ";" + AyYagMart
                                 + ";" + AyYagNisan + ";" + AyYagMayis + ";" + AyYagHaziran + ";" + AyYagTemmuz
                                 + ";" + AyYagAgustos + ";" + AyYagEylul + ";" + AyYagEkim + ";" + AyYagKasim + ";" + AyYagAralik; tpSonuc.CustomText = "Katmanlar birleştiriliyor...";

            tpSonuc.PerformStep();
            var combine2 = Combine(layerNames2, "CombineYag"); tpSonuc.CustomText = "Siniflandirma_Koppen oluşturuluyor...";

            tpSonuc.PerformStep();
            var combineLayer = Combine(combine1 + ";" + combine2, "Siniflandirma_Koppen");
            var vat          = AppSingleton.Instance().BuildRasterAttributeTable("Siniflandirma_Koppen");

            JoinField(vat, "CombineSic", combine1, "Value");
            JoinField(vat, "CombineYag", combine2, "Value");
            tpSonuc.CustomText = "Veriler ekleniyor...";
            tpSonuc.PerformStep();
            FindIklimForValues();
            tpSonuc.CustomText = "İşlem tamamlandı...";
            tpSonuc.PerformStep();
            (this.Parent as Form).Close();
        }
Ejemplo n.º 7
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (cmbInputLayer.SelectedIndex < 0)
            {
                MessageBox.Show("Uygulama katmanı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbInputBorder.SelectedIndex < 0)
            {
                MessageBox.Show("Proje sınırı belirlenmeden işlem yapılamaz.");
                return;
            }


            AppSingleton.Instance().CreateWorkspacePath();
            if (AppSingleton.Instance().SettingsControl == null)
            {
                SettingsControl control = new SettingsControl();
                control.Load();
                control.CheckForm();
            }

            tpSonuc.Visible    = true;
            tpSonuc.VisualMode = ProgressBarDisplayMode.TextAndPercentage;
            tpSonuc.CustomText = "Uygulama Katmanı kesiliyor...";
            tpSonuc.Maximum    = 6;
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();


            var           clipLayer = AppSingleton.Instance().ClipLayers((cmbInputBorder.SelectedItem as LayerObject).layer, (cmbInputLayer.SelectedItem as LayerObject).layer);
            var           layerName = Path.GetFileNameWithoutExtension(clipLayer);
            IFeatureClass clipClass = (AppSingleton.Instance().PersonalWorkspace as IFeatureWorkspace).OpenFeatureClass(layerName);

            tpSonuc.CustomText = "Katman kopyalanıyor...";
            tpSonuc.PerformStep();
            var copiedfclass = CopyFeatureClass(clipClass);

            IFeatureClass fclass = (AppSingleton.Instance().PersonalWorkspace as IFeatureWorkspace).OpenFeatureClass("Copy");

            IQueryFilter queryFilter = new QueryFilterClass();

            AppSingleton.Instance().AddField(fclass, "KURAKLIK", "DOUBLE");
            AppSingleton.Instance().AddField(fclass, "IDMG", "DOUBLE");
            List <string> sicaklikList = new List <string>();

            FillSicaklikList(sicaklikList);
            List <string> yagisList = new List <string>();

            FillYagisList(yagisList);
            IFeatureCursor updateCursor = fclass.Search(queryFilter, false);
            IFeature       feature      = null;

            while ((feature = updateCursor.NextFeature()) != null)
            {
                double kuraklik = 0.0;
                for (int i = 0; i < sicaklikList.Count; i++)
                {
                    var sic = sicaklikList[i];
                    var yag = yagisList[i];

                    var sicIndex = feature.Fields.FindField(sic);
                    var yagIndex = feature.Fields.FindField(yag);

                    var t     = Convert.ToDouble(feature.get_Value(sicIndex));
                    var p     = Convert.ToDouble(feature.get_Value(yagIndex));
                    var kurak = (12 * p) / t + 10;
                    if (kuraklik == 0.0)
                    {
                        kuraklik = kurak;
                    }
                    else if (kurak < kuraklik)
                    {
                        kuraklik = kurak;
                    }
                }
                var kuraklikIndex = feature.Fields.FindField("KURAKLIK");
                feature.set_Value(kuraklikIndex, kuraklik);

                var topYagField = feature.Fields.FindField("yilRain");
                var P           = Convert.ToDouble(feature.get_Value(topYagField));

                var    ortSicField = feature.Fields.FindField("yilTmp");
                double T           = Convert.ToDouble(feature.get_Value(ortSicField));

                var idmg      = 0.5 * ((P / (T + 10)) + kuraklik);
                var idmgIndex = feature.Fields.FindField("IDMG");
                feature.set_Value(idmgIndex, idmg);

                feature.Store();
            }

            tpSonuc.CustomText = "IDW katmanı oluşturuluyor...";
            tpSonuc.PerformStep();

            var idwLayer = AppSingleton.Instance().IDW(fclass, "IDMG", "IDW");

            tpSonuc.CustomText = "Siniflandirma_DeMartonneGottmann katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var intLayer = Int(idwLayer, "Siniflandirma_DeMartonneGottmann");
            var table    = AppSingleton.Instance().BuildRasterAttributeTable("Siniflandirma_DeMartonneGottmann");

            AppSingleton.Instance().AddField(table, "IKLIMTIPI", "TEXT");
            int          idmField      = table.FindField("VALUE");
            int          ozellikField  = table.FindField("IKLIMTIPI");
            IQueryFilter queryFilter2  = new QueryFilterClass();
            ICursor      updateCursor2 = table.Search(queryFilter, false);
            IRow         row           = null;

            tpSonuc.CustomText = "Veriler ekleniyor...";
            tpSonuc.PerformStep();
            while ((row = updateCursor2.NextRow()) != null)
            {
                string ozellik = string.Empty;
                double idmVal  = Convert.ToDouble(row.get_Value(idmField));
                if (idmVal < 0)
                {
                    ozellik = "Kutupsal";
                }
                else if (idmVal >= 0 && idmVal < 5)
                {
                    ozellik = "Çöl";
                }
                else if (idmVal >= 5 && idmVal < 10)
                {
                    ozellik = "Step - Yarı Kurak";
                }
                else if (idmVal >= 10 && idmVal < 20)
                {
                    ozellik = "Step - Nemli Arası";
                }
                else if (idmVal >= 20 && idmVal < 28)
                {
                    ozellik = "Yarı Nemli";
                }
                else if (idmVal >= 28 && idmVal < 35)
                {
                    ozellik = "Nemli";
                }
                else if (idmVal >= 35 && idmVal < 55)
                {
                    ozellik = "Çok Nemli";
                }
                else
                {
                    ozellik = "Islak";
                }
                row.set_Value(ozellikField, ozellik);
                row.Store();
            }
            tpSonuc.CustomText = "İşlem tamamlandı...";
            tpSonuc.PerformStep();
            (this.Parent as Form).Close();
        }
Ejemplo n.º 8
0
        private void btnCalistir_Click(object sender, EventArgs e)
        {
            if (cmbUygulamaKatmani.SelectedIndex < 0)
            {
                MessageBox.Show("Uygulama katmanı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbProjectArea.SelectedIndex < 0)
            {
                MessageBox.Show("Proje sınırı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbYillikSuEksigi.SelectedIndex < 0)
            {
                MessageBox.Show("Yıllık Su eksiği değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbYillikSuFazlasi.SelectedIndex < 0)
            {
                MessageBox.Show("Yıllık Su fazlası değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbETP.SelectedIndex < 0)
            {
                MessageBox.Show("Yıllık Gerçek Evapotranspirasyon değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbPETP.SelectedIndex < 0)
            {
                MessageBox.Show("Yıllık Potansiyel Evapotranspirasyon değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbPETPHaziran.SelectedIndex < 0)
            {
                MessageBox.Show("Haziran ayı Potansiyel Evapotranspirasyon değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbPETPTemmuz.SelectedIndex < 0)
            {
                MessageBox.Show("Temmuz ayı Potansiyel Evapotranspirasyon değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbPETPAgustos.SelectedIndex < 0)
            {
                MessageBox.Show("Ağustos ayı Potansiyel Evapotranspirasyon değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbSuFazlasiYaz.SelectedIndex < 0)
            {
                MessageBox.Show("Yaz ayları su fazlası değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbSuFazlasiKis.SelectedIndex < 0)
            {
                MessageBox.Show("Kış ayları su fazlası değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbSuEksigiYaz.SelectedIndex < 0)
            {
                MessageBox.Show("Yaz ayları su eksiği değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbSuEksigiKis.SelectedIndex < 0)
            {
                MessageBox.Show("Kış ayları su eksiği değeri belirlenmeden işlem yapılamaz.");
                return;
            }

            if (cmbUygulamaKatmani.SelectedIndex < 0)
            {
                MessageBox.Show("Öncelikli katmanı belirleyiniz.");
                return;
            }

            AppSingleton.Instance().CreateWorkspacePath();
            if (AppSingleton.Instance().SettingsControl == null)
            {
                SettingsControl control = new SettingsControl();
                control.Load();
                control.CheckForm();
            }


            tpSonuc.Visible    = true;
            tpSonuc.VisualMode = ProgressBarDisplayMode.TextAndPercentage;
            tpSonuc.CustomText = "Uygulama Katmanı kesiliyor...";
            tpSonuc.Maximum    = 19;
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();

            var clipLayer = AppSingleton.Instance().ClipLayers((cmbProjectArea.SelectedItem as LayerObject).layer, (cmbUygulamaKatmani.SelectedItem as LayerObject).layer);

            tpSonuc.CustomText = "s katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var s = AppSingleton.Instance().IDW(clipLayer, cmbYillikSuFazlasi.SelectedItem.ToString(), "s");

            tpSonuc.CustomText = "d katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var d = AppSingleton.Instance().IDW(clipLayer, cmbYillikSuEksigi.SelectedItem.ToString(), "d");

            tpSonuc.CustomText = "etp katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var etp = AppSingleton.Instance().IDW(clipLayer, cmbETP.SelectedItem.ToString(), "etp");

            tpSonuc.CustomText = "sei katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var petp = AppSingleton.Instance().IDW(clipLayer, cmbPETP.SelectedItem.ToString(), "sei");

            tpSonuc.CustomText = "aPetAgu katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var aPetAgu = AppSingleton.Instance().IDW(clipLayer, cmbPETPAgustos.SelectedItem.ToString(), "aPetAgu");

            tpSonuc.CustomText = "aPetTem katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var aPetTem = AppSingleton.Instance().IDW(clipLayer, cmbPETPTemmuz.SelectedItem.ToString(), "aPetTem");

            tpSonuc.CustomText = "aPetHaz katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var aPetHaz = AppSingleton.Instance().IDW(clipLayer, cmbPETPHaziran.SelectedItem.ToString(), "aPetHaz");

            tpSonuc.CustomText = "suEksYaz katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var suEksYaz = AppSingleton.Instance().IDW(clipLayer, cmbSuEksigiYaz.SelectedItem.ToString(), "suEksYaz");

            tpSonuc.CustomText = "suFazYaz katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var suFazYaz = AppSingleton.Instance().IDW(clipLayer, cmbSuFazlasiYaz.SelectedItem.ToString(), "suFazYaz");

            tpSonuc.CustomText = "suEksKis katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var suEksKis = AppSingleton.Instance().IDW(clipLayer, cmbSuEksigiKis.SelectedItem.ToString(), "suEksKis");

            tpSonuc.CustomText = "suFazKis katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var suFazKis = AppSingleton.Instance().IDW(clipLayer, cmbSuFazlasiKis.SelectedItem.ToString(), "suFazKis");

            tpSonuc.CustomText = "yei katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var yei = RasterCalculatorYei(s, d, etp, "yei");
            var sei = petp;

            tpSonuc.CustomText = "ki katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var ki = RasterCalculatorKi(d, etp, "ki");

            tpSonuc.CustomText = "ni katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var ni = RasterCalculatorKi(s, etp, "ni");

            tpSonuc.CustomText = "etp3 katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            var etp3YazOrani = RasterCalculatorEtp3(aPetHaz, aPetTem, aPetAgu, petp, "etp3");

            tpSonuc.CustomText = "Katmanlar birleştiriliyor...";
            tpSonuc.PerformStep();
            string combine = Combine(yei + ";" + sei + ";" + ki + ";" + ni + ";" + etp3YazOrani + ";" + suEksYaz + ";" + suEksKis + ";" + suFazYaz + ";" + suFazKis);

            tpSonuc.CustomText = "Veriler ekleniyor...";
            tpSonuc.PerformStep();

            var vat               = AppSingleton.Instance().BuildRasterAttributeTable("Siniflandirma_Thornwaite");
            var yeiField          = vat.Fields.FindField("yei");
            var seiField          = vat.Fields.FindField("sei");
            var kiField           = vat.Fields.FindField("ki");
            var niField           = vat.Fields.FindField("ni");
            var etpField          = vat.Fields.FindField("etp3");
            var suFazlasiYazField = vat.Fields.FindField("suFazYaz");
            var suFazlasiKisField = vat.Fields.FindField("suFazKis");
            var suEksigiYazField  = vat.Fields.FindField("suEksYaz");
            var suEksigiKisField  = vat.Fields.FindField("suEksKis");


            AppSingleton.Instance().AddField(vat, "yeiHarf", "TEXT");
            AppSingleton.Instance().AddField(vat, "seiHarf", "TEXT");
            AppSingleton.Instance().AddField(vat, "kiHarf", "TEXT");
            AppSingleton.Instance().AddField(vat, "niHarf", "TEXT");
            AppSingleton.Instance().AddField(vat, "etp3Harf", "TEXT");

            var yeiHarfField = vat.Fields.FindField("yeiHarf");
            var seiHarfField = vat.Fields.FindField("seiHarf");
            var kiHarfField  = vat.Fields.FindField("kiHarf");
            var niHarfField  = vat.Fields.FindField("niHarf");
            var etpHarfField = vat.Fields.FindField("etp3Harf");

            IQueryFilter queryFilter  = new QueryFilterClass();
            ICursor      updateCursor = vat.Search(queryFilter, false);
            IRow         feature      = null;

            while ((feature = updateCursor.NextRow()) != null)
            {
                var suFazlasiKisVal = Convert.ToDouble(feature.get_Value(suFazlasiKisField));
                var suFazlasiYazVal = Convert.ToDouble(feature.get_Value(suFazlasiYazField));

                var suEksigiKisVal = Convert.ToDouble(feature.get_Value(suEksigiKisField));
                var suEksigiYazVal = Convert.ToDouble(feature.get_Value(suEksigiYazField));

                var yeiVal  = Convert.ToInt32(feature.get_Value(yeiField));
                var yeiHarf = CalculateYeiHarf(yeiVal);
                feature.set_Value(yeiHarfField, yeiHarf);
                var seiVal  = Convert.ToInt32(feature.get_Value(seiField));
                var seiHarf = CalculateSeiHarf(seiVal);
                feature.set_Value(seiHarfField, seiHarf);
                var etpVal  = Convert.ToInt32(feature.get_Value(etpField));
                var etpHarf = CalculateEtpHarf(etpVal);
                feature.set_Value(etpHarfField, etpHarf);

                var kiVal  = Convert.ToInt32(feature.get_Value(kiField));
                var kiHarf = CalculateKiHarf(kiVal, suEksigiYazVal, suEksigiKisVal);
                feature.set_Value(kiHarfField, kiHarf);

                var niVal  = Convert.ToInt32(feature.get_Value(niField));
                var niHarf = CalculateNiHarf(niVal, suFazlasiYazVal, suFazlasiKisVal);
                feature.set_Value(niHarfField, niHarf);
                feature.Store();
            }
            tpSonuc.CustomText = "İşlem tamamlandı...";
            tpSonuc.PerformStep();
            (this.Parent as Form).Close();
        }
Ejemplo n.º 9
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (cmbUygulamaKatmani.SelectedIndex < 0)
            {
                MessageBox.Show("Uygulama katmanı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbProjectArea.SelectedIndex < 0)
            {
                MessageBox.Show("Proje sınırı belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbNn.SelectedIndex < 0)
            {
                MessageBox.Show("Nn değeri belirlenmeden işlem yapılamaz.");
                return;
            }
            if (cmbGs.SelectedIndex < 0)
            {
                MessageBox.Show("Gs değeri belirlenmeden işlem yapılamaz.");
                return;
            }

            if (cmbY.SelectedIndex < 0)
            {
                MessageBox.Show("Y değeri belirlenmeden işlem yapılamaz.");
                return;
            }

            if (cmbS.SelectedIndex < 0)
            {
                MessageBox.Show("S değeri belirlenmeden işlem yapılamaz.");
                return;
            }

            AppSingleton.Instance().CreateWorkspacePath();
            if (AppSingleton.Instance().SettingsControl == null)
            {
                SettingsControl control = new SettingsControl();
                control.Load();
                control.CheckForm();
            }

            tpSonuc.Visible    = true;
            tpSonuc.VisualMode = ProgressBarDisplayMode.TextAndPercentage;
            tpSonuc.CustomText = "Uygulama Katmanı kesiliyor...";
            tpSonuc.Maximum    = 13;
            tpSonuc.Step       = 1;
            tpSonuc.PerformStep();
            var clipLayer = AppSingleton.Instance().ClipLayers((cmbProjectArea.SelectedItem as LayerObject).layer, (cmbUygulamaKatmani.SelectedItem as LayerObject).layer);

            if (rbYillik.Checked)
            {
                var clipLayerName = Path.GetFileNameWithoutExtension(clipLayer);
                CalculateNpYillik(clipLayerName);
            }

            string nN = string.Empty;
            string nP = string.Empty;
            string Y  = string.Empty;
            string S  = string.Empty;
            string gS = string.Empty;

            //if (AppSingleton.Instance().UygulamaYontemi == "IDW")
            //{
            tpSonuc.CustomText = "nN Katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            nN = AppSingleton.Instance().IDW(clipLayer, cmbNn.SelectedItem.ToString(), "nN");
            tpSonuc.CustomText = "nP Katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            if (rbYillik.Checked)
            {
                nP = AppSingleton.Instance().IDW(clipLayer, "npYillik", "npYillik");
            }
            tpSonuc.CustomText = "Y Katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            Y = AppSingleton.Instance().IDW(clipLayer, cmbY.SelectedItem.ToString(), "Y");
            tpSonuc.CustomText = "S Katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            S = AppSingleton.Instance().IDW(clipLayer, cmbS.SelectedItem.ToString(), "S");
            tpSonuc.CustomText = "gS Katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            gS = AppSingleton.Instance().IDW(clipLayer, cmbGs.SelectedItem.ToString(), "gS");
            //}
            //else if (AppSingleton.Instance().UygulamaYontemi == "KRIGING")
            //{
            //    nN = AppSingleton.Instance().Kriging((cmbUygulamaKatmani.SelectedItem as LayerObject).layer, cmbNn.SelectedItem.ToString());
            //    nP = AppSingleton.Instance().Kriging((cmbUygulamaKatmani.SelectedItem as LayerObject).layer, cmbNp.SelectedItem.ToString());
            //    Y = AppSingleton.Instance().Kriging((cmbUygulamaKatmani.SelectedItem as LayerObject).layer, cmbY.SelectedItem.ToString());
            //    S = AppSingleton.Instance().Kriging((cmbUygulamaKatmani.SelectedItem as LayerObject).layer, cmbS.SelectedItem.ToString());
            //    gS = AppSingleton.Instance().Kriging((cmbUygulamaKatmani.SelectedItem as LayerObject).layer, cmbGs.SelectedItem.ToString());
            //}

            tpSonuc.CustomText = "nKS Katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            if (rbAylik.Checked)
            {
                nP = "12";
            }
            string nKS = RasterCalculatorNKS(nN, nP, Y, S, gS);

            tpSonuc.CustomText = "kKS Katmanı oluşturuluyor...";
            tpSonuc.PerformStep();
            string kKS = RasterCalculatorKKS(nKS);

            var nksStr = "0 0.400000 1;0.400000 0.670000 2;0.670000 1 3;1 1.330000 4;1.330000 2 5;2 4 6;4 100000 7;NODATA 0";
            var kksStr = "0 0.250000 7;0.250000 0.500000 6;0.500000 0.750000 5;0.750000 1 4;1 1.500000 3;1.500000 2.500000 2;2.500000 100000 1;NODATA 0";

            tpSonuc.CustomText = "nKS Katmanı sınıflandırılıyor...";
            tpSonuc.PerformStep();
            var rNKS = Reclassify(Path.GetFileNameWithoutExtension(nKS), "Value", nksStr, "R_");

            tpSonuc.CustomText = "kKS Katmanı sınıflandırılıyor...";
            tpSonuc.PerformStep();
            var rKKS = Reclassify(Path.GetFileNameWithoutExtension(kKS), "Value", kksStr, "R_");

            tpSonuc.CustomText = "Katmanlar birleştiriliyor...";
            tpSonuc.PerformStep();
            string combine = Combine(rNKS + ";" + rKKS);

            tpSonuc.CustomText = "Veriler ekleniyor...";
            tpSonuc.PerformStep();
            Type factoryType = Type.GetTypeFromProgID(
                "esriDataSourcesGDB.AccessWorkspaceFactory");

            IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance
                                                     (factoryType);
            IRasterWorkspaceEx  rasterWorkspaceEx = workspaceFactory.OpenFromFile(AppSingleton.Instance().WorkspacePath, 0) as IRasterWorkspaceEx;
            IRasterDataset      rasterDataset     = rasterWorkspaceEx.OpenRasterDataset("Siniflandirma_Aydeniz");
            IRasterDatasetEdit2 raster            = (IRasterDatasetEdit2)rasterDataset;

            ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset = (ESRI.ArcGIS.Geodatabase.IGeoDataset)rasterDataset;
            raster.BuildAttributeTable();
            ITable vat = (raster as IRasterBandCollection).Item(0).AttributeTable;

            AddField(vat, "SONUC", "TEXT");

            IQueryFilter queryFilter  = new QueryFilterClass();
            ICursor      updateCursor = vat.Search(queryFilter, false);
            IRow         feature      = null;

            while ((feature = updateCursor.NextRow()) != null)
            {
                int    kksField   = feature.Fields.FindField("R_kks");
                int    nksField   = feature.Fields.FindField("R_nks");
                int    sonucField = feature.Fields.FindField("SONUC");
                string sonucValue = string.Empty;
                int    nksValue   = Convert.ToInt32(feature.get_Value(nksField));
                int    kksValue   = Convert.ToInt32(feature.get_Value(nksField));

                if (nksValue != kksValue)
                {
                    sonucValue = "Diğer";
                }
                else if (nksValue == 1)
                {
                    sonucValue = "Çöl";
                }
                else if (nksValue == 2)
                {
                    sonucValue = "Çok Kurak";
                }
                else if (nksValue == 3)
                {
                    sonucValue = "Kurak";
                }

                else if (nksValue == 4)
                {
                    sonucValue = "Yarı Kurak";
                }
                else if (nksValue == 5)
                {
                    sonucValue = "Yarı Nemli";
                }
                else if (nksValue == 6)
                {
                    sonucValue = "Nemli";
                }
                else if (nksValue == 7)
                {
                    sonucValue = "Çok Nemli (Islak)";
                }
                else if (nksValue == 0)
                {
                    sonucValue = "Diğer";
                }

                feature.set_Value(sonucField, sonucValue);
                feature.Store();
            }
            tpSonuc.CustomText = "İşlem tamamlandı...";
            tpSonuc.PerformStep();
            (this.Parent as Form).Close();
        }