public override void Run()
        {
            var form = new LogisticSetUpForm();

            form.ShowDialog();
            if (form.DialogResult == DialogResult.OK)
            {
                // 获得参数
                string                    beginLayerName  = form.BeginLayerName;
                string                    endLayerName    = form.EndLayerName;
                string                    resultLayerName = form.SavePathName;
                List <string>             driveLayerNames = form.DriveLayerNames;
                int                       numOfSample     = form.NumberOfSample;
                LandUseClassificationInfo landUse         = form.LandUse;

                // 初始化对象
                var lg = new LogisticRegression(beginLayerName, endLayerName, driveLayerNames);
                lg.updateConsoleEvent += UpdateConsole;
                lg.ResultLayerName     = resultLayerName;
                lg.NumberOfSample      = numOfSample; // 采样的数目
                lg.landUse             = landUse;

                // 显示控制台
                this.consolePad = WorkbenchSingleton.Workbench.GetPad(typeof(ConsolePad)).PadContent.Control as GIS.Common.Dialogs.Console.Console;
                WorkbenchSingleton.Workbench.GetPad(typeof(ConsolePad)).BringPadToFront();
                lg.Run();
                //Thread thread = new Thread(new ThreadStart(lg.Run));
                //thread.IsBackground = true;
                //thread.Start();
            }
            else
            {
            }
        }
Example #2
0
        public override void Run()
        {
            // 显示设置参数窗口
            var setUpForm = new AnnCaSetUpForm();

            setUpForm.ShowDialog();

            if (setUpForm.DialogResult != DialogResult.OK)
            {
            }
            else
            {
                // 获得参数
                string        beginLayerName  = setUpForm.beginLayerName;
                string        endLayerName    = setUpForm.endLayerName;
                List <string> driveLayerNames = setUpForm.driveLayerNames;

                int    numOfSample   = setUpForm.NumOfSample;
                int    numOfTrain    = setUpForm.NumOfTrain;
                int    numOfSimulate = setUpForm.NumOfSimulate;
                double threshold     = setUpForm.Threshold;
                double alpha         = setUpForm.Alpha;

                LandUseClassificationInfo landInfo = setUpForm.LandUse;

                // 显示控制台
                this.consolePad = WorkbenchSingleton.Workbench.GetPad(typeof(ConsolePad)).PadContent.Control as GIS.Common.Dialogs.Console.Console;

                WorkbenchSingleton.Workbench.GetPad(typeof(ConsolePad)).BringPadToFront();

                //string beginLayerName = "2001";
                //string endLayerName = "2006";
                //List<string> driveLayerNames = new List<string>() { "dem", "distocity", "distohighway", "distorailway", "distoroad", "distotown", "slope" };

                if (landInfo == null)
                {
                    landInfo          = new LandUseClassificationInfo();
                    landInfo.NullInfo = new StructLanduseInfo()
                    {
                        LandUseTypeColor = Color.White.ToArgb(), LandUseTypeName = "NULL", LandUseTypeValue = -3.40282306074e+038
                    };
                    landInfo.AllTypes = new List <StructLanduseInfo>()
                    {
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "城市", LandUseTypeValue = 1, LandUseTypeColor = Color.Black.ToArgb()
                        },
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "水", LandUseTypeValue = 2, LandUseTypeColor = Color.Blue.ToArgb()
                        },
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "田", LandUseTypeValue = 3, LandUseTypeColor = Color.Yellow.ToArgb()
                        },
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "森林", LandUseTypeValue = 4, LandUseTypeColor = Color.Green.ToArgb()
                        },
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "果园", LandUseTypeValue = 5, LandUseTypeColor = Color.LightPink.ToArgb()
                        }
                    };
                }



                // 设置网络
                var network = new AnnCa(beginLayerName, endLayerName, driveLayerNames, landInfo);
                network.NumOfSamples = numOfSample;
                network.TimesOfTrain = numOfTrain;
                network.Threshold    = threshold;
                network.Alpha        = alpha;


                network.updateConsoleEvent += this.UpdateConsole;
                network.updateImageEvent   += this.UpdateImage;

                // 设置图像显示
                this.imageForm = new ImageForm(network.BeginBuffer, network.Width, network.Height, landInfo);
                this.imageForm.Show();
                // 开始模拟
                Thread threadSimulate = new Thread(new ParameterizedThreadStart(network.Run));
                threadSimulate.IsBackground = true;
                threadSimulate.Start(numOfSimulate);
            }
        }
