void btn_Click(object sender, EventArgs e) { RadButtonElement btn = sender as RadButtonElement; if (btn == null || btn.Tag == null || !(btn.Tag is ProductDef)) { return; } ProductDef prdDef = btn.Tag as ProductDef; string uiProvider = prdDef.UIProvider; ContentOfUIProvider prd = new ContentOfUIProvider(uiProvider); if (prd != null) { RibbonTab tab = (RibbonTab)(prd.Control as IUIProvider).Content; tab.Tag = prdDef; if (tab != null) { (prd.Control as IUITabProvider).Init(_session); int idx = _session.UIFrameworkHelper.IndexOf("监测分析专题"); _session.UIFrameworkHelper.InsertTab(idx + 1, tab); TryChangeActiveProduct(prdDef.Identify); } } }
private void btOPTD_Click(object sender, EventArgs e) { ProductColorTable[] tables = ProductColorTableFactory.GetAllColorTables(); ProductColorTable table = ProductColorTableFactory.GetColorTable("FOG", "TIMS"); ExtractProductIdentify exPro = new ExtractProductIdentify(); exPro.ThemeIdentify = "CMA"; exPro.ProductIdentify = "FOG"; exPro.SubProductIdentify = "OPTD"; ThemeDef theme = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); ProductDef pro = theme.GetProductDefByIdentify("FOG"); SubProductDef sub = pro.GetSubProductDefByIdentify("OPTD"); AlgorithmDef alg = sub.GetAlgorithmDefByIdentify("OPTDAlgorithm"); IArgumentProvider arg = MonitoringThemeFactory.GetArgumentProvider(exPro, "OPTDAlgorithm", "FY3A", "MERSI"); arg.SetArg("OPTDAlgorithm", alg); IRasterDataProvider prd = GetRasterDataProvider("FOG"); arg.DataProvider = prd; arg.SetArg("CSRFile", @"E:\code\SMARTII\SRC\【控制】监测分析框架\testCN\bin\Release\TEMP\FOG_0CSR_FY3A_MERSI_10M_20120614001422_20120615001422.dat"); arg.SetArg("DBLVFile", @"E:\code\SMARTII\SRC\【控制】监测分析框架\testCN\bin\Release\TEMP\FOG_DBLV_FY3A_MERSI_1000M_20120614005135_20120615005135.dat"); IMonitoringSubProduct bin = new SubProductOPTDFOG(sub); IPixelFeatureMapper <Int16> result = bin.Make(null) as IPixelFeatureMapper <Int16>; result.Dispose(); }
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { try { if (treeView1.SelectedNode != null) { Point ClickPoint = new Point(e.X, e.Y); TreeNode CurrentNode = treeView1.GetNodeAt(ClickPoint); string str = CurrentNode.Text; if (str.IndexOf("产品") != -1) { string str1 = str.Substring(2); int n = Convert.ToInt32(str1); product_num = n - 1; RefreshTableList(); } else { product_num = -1; ProductDef _product = new ProductDef(); RefreshTableList(); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
protected override void Init(ProductDef productDef) { base.Init(productDef); _identify = productDef.Identify; // LoadSubProducts(); }
private void btSeaIceNDSI_Click(object sender, EventArgs e) { ExtractProductIdentify exPro = new ExtractProductIdentify(); exPro.ThemeIdentify = "CMA"; exPro.ProductIdentify = "ICE"; exPro.SubProductIdentify = "DBLV"; //IArgumentProviderFactory fac = MifEnvironment.ActiveArgumentProviderFactory; ThemeDef theme = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); ProductDef pro = theme.GetProductDefByIdentify("ICE"); SubProductDef sub = pro.GetSubProductDefByIdentify("DBLV"); AlgorithmDef alg = sub.GetAlgorithmDefByIdentify("NDSIAlgorithm_NOAA"); IArgumentProvider arg = MonitoringThemeFactory.GetArgumentProvider(exPro, "NDSIAlgorithm_NOAA", "FY3A", "VIRR"); arg.SetArg("NDSIAlgorithm_NOAA", alg); IRasterDataProvider prd = GetRasterDataProvider("ICE"); arg.DataProvider = prd; IMonitoringSubProduct bin = new SubProductBinaryICE(sub); IPixelIndexMapper result = bin.Make(null) as IPixelIndexMapper; string saveName = "e:\\seaice1.png"; CreatBitmap(prd, result.Indexes.ToArray(), saveName); }
private void 添加产品ToolStripMenuItem_Click(object sender, EventArgs e) { ProductDef product = new ProductDef(); Database.Product.Inst.Stickdata.TrayData.ProductList.Add(product); RefreshTreeView(); product_num = 0; }
public void UpdateData(Core.UI.ISmartSession smartSession) { this._smartSession = smartSession; MonitoringSession monitSession = _smartSession.MonitoringSession as MonitoringSession; ProductDef productDef = monitSession.ActiveMonitoringProduct.Definition; string _identify = productDef.Identify; _wDef = WorkspaceDefinitionFactory.GetWorkspaceDef(_identify); LoadData(); }
protected override void Init(ProductDef productDef) { base.Init(productDef); SubProductDef subUHE = productDef.GetSubProductDefByIdentify("LMCZ"); if (subUHE != null) { if (!string.IsNullOrEmpty(subUHE.ToString())) { _subProducts.Add(new SubProductBinaryLMCZ(subUHE)); } } subUHE = productDef.GetSubProductDefByIdentify("0IMG"); if (subUHE != null) { if (!string.IsNullOrEmpty(subUHE.ToString())) { _subProducts.Add(new SubProductIMGUHE(subUHE)); } } subUHE = productDef.GetSubProductDefByIdentify("STAT"); if (subUHE != null) { if (!string.IsNullOrEmpty(subUHE.ToString())) { _subProducts.Add(new SubProductSTATUHE(subUHE)); } } subUHE = productDef.GetSubProductDefByIdentify("HFII"); if (subUHE != null) { if (!string.IsNullOrEmpty(subUHE.ToString())) { _subProducts.Add(new SubProductHFIILST(subUHE)); } } subUHE = productDef.GetSubProductDefByIdentify("UHPI"); if (subUHE != null) { if (!string.IsNullOrEmpty(subUHE.ToString())) { _subProducts.Add(new SubProductUHPILST(subUHE)); } } subUHE = productDef.GetSubProductDefByIdentify("0CLM"); if (subUHE != null) { SubProductBinaryCLM binaryClm = new SubProductBinaryCLM(subUHE); _subProducts.Add(binaryClm); } }
public void Init(ISmartSession session, params object[] arguments) { this._session = session; CreateRibbonBar(); _session.UIFrameworkHelper.SetTabChangedEvent((obj) => { ProductDef prdDef = obj as ProductDef; if (prdDef != null) { (_session.MonitoringSession as IMonitoringSession).ChangeActiveProduct(prdDef.Identify, _isOpenWorkspace); } }); SetImage(); }
private void InitExIdentify() { _exPro = new ExtractProductIdentify(); _exPro.ThemeIdentify = "CMA"; _exPro.ProductIdentify = "DST"; _exPro.SubProductIdentify = "DBLV"; _exAlg = new ExtractAlgorithmIdentify(); _exAlg.Resolution = null; //MonitoringThemeFactory = MifEnvironment.ActiveArgumentProviderFactory; ThemeDef theme = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); _pro = theme.GetProductDefByIdentify("DST"); _sub = _pro.GetSubProductDefByIdentify("DBLV"); }
private void button2_Click(object sender, EventArgs e) { ExtractProductIdentify prdIdentify = new ExtractProductIdentify(); prdIdentify.ThemeIdentify = "CMA"; prdIdentify.ProductIdentify = "BAG"; prdIdentify.SubProductIdentify = "DBLV"; ExtractAlgorithmIdentify algIdentify = new ExtractAlgorithmIdentify(); algIdentify.Satellite = "EOST"; algIdentify.Sensor = "MODIS"; algIdentify.Resolution = null;//not use //IArgumentProviderFactory fac = MifEnvironment.ActiveArgumentProviderFactory; ThemeDef themeDef = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); IArgumentProvider prd = MonitoringThemeFactory.GetArgumentProvider(prdIdentify, algIdentify); ProductDef bag = themeDef.GetProductDefByIdentify("BAG"); IMonitoringProduct prbag = new MonitoringProductBag(); SubProductDef productDef = bag.GetSubProductDefByIdentify("DBLV"); AlgorithmDef alg = productDef.GetAlgorithmDefByIdentify("BAGExtract"); IMonitoringSubProduct product = new SubProductBinaryBag(productDef); //prd.SetArg("BAGExtract", alg); prd.DataProvider = GetRasterDataProvider(); prd.AOI = GetAOI(prd.DataProvider); //IExtractResult result = (product as SubProductBinaryBag).Make(null,null); //结果存为图片 //idxs = (result as MatrixPixelIndexMapper).Indexes.ToArray(); //IBinaryBitmapBuilder builder = new BinaryBitmapBuilder(); //Size bmSize = new Size(prd.DataProvider.Width, prd.DataProvider.Height); //Bitmap bitmap = builder.CreateBinaryBitmap(bmSize, Color.Red, Color.Transparent); //builder.Fill(idxs, new Size(prd.DataProvider.Width, prd.DataProvider.Height), ref bitmap); //bitmap.Save(@"D:\Code\源代码\【控制】监测分析框架\test\bin\Release\TEMP\bag.png", ImageFormat.Png); //MessageBox.Show("判识结束."); //RasterIdentify id = new RasterIdentify(); //id.ThemeIdentify = "CMA"; //id.ProductIdentify = "BAG"; //id.SubProductIdentify = "DBLV"; //id.Sensor = "MODIS"; //id.OrbitDateTime = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0, 0)); //id.GenerateDateTime = DateTime.Now; //IInterestedRaster<UInt16> iir = new InterestedRaster<UInt16>(id, new Size(prd.DataProvider.Width, prd.DataProvider.Height), prd.DataProvider.CoordEnvelope.Clone()); //iir.Put(idxs, 1); //iir.Dispose(); //MessageBox.Show("判识结果已永久保存."); }
private void SaveProductData(ProductDef product) { Mark1 = product.MarkPoint[0]; Mark2 = product.MarkPoint[1]; Code = product.CodePoint2; BackCT = product.BackCT; Mark1.X = (float)Convert.ToDouble(Mark1X.Text); Mark1.Y = (float)Convert.ToDouble(Mark1Y.Text); Mark2.X = (float)Convert.ToDouble(Mark2X.Text); Mark2.Y = (float)Convert.ToDouble(Mark2Y.Text); BackCT.X = (float)Convert.ToDouble(BackCTX.Text); BackCT.Y = (float)Convert.ToDouble(BackCTY.Text); Code.X = (float)Convert.ToDouble(CodeX.Text); Code.Y = (float)Convert.ToDouble(CodeY.Text); }
private void btCSR_Click(object sender, EventArgs e) { //IArgumentProviderFactory fac1 = MifEnvironment.ActiveArgumentProviderFactory; ThemeDef theme1 = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); // fac1.GetThemeDefByIdentify("CMA"); ProductDef pro1 = theme1.GetProductDefByIdentify("FOG"); //ProductDef pro1 = theme1.GetProductDefByIdentify("ICE"); MonitoringProduct mp = new MonitoringProductFOG(); //MonitoringProduct mp = new MonitoringProductICE(pro1); mp = mp; ExtractProductIdentify exPro = new ExtractProductIdentify(); exPro.ThemeIdentify = "CMA"; exPro.ProductIdentify = "FOG"; exPro.SubProductIdentify = "0CSR"; ExtractAlgorithmIdentify exAlg = new ExtractAlgorithmIdentify(); exAlg.CustomIdentify = null; exAlg.Satellite = "FY3A"; exAlg.Sensor = "MERSI"; exAlg.Resolution = null; //IArgumentProviderFactory fac = MifEnvironment.ActiveArgumentProviderFactory; ThemeDef theme = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); //fac.GetThemeDefByIdentify("CMA"); ProductDef pro = theme.GetProductDefByIdentify("FOG"); SubProductDef sub = pro.GetSubProductDefByIdentify("0CSR"); AlgorithmDef alg = sub.GetAlgorithmDefByIdentify("BaseOrbitAlgorithm"); IArgumentProvider arg = MonitoringThemeFactory.GetArgumentProvider(exPro, "BaseOrbitAlgorithm", "FY3A", "MERSI"); arg.SetArg("BaseOrbitAlgorithm", alg); IRasterDataProvider prd = GetRasterDataProvider("FOG"); arg.DataProvider = prd; arg.SetArg("OrbitFile", new string[] { prd.fileName }); IMonitoringSubProduct bin = new SubProductCSRFOG(sub); IPixelFeatureMapper <UInt16> result = bin.Make(null) as IPixelFeatureMapper <UInt16>; result.Dispose(); }
private void btFogBB_Click(object sender, EventArgs e) { ExtractProductIdentify exPro = new ExtractProductIdentify(); exPro.ThemeIdentify = "CMA"; exPro.ProductIdentify = "FOG"; exPro.SubProductIdentify = "DBLV"; ExtractAlgorithmIdentify exAlg = new ExtractAlgorithmIdentify(); exAlg.CustomIdentify = null; exAlg.Satellite = "FY3A"; exAlg.Sensor = "MERSI"; exAlg.Resolution = null; //IArgumentProviderFactory fac = MifEnvironment.ActiveArgumentProviderFactory; ThemeDef theme = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); ProductDef pro = theme.GetProductDefByIdentify("FOG"); SubProductDef sub = pro.GetSubProductDefByIdentify("DBLV"); AlgorithmDef alg = sub.GetAlgorithmDefByIdentify("EasyAlgorithm"); IArgumentProvider arg = MonitoringThemeFactory.GetArgumentProvider(exPro, "EasyAlgorithm", "FY3A", "MERSI"); arg.SetArg("EasyAlgorithm", alg); IRasterDataProvider prd = GetRasterDataProvider("FOG"); arg.DataProvider = prd; IMonitoringSubProduct bin = new SubProductBinaryFOG(sub); IPixelIndexMapper result = bin.Make(null) as IPixelIndexMapper; RasterIdentify id = new RasterIdentify(); id.ThemeIdentify = "CMA"; id.ProductIdentify = "FOG"; id.SubProductIdentify = "DBLV"; id.Satellite = "FY3A"; id.Sensor = "MERSI"; id.Resolution = "1000M"; id.OrbitDateTime = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0, 0)); id.GenerateDateTime = DateTime.Now; IInterestedRaster <Int16> iir = new InterestedRaster <Int16>(id, new Size(prd.Width, prd.Height), prd.CoordEnvelope); iir.Put(result.Indexes.ToArray(), 1); iir.Dispose(); }
void IThemeProductsTab.ActiveProduct(string identify, bool isOpenWorkspace) { bool old = _isOpenWorkspace; _isOpenWorkspace = isOpenWorkspace; try { foreach (RadButtonElement btn in _tempButtons) { ProductDef def = btn.Tag as ProductDef; if (def != null && def.Identify == identify) { btn.PerformClick(); } } } finally { _isOpenWorkspace = old; } }
protected override void Init(ProductDef productDef) { base.Init(productDef); _identify = productDef.Identify; SubProductDef spd = productDef.GetSubProductDefByIdentify("DBLV"); if (spd != null) { if (!string.IsNullOrEmpty(spd.ToString())) { _subProducts.Add(new SubProductBinaryLST(spd)); } } spd = productDef.GetSubProductDefByIdentify("0IMG"); if (spd != null) { if (!string.IsNullOrEmpty(spd.ToString())) { _subProducts.Add(new SubProductIMGUHI(spd)); } } // spd = _productDef.GetSubProductDefByIdentify("0CLM"); if (spd != null) { if (!string.IsNullOrEmpty(spd.ToString())) { _subProducts.Add(new SubProductBinaryCLM(spd)); } } // spd = _productDef.GetSubProductDefByIdentify("CMAI"); if (spd != null) { if (!string.IsNullOrEmpty(spd.ToString())) { _subProducts.Add(new SubProductCIMGUHI(spd)); } } }
private void SetImage() { if (_session == null) { return; } btnNewProduct.Image = _session.UIFrameworkHelper.GetImage("system:newProduct.png"); btnSaveEnhance.Image = _session.UIFrameworkHelper.GetImage("system:save.png"); if (_tempButtons == null || _tempButtons.Count == 0) { return; } foreach (RadButtonElement btn in _tempButtons) { ProductDef def = btn.Tag as ProductDef; if (def == null || string.IsNullOrEmpty(def.Image)) { continue; } btn.Image = _session.UIFrameworkHelper.GetImage(def.Image); } }
private void btImage_Click(object sender, EventArgs e) { //IArgumentProviderFactory fac = MifEnvironment.ActiveArgumentProviderFactory; ThemeDef theme = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); ProductDef pro = theme.GetProductDefByIdentify("FOG"); SubProductDef sub = pro.GetSubProductDefByIdentify("0IMG"); AlgorithmDef alg = sub.GetAlgorithmDefByIdentify("0IMGAlgorithm"); ExtractProductIdentify exPro = new ExtractProductIdentify(); exPro.ThemeIdentify = "CMA"; exPro.ProductIdentify = "FOG"; exPro.SubProductIdentify = "0IMG"; IArgumentProvider arg = MonitoringThemeFactory.GetArgumentProvider(exPro, "0IMGAlgorithm", "FY3A", "MERSI"); IMonitoringSubProduct subPro = new SubProductIMGFOG(sub); subPro.ResetArgumentProvider("FY3A", "MERSI"); arg.SetArg("AOI", ""); arg.SetArg("OutFileIdentify", "STBI"); subPro.Make(null); }
private ProductDef MarkCaculate(ProductDef product) { ProductDef pp = product.Clone(); pp.SiteList.Clear(); for (int i = 0; i < product.SiteList.Count; i++) { SitePoint site = new SitePoint(); site = product.SiteList[i].Clone(); HalconDotNet.HTuple x; HalconDotNet.HTuple y; VisionProject.Instance.Tool.PointLocation.AffineTransPoint2d( product.SiteList[i].X, product.SiteList[i].Y, out x, out y); site.X = x[0].F; site.Y = y[0].F; pp.SiteList.Add(site); } return(pp); }
private void GetSubPros(string proIdenftiy) { _subProducts.Clear(); if (string.IsNullOrEmpty(proIdenftiy) || _curTheme == null) { return; } ProductDef pro = _curTheme.GetProductDefByIdentify(proIdenftiy); if (pro == null) { return; } SubProductDef[] subPros = pro.SubProducts; if (subPros == null || subPros.Length == 0) { return; } foreach (SubProductDef subPro in subPros) { _subProducts.Add(subPro.Name, subPro.Identify); } }
private void button1_Click(object sender, EventArgs e) { ExtractProductIdentify prdIdentify = new ExtractProductIdentify(); prdIdentify.ThemeIdentify = "CMA"; prdIdentify.ProductIdentify = "BAG"; prdIdentify.SubProductIdentify = "DBLV"; ExtractAlgorithmIdentify algIdentify = new ExtractAlgorithmIdentify(); algIdentify.Satellite = "EOST"; algIdentify.Sensor = "MODIS"; algIdentify.Resolution = null;//not use //IArgumentProviderFactory fac = MifEnvironment.ActiveArgumentProviderFactory; ThemeDef themeDef = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); IArgumentProvider prd = MonitoringThemeFactory.GetArgumentProvider(prdIdentify, algIdentify); ProductDef bag = themeDef.GetProductDefByIdentify("BAG"); IMonitoringProduct prbag = new MonitoringProductBag(); SubProductDef productDef = bag.GetSubProductDefByIdentify("DBLV"); AlgorithmDef alg = productDef.GetAlgorithmDefByIdentify("BAGExtract"); IMonitoringSubProduct product = new SubProductBinaryBag(productDef); prd.SetArg("BAGExtract", alg); prd.DataProvider = GetRasterDataProvider(); prd.AOI = GetAOI(prd.DataProvider); //IExtractResult result = (product as SubProductBinaryBag).Make(prd,null); //结果存为图片 //int[] idxs = (result as IPixelIndexMapper).Indexes.ToArray(); //IBinaryBitmapBuilder builder = new BinaryBitmapBuilder(); //Size bmSize = new Size(prd.DataProvider.Width, prd.DataProvider.Height); //Bitmap bitmap = builder.CreateBinaryBitmap(bmSize, Color.Red, Color.Transparent); //builder.Fill(idxs, new Size(prd.DataProvider.Width, prd.DataProvider.Height), ref bitmap); //bitmap.Save("E:\\bag.png", ImageFormat.Png); //MessageBox.Show("判识结束"); }
private void button4_Click(object sender, EventArgs e) { ExtractProductIdentify prdIdentify = new ExtractProductIdentify(); prdIdentify.ThemeIdentify = "CMA"; prdIdentify.ProductIdentify = "SNW"; prdIdentify.SubProductIdentify = "0CLM"; ExtractAlgorithmIdentify algIdentify = new ExtractAlgorithmIdentify(); algIdentify.Satellite = "FY3A"; algIdentify.Sensor = "VIRR"; algIdentify.Resolution = null;//not use //IArgumentProviderFactory fac = MifEnvironment.ActiveArgumentProviderFactory; ThemeDef themeDef = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); IArgumentProvider prd = MonitoringThemeFactory.GetArgumentProvider(prdIdentify, algIdentify); ProductDef snw = themeDef.GetProductDefByIdentify("SNW"); IMonitoringProduct prbag = new MonitoringProductBag(); SubProductDef productDef = snw.GetSubProductDefByIdentify("0CLM"); AlgorithmDef alg = productDef.GetAlgorithmDefByIdentify("CloudExtract"); IMonitoringSubProduct product = new SubProductBinaryClm(productDef); prd.SetArg("CloudExtract", alg); prd.DataProvider = GetRasterDataProvider1(); //IExtractResult result = product.Make(null,null); //结果存为图片 //int[] idxs = (result as MemPixelIndexMapper).Indexes.ToArray(); //IBinaryBitmapBuilder builder = new BinaryBitmapBuilder(); //Size bmSize = new Size(prd.DataProvider.Width, prd.DataProvider.Height); //Bitmap bitmap = builder.CreateBinaryBitmap(bmSize, Color.Red, Color.Transparent); //builder.Fill(idxs, new Size(prd.DataProvider.Width, prd.DataProvider.Height), ref bitmap); //bitmap.Save("E:\\data\\蓝藻\\snow_clound.png", ImageFormat.Png); //MessageBox.Show("判识结束"); }
private void 添加点ToolStripMenuItem_Click(object sender, EventArgs e) { int type = 0; if (Database.Product.Inst.Stickdata.TrayData.ProductList.Count < 1) { ProductDef product = new ProductDef(); Database.Product.Inst.Stickdata.TrayData.ProductList.Add(product); product_num = 0; RefreshTreeView(); } PointF4 point = new PointF4(); HTuple X = new HTuple(); HTuple Y = new HTuple(); if (TaskMain.sticklogic.markscan.GetDone && TaskMain.sticklogic.markscan.MarkResult.Count > 0 && TaskMain.sticklogic.markscan.MarkResult.Count >= (product_num * 2 + 1)) { //VisionProject.Instance.SetBenchmark1(Database.Product.Inst.Stickdata.TrayData.ProductList[product_num].MarkPoint[0].X, // Database.Product.Inst.Stickdata.TrayData.ProductList[product_num].MarkPoint[0].Y, // Database.Product.Inst.Stickdata.TrayData.ProductList[product_num].MarkPoint[0].R, // 0, Database.Product.Inst.Stickdata.TrayData.MarkMode == 0 ? false : true); //VisionProject.Instance.SetBenchmark1(Database.Product.Inst.Stickdata.TrayData.ProductList[product_num].MarkPoint[1].X, // Database.Product.Inst.Stickdata.TrayData.ProductList[product_num].MarkPoint[1].Y, // Database.Product.Inst.Stickdata.TrayData.ProductList[product_num].MarkPoint[1].R, // 1, Database.Product.Inst.Stickdata.TrayData.MarkMode == 0 ? false : true); //VisionProject.Instance.SetBenchmark2(TaskMain.sticklogic.markscan.MarkResult[product_num * 2].X, //TaskMain.sticklogic.markscan.MarkResult[product_num * 2].Y, // TaskMain.sticklogic.markscan.MarkResult[product_num * 2].R, // 0, Database.Product.Inst.Stickdata.TrayData.MarkMode == 0 ? false : true); //VisionProject.Instance.SetBenchmark2(TaskMain.sticklogic.markscan.MarkResult[product_num * 2 + 1].X, // TaskMain.sticklogic.markscan.MarkResult[product_num * 2 + 1].Y, // TaskMain.sticklogic.markscan.MarkResult[product_num * 2 + 1].R, // 1, Database.Product.Inst.Stickdata.TrayData.MarkMode == 0 ? false : true); //VisionProject.Instance.ReverseTransPoint2d(DeviceRsDef.Axis_X.currPos, DeviceRsDef.Axis_Y.currPos, // out X, out Y, Database.Product.Inst.Stickdata.TrayData.MarkMode == 0 ? false : true); } else { MessageBox.Show("先扫描mark点"); return; } SitePoint site = new SitePoint(); site.X = X[0].F; site.Y = Y[0].F; site.Z = 1f; site.R = 0; site.LableType = type; site.Product_num = product_num; site.SitePoint_num = Database.Product.Inst.Stickdata.TrayData.ProductList[product_num].SiteList.Count; Database.Product.Inst.Stickdata.TrayData.ProductList[product_num].SiteList.Add(site); RefreshTableList(); }
public void MatrixArrayProduct(PointF3 p1, PointF3 p2, PointF3 p3, int row, int column, int DripDirection, ProductDef products) { float deltaX1, deltaY1, deltaX2, deltaY2; //p2 中间点 if (row <= 0 || column <= 0 || (row == 1 && column == 1)) { return; } if (row > 1) { deltaX1 = (p1.X - p2.X) / (row - 1); deltaY1 = (p1.Y - p2.Y) / (row - 1); } else { deltaX1 = p1.X - p2.X; deltaY1 = p1.Y - p2.Y; } if (column > 1) { deltaX2 = (p3.X - p2.X) / (column - 1); deltaY2 = (p3.Y - p2.Y) / (column - 1); } else { deltaX2 = p3.X - p2.X; deltaY2 = p3.Y - p2.Y; } tempProduct.Clear(); #region 无隔离 if (DripDirection == 0) //横向优先 { for (int i = 0; i < row; i++) //行 { for (int j = 0; j < column; j++) //列 { ProductDef p = new ProductDef(); p = products.Clone(); for (int k = 0; k < p.SiteList.Count; k++) { p.SiteList[k].X += (i * deltaX1 + j * deltaX2); p.SiteList[k].Y += (i * deltaY1 + j * deltaY2); p.SiteList[k].Product_num = i + j; } p.MarkPoint[0].X += (i * deltaX1 + j * deltaX2); p.MarkPoint[0].Y += (i * deltaY1 + j * deltaY2); p.MarkPoint[1].X += (i * deltaX1 + j * deltaX2); p.MarkPoint[1].Y += (i * deltaY1 + j * deltaY2); p.CodePoint2.X += (i * deltaX1 + j * deltaX2); p.CodePoint2.Y += (i * deltaY1 + j * deltaY2); p.BackCT.X += (i * deltaX1 + j * deltaX2); p.BackCT.Y += (i * deltaY1 + j * deltaY2); tempProduct.Add(p); } } } else if (DripDirection == 1) //纵向优先 { for (int i = 0; i < column; i++) //列 { for (int j = 0; j < row; j++) //行 { ProductDef p = new ProductDef(); p = products.Clone(); for (int k = 0; k < p.SiteList.Count; k++) { p.SiteList[k].X += (i * deltaX1 + j * deltaX2); p.SiteList[k].Y += (i * deltaY1 + j * deltaY2); p.SiteList[k].Product_num = i + j; } p.MarkPoint[0].X += (i * deltaX1 + j * deltaX2); p.MarkPoint[0].Y += (i * deltaY1 + j * deltaY2); p.MarkPoint[1].X += (i * deltaX1 + j * deltaX2); p.MarkPoint[1].Y += (i * deltaY1 + j * deltaY2); p.CodePoint2.X += (i * deltaX1 + j * deltaX2); p.CodePoint2.Y += (i * deltaY1 + j * deltaY2); p.BackCT.X += (i * deltaX1 + j * deltaX2); p.BackCT.Y += (i * deltaY1 + j * deltaY2); tempProduct.Add(p); } } } #endregion }
protected override void LogicImpl() { var Para = Product.Inst; switch (LG.Step) { case 1: whichMark = 0; //第一个mark点 Para.ProcessData.StickPosList.Clear(); //贴附过程列表清空 Para.ProcessData.currWhichPoint = 0; //第一个点 Para.ProcessData.currWhichProduct = 0; //第一个产品 MarkscanProduct = 0; MarkResult.Clear(); //mark点的拍照结果清空 whichProductAngle.Clear(); //机械角度列表清空 LG.StepNext(2); break; case 2: for (int i = 0; i < CTRCard.Axis_Z.Count; i++) { CTRCard.Axis_Z[i].MC_MoveAbs(Para.Stickdata.ZSafePos); //两个Z轴抬起到安全高度 } LG.StepNext(3); break; case 3: if (CTRCard.ZArrive) //Z轴到达 { if (Product.Inst.Stickdata.TrayData.ProductList.Count > 0) //产品树列表有产品 { LG.StepNext(4); stickPos = Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].Clone(); //把产品树里的产品参数克隆过来 } else { LG.StepNext(0xef); } } break; case 4: CTRCard.Axis_X.MC_MoveAbs(Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].X); //XY到位 CTRCard.Axis_Y.MC_MoveAbs(Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].Y); DeviceRsDef.Q_UpLighSource.ON(); //上光源打开 //VisionProject.Instance.SetBenchmark1 // ( // Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].X, // Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].Y, // Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].R, // whichMark,true // );//设置mark点识别位置 LG.StepNext(5); break; case 5: if (CTRCard.XYArrive && LG.Delay(Para.Stickdata.CTDelay)) //XY到达 { TaskMain.UpCamLogc.ModelID = whichMark; TaskMain.UpCamLogc.Triger(); LG.StepNext(6); } break; case 6: if (Product.Inst.IsAging) //老化模式 { if (LG.TCnt(200)) { LG.StepNext(7); } } else { if (TaskMain.UpCamLogc.Finish) { if (TaskMain.UpCamLogc.Result.Count > 0) { LG.StepNext(7); } else { LG.StepNext(8); } } } break; case 7: PointF3Vision mark = new PointF3Vision(); if (Product.Inst.IsAging) { mark.X = Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].X; mark.Y = Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].Y; mark.R = Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].R; } else { mark.X = Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].X + TaskMain.UpCamLogc.Result[0].X; mark.Y = Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].Y + TaskMain.UpCamLogc.Result[0].Y; mark.R = Product.Inst.Stickdata.TrayData.ProductList[MarkscanProduct].MarkPoint[whichMark].R + TaskMain.UpCamLogc.Result[0].R; } VisionProject.Instance.Tool.PointLocation.SetBenchmark2 ( whichMark, mark.X, mark.Y ); MarkResult.Add(mark); whichMark++; if (whichMark >= 2) { VisionProject.Instance.Tool.PointLocation.Calculation(); if (Product.Inst.IsAging) { Para.ProcessData.StickPosList.Add(stickPos); } else { //计算Mark点,并暂存计算结果 Para.ProcessData.StickPosList.Add(MarkCaculate(stickPos)); //计算Mark点,并保存计算结果 } LG.StepNext(8); } else { LG.StepNext(4); } break; case 8: DeviceRsDef.Q_UpLighSource.OFF(); if (MarkscanProduct >= Product.Inst.Stickdata.TrayData.ProductList.Count - 1) { LG.StepNext(0xef); } else { LG.StepNext(3); whichMark = 0; MarkscanProduct++; } break; case 0xef: LG.End(); break; } }
protected override ProductDef GetProductDef() { ProductDef pd = MonitoringThemeFactory.GetProductDef("CMA", "SNW"); return(pd); }
protected override void LogicImpl() { var Para = Product.Inst; switch (LG.Step) { case 1: whichMark = 0; Para.ProcessData.currWhichProduct = 0; //第一个产品 LG.StepNext(2); break; case 2: for (int i = 0; i < CTRCard.Axis_Z.Count; i++) { CTRCard.Axis_Z[i].MC_MoveAbs(Para.Stickdata.ZSafePos); //两个Z轴抬起到安全高度 } LG.StepNext(3); break; case 3: if (CTRCard.ZArrive) //Z轴到达 { stickPos = Product.Inst.Stickdata.TrayData.ProductList[0].Clone(); //把产品树里的产品参数克隆过来 LG.StepNext(4); } break; case 4: CTRCard.Axis_X.MC_MoveAbs(Product.Inst.Stickdata.TrayData.ProductList[0].MarkPoint[whichMark].X); //XY到位 CTRCard.Axis_Y.MC_MoveAbs(Product.Inst.Stickdata.TrayData.ProductList[0].MarkPoint[whichMark].Y); DeviceRsDef.Q_UpLighSource.ON(); //上光源打开 LG.StepNext(5); break; case 5: if (CTRCard.XYArrive && LG.Delay(Para.Stickdata.CTDelay)) //XY到达 { TaskMain.UpCamLogc.ModelID = whichMark; TaskMain.UpCamLogc.Triger(); LG.StepNext(6); } break; case 6: if (TaskMain.UpCamLogc.Finish) { if (TaskMain.UpCamLogc.Result.Count > 0) { LG.StepNext(7); } else { LG.StepNext(8); } } break; case 7: PointF3Vision mark = new PointF3Vision(); mark.X = Product.Inst.Stickdata.TrayData.ProductList[0].MarkPoint[whichMark].X + TaskMain.UpCamLogc.Result[0].X; mark.Y = Product.Inst.Stickdata.TrayData.ProductList[0].MarkPoint[whichMark].Y + TaskMain.UpCamLogc.Result[0].Y; mark.R = Product.Inst.Stickdata.TrayData.ProductList[0].MarkPoint[whichMark].R + TaskMain.UpCamLogc.Result[0].R; VisionProject.Instance.Tool.PointLocation.SetBenchmark1(whichMark, mark.X, mark.Y); VisionProject.Instance.Tool.PointLocation.SetBenchmark2(whichMark, mark.X, mark.Y); whichMark++; if (whichMark >= 2) { VisionProject.Instance.Tool.PointLocation.Calculation(); Product.Inst.Stickdata.TrayData.ProductList[0] = MarkCaculate(Product.Inst.Stickdata.TrayData.ProductList[0]); LG.StepNext(8); } else { LG.StepNext(4); } break; case 8: LG.StepNext(0xef); break; case 0xef: LG.End(); break; } }
protected override void Init(ProductDef productDef) { base.Init(productDef); SubProductDef subDrt = productDef.GetSubProductDefByIdentify("0VTI"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductVTIDRTII(subDrt)); } } subDrt = productDef.GetSubProductDefByIdentify("0VTIA"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductTCI(subDrt)); } } //_subProducts.Add(new SubProductVTIDRT(subDrt)); //NDVI数据背景库生产 subDrt = productDef.GetSubProductDefByIdentify("NBGP"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductNDVIBackFileDRT(subDrt)); } } //亮温数据背景库生产 subDrt = productDef.GetSubProductDefByIdentify("LBGP"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductLBBackFileDRT(subDrt)); } } subDrt = productDef.GetSubProductDefByIdentify("0SWI"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductSWIDRTII(subDrt)); } } // _subProducts.Add(new SubProductSWIDRT(subDrt)); subDrt = productDef.GetSubProductDefByIdentify("0DNT"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductDNTDRT(subDrt)); } } subDrt = productDef.GetSubProductDefByIdentify("TVDI"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductTVDIDRTII(subDrt)); } } //_subProducts.Add(new SubProductTVDIDRT(subDrt)); subDrt = productDef.GetSubProductDefByIdentify("VSWI"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductVSWIDRT(subDrt)); } } subDrt = productDef.GetSubProductDefByIdentify("0IMG"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductIMGDRT(subDrt)); } } subDrt = productDef.GetSubProductDefByIdentify("STAT"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductSTATDRT(subDrt)); } } subDrt = productDef.GetSubProductDefByIdentify("0PDI"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductPDIDRT(subDrt)); } } subDrt = productDef.GetSubProductDefByIdentify("MPDI"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductMPDIDRT(subDrt)); } } subDrt = _productDef.GetSubProductDefByIdentify("0CLM"); if (subDrt != null) { if (!string.IsNullOrEmpty(subDrt.ToString())) { _subProducts.Add(new SubProductBinaryCLM(subDrt)); } } }
private void button6_Click(object sender, EventArgs e) { string fname = @"E:\数据文件\BAG_NDVITemp_NUL_NUL_NUL_20120619163044_20120620163044.dat"; IRasterDataProvider dataProvider = GeoDataDriver.Open(fname) as IRasterDataProvider; //非蓝藻区域赋-9999 NDVISetValue setValue1 = (dataProvider as MemoryRasterDataProvider).GetExtHeader <NDVISetValue>(); double min = setValue1.MinNDVI; double max = setValue1.MaxNDVI; IPixelFeatureMapper <float> ndvifinal = new MemPixelFeatureMapper <float>("NDVI", 1000, new Size(dataProvider.Width, dataProvider.Height), dataProvider.CoordEnvelope, dataProvider.SpatialRef); RasterIdentify idNDVI = new RasterIdentify(); idNDVI.ThemeIdentify = "CMA"; idNDVI.ProductIdentify = "BAG"; idNDVI.SubProductIdentify = "NDVI"; idNDVI.OrbitDateTime = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0, 0)); idNDVI.GenerateDateTime = DateTime.Now; InterestedRaster <float> iirNDVI = new InterestedRaster <float>(idNDVI, new Size(dataProvider.Width, dataProvider.Height), dataProvider.CoordEnvelope.Clone(), dataProvider.SpatialRef, 8); iirNDVI.Put(-9999); //IEnumerable<int> ids = (indexProvider as IPixelIndexMapper).Indexes; ArgumentProvider ap = new ArgumentProvider(dataProvider, null); RasterPixelsVisitor <float> visitor = new RasterPixelsVisitor <float>(ap); #region ExtractProductIdentify prdIdentify = new ExtractProductIdentify(); prdIdentify.ThemeIdentify = "CMA"; prdIdentify.ProductIdentify = "BAG"; prdIdentify.SubProductIdentify = "DBLV"; ExtractAlgorithmIdentify algIdentify = new ExtractAlgorithmIdentify(); algIdentify.Satellite = "EOST"; algIdentify.Sensor = "MODIS"; algIdentify.Resolution = null;//not use //IArgumentProviderFactory fac = MifEnvironment.ActiveArgumentProviderFactory; ThemeDef themeDef = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); IArgumentProvider prd = MonitoringThemeFactory.GetArgumentProvider(prdIdentify, algIdentify); ProductDef bag = themeDef.GetProductDefByIdentify("BAG"); IMonitoringProduct prbag = new MonitoringProductBag(); SubProductDef productDef = bag.GetSubProductDefByIdentify("DBLV"); AlgorithmDef alg = productDef.GetAlgorithmDefByIdentify("BAGExtract"); IMonitoringSubProduct product = new SubProductBinaryBag(productDef); //prd.SetArg("BAGExtract", alg); prd.DataProvider = GetRasterDataProvider(); prd.AOI = GetAOI(prd.DataProvider); //IExtractResult result = (product as SubProductBinaryBag).Make(prd,null, null); //idxs = (result as IPixelIndexMapper).Indexes.ToArray(); //#endregion //visitor.VisitPixel(new int[] { 1 }, (index, values) => // { // foreach (int item in idxs) // { // if (item == index) // { // ndvifinal.Put(index, values[0]); // break; // } // } // }); //iirNDVI.SetExtHeader(setValue1); //iirNDVI.Put(ndvifinal); //iirNDVI.Dispose(); #endregion }
private void button19_Click(object sender, EventArgs e) { ThemeDef themeDef = MonitoringThemeFactory.GetThemeDefByIdentify("CMA"); ProductDef prd = themeDef.GetProductDefByIdentify("BAG"); }