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 { } }
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); } }
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); } }
public ConsolePad() { panel = new GIS.Common.Dialogs.Console.Console(); }
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(); } }