Example #3
0
        public override void Run()
        {
            // 读取设置参数
            var form = new DTCaSetUpForm();

            form.ShowDialog();

            if (form.DialogResult != DialogResult.OK)
            {
            }
            else
            {
                var inputColumnNames = form.driveLayerNames;
                var outputColumnName = form.beginLayerName;
                LandUseClassificationInfo landUseInfo = form.LandUse;
                if (landUseInfo == null)
                {
                    landUseInfo          = new LandUseClassificationInfo();
                    landUseInfo.AllTypes = new List <StructLanduseInfo>()
                    {
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "城市", LandUseTypeValue = 1.0, LandUseTypeColor = Color.Black.ToArgb()
                        },
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "非城市", LandUseTypeValue = 0.0, LandUseTypeColor = Color.White.ToArgb()
                        },
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "水体", LandUseTypeValue = 2.0, LandUseTypeColor = Color.Blue.ToArgb()
                        },
                    };
                    landUseInfo.ConvertableInfos.Add(new StructLanduseInfo()
                    {
                        LandUseTypeName = "非城市", LandUseTypeValue = 0.0, LandUseTypeColor = Color.White.ToArgb()
                    });
                    landUseInfo.NullInfo = new StructLanduseInfo()
                    {
                        LandUseTypeName = "空值", LandUseTypeValue = -9999.0, LandUseTypeColor = Color.Transparent.ToArgb()
                    };
                    landUseInfo.UnConvertableInfos.Add(new StructLanduseInfo()
                    {
                        LandUseTypeName = "水体", LandUseTypeValue = 2.0, LandUseTypeColor = Color.Blue.ToArgb()
                    });
                    landUseInfo.UrbanInfos.Add(new StructLanduseInfo()
                    {
                        LandUseTypeName = "城市", LandUseTypeValue = 1.0, LandUseTypeColor = Color.Black.ToArgb()
                    });
                }

                // 初始化控制台
                this.consolePad = WorkbenchSingleton.Workbench.GetPad(typeof(ConsolePad)).PadContent.Control as GIS.Common.Dialogs.Console.Console;
                // 显示控制台
                WorkbenchSingleton.Workbench.GetPad(typeof(ConsolePad)).BringPadToFront();

                // 初始化树
                var tree = new CaDecisionTree(inputColumnNames, outputColumnName);
                tree.updateConsoleInfoEvent += UpdateConsole;
                tree.updateImageEvent       += UpdateImage;
                tree.LandUseInfo             = landUseInfo;
                tree.SampleRate              = form.RateOfSample;
                // 显示模拟图像
                this.imageForm        = new ImageForm(tree.OuputBuffer, tree.Width, tree.Height, landUseInfo);
                this.imageForm.Width  = tree.Width;
                this.imageForm.Height = tree.Height;
                imageForm.Show();
                // 开始训练模拟
                Thread threadSimulate = new Thread(new ParameterizedThreadStart(tree.Run));
                threadSimulate.IsBackground = true;
                threadSimulate.Start(form.NumOfSimulate);
            }
        }
Example #4
0
 public ConsolePad()
 {
     panel = new GIS.Common.Dialogs.Console.Console();
 }
Example #5
0
        public override void Run()
        {
            var form = new AhpCaSetUpForm();

            form.ShowDialog();

            if (form.DialogResult != DialogResult.OK)
            {
            }
            else
            {
                // 初始化控制台
                this.consolePad = WorkbenchSingleton.Workbench.GetPad(typeof(ConsolePad)).PadContent.Control as GIS.Common.Dialogs.Console.Console;
                // 显示控制台
                WorkbenchSingleton.Workbench.GetPad(typeof(ConsolePad)).BringPadToFront();

                string        beginLayerName  = form.BeginLayerName; //"city2001_012"
                string        endLayerName    = form.EndLayerName;   //"city2006_012";
                List <string> driveLayerNames = form.DriveLayerNames;

                //= new List<string>()
                //{
                //    "distocity",
                //    "distohighway",
                //    "distorailway",
                //    "distoroad",
                //    "distotown"
                //};
                LandUseClassificationInfo landUseInfo = form.LandUseInfo;
                if (landUseInfo == null)
                {
                    landUseInfo          = new LandUseClassificationInfo();
                    landUseInfo.AllTypes = new List <StructLanduseInfo>()
                    {
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "城市", LandUseTypeValue = 1.0, LandUseTypeColor = Color.Black.ToArgb()
                        },
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "非城市", LandUseTypeValue = 0.0, LandUseTypeColor = Color.White.ToArgb()
                        },
                        new StructLanduseInfo()
                        {
                            LandUseTypeName = "水体", LandUseTypeValue = 2.0, LandUseTypeColor = Color.Blue.ToArgb()
                        },
                    };
                    landUseInfo.ConvertableInfos.Add(new StructLanduseInfo()
                    {
                        LandUseTypeName = "非城市", LandUseTypeValue = 0.0, LandUseTypeColor = Color.White.ToArgb()
                    });
                    landUseInfo.NullInfo = new StructLanduseInfo()
                    {
                        LandUseTypeName = "空值", LandUseTypeValue = -9999.0, LandUseTypeColor = Color.Transparent.ToArgb()
                    };
                    landUseInfo.UnConvertableInfos.Add(new StructLanduseInfo()
                    {
                        LandUseTypeName = "水体", LandUseTypeValue = 2.0, LandUseTypeColor = Color.Blue.ToArgb()
                    });
                    landUseInfo.UrbanInfos.Add(new StructLanduseInfo()
                    {
                        LandUseTypeName = "城市", LandUseTypeValue = 1.0, LandUseTypeColor = Color.Black.ToArgb()
                    });
                }

                float[] weights = form.Weights;
                if (weights == null)
                {
                    weights = new float[] { 0.35f, 0.13f, 0.13f, 0.13f, 0.25f };
                }
                int    sizeOfNeighbour = form.SizeOfNeighbour; //3;
                double globalFactor    = form.GlobalFactor;    //0.5;
                double localFactor     = form.LocalFactor;     //0.5;
                double alpha           = form.Alpha;           //1;
                int    countOfCity     = form.CountOfCity;     //200;

                var mce = new AhpCa(beginLayerName, endLayerName, driveLayerNames);
                mce.LandUseInfo         = landUseInfo;
                mce.Weights             = weights;
                mce.SizeOfNeighbour     = sizeOfNeighbour;
                mce.GlobalFactor        = globalFactor;
                mce.LocalFactor         = localFactor;
                mce.Alpha               = alpha;
                mce.CountOfCity         = countOfCity;
                mce.updateConsoleEvent += UpdateConsole;
                mce.updateImageEvent   += UpdateImage;

                this.imageForm = new ImageForm(mce.BeginBuffer, mce.Width, mce.Height, landUseInfo);
                this.imageForm.Show();

                Thread threadSimulate = new Thread(new ThreadStart(mce.simulate));
                threadSimulate.IsBackground = true;
                threadSimulate.Start();
            }
        }