Exemple #1
0
        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);
                }
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #4
0
 protected override void Init(ProductDef productDef)
 {
     base.Init(productDef);
     _identify = productDef.Identify;
     //
     LoadSubProducts();
 }
Exemple #5
0
        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;
        }
Exemple #7
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);
            }
        }
Exemple #9
0
 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();
 }
Exemple #10
0
        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");
        }
Exemple #11
0
        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);
        }
Exemple #13
0
        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();
        }
Exemple #14
0
        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();
        }
Exemple #15
0
        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;
            }
        }
Exemple #16
0
        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));
                }
            }
        }
Exemple #17
0
 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);
     }
 }
Exemple #18
0
        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);
        }
Exemple #19
0
        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);
        }
Exemple #20
0
        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);
            }
        }
Exemple #21
0
        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("判识结束");
        }
Exemple #22
0
        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
        }
Exemple #25
0
        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);
        }
Exemple #27
0
        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));
                }
            }
        }
Exemple #29
0
        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
        }
Exemple #30
0
 private void button19_Click(object sender, EventArgs e)
 {
     ThemeDef   themeDef = MonitoringThemeFactory.GetThemeDefByIdentify("CMA");
     ProductDef prd      = themeDef.GetProductDefByIdentify("BAG");
 }