Esempio n. 1
0
        /// <summary>
        /// 导出所有性质
        /// </summary>
        /// <param name="type">None表示所有光谱</param>
        public void ExportProperty(UsageTypeEnum type, int filterIdx, string filename)
        {
            SpecBase lib;

            if (type == UsageTypeEnum.Node)
            {
                lib = this;
            }
            else
            {
                lib = this.SubLib(type);
            }
            switch (filterIdx)
            {
            case 1:
                _exportPropertyCSV(filename, lib.Y, null);
                break;

            case 2:
                _exportPropertyCSV(filename, lib.Y, lib.Components);
                break;

            case 3:
                Data.Tools.Save(lib.Y, filename,
                                string.Format("y_{0}", type == UsageTypeEnum.Node ? "All" : type.ToString()));
                break;

            default:
                lib.FullPath = filename;
                lib.Save();
                break;
            }
        }
Esempio n. 2
0
        public MWNumericArray GetY(RIPP.NIR.Component c, bool isall = true, UsageTypeEnum utype = UsageTypeEnum.Calibrate)
        {
            if (this._y == null)
            {
                return(null);
            }
            int idx = -1;

            for (int i = 0; i < this._components.Count; i++)
            {
                if (c.Name == this._components[i].Name)
                {
                    idx = i;
                    break;
                }
            }
            if (idx < 0)
            {
                return(null);
            }
            var m = Data.Tools.SelectColumn(this._y, idx + 1);

            if (isall)
            {
                return(m);
            }

            int[] idxs = this._specs.Select((d, k) => new { s = d, k = idx }).Where(d => d.s.Usage == utype).Select(d => d.k + 1).ToArray();
            return(Data.Tools.SelectRow(m, idxs));
        }
Esempio n. 3
0
        /// <summary>
        /// 导出所有光谱
        /// </summary>
        /// <param name="type">None表示所有光谱</param>
        public void ExportSpecs(UsageTypeEnum type, int filterIdx, string filename)
        {
            SpecBase lib;

            if (type == UsageTypeEnum.Node)
            {
                lib = this;
            }
            else
            {
                lib = this.SubLib(type);
            }
            switch (filterIdx)
            {
            case 1:
            case 2:
                _exportSpecData(filename, lib.X);
                break;

            case 3:
                Data.Tools.Save(lib.X, filename,
                                string.Format("x_{0}", type == UsageTypeEnum.Node ? "All" : type.ToString()));
                break;

            default:
                lib.FullPath = filename;
                lib.Save();
                break;
            }
        }
Esempio n. 4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="isAll">是否是全部光谱,当isAll = false时utype才有效</param>
 /// <param name="utype"></param>
 /// <returns></returns>
 public MWNumericArray GetY(bool isAll = false, UsageTypeEnum utype = UsageTypeEnum.Calibrate)
 {
     if (this._y == null)
     {
         return(null);
     }
     if (isAll)
     {
         return(this._y);
     }
     int[] idxs = this._specs.Select((d, idx) => new { s = d, idx = idx }).Where(d => d.s.Usage == utype).Select(d => d.idx + 1).ToArray();
     return(Data.Tools.SelectRow(this._y, idxs));
 }
Esempio n. 5
0
 private void renderGrid(UsageTypeEnum u)
 {
     this.dataGridView1.Rows.Clear();
     for (int i = 0; i < this._olib.Count; i++)
     {
         if (u == UsageTypeEnum.Node || this._olib[i].Usage == u)
         {
             var row = new mydatarow()
             {
                 S = this._nlib.Specs[i]
             };
             row.CreateCells(this.dataGridView1, this._nlib.Specs[i].Name, this._nlib.Specs[i].Usage.GetDescription());
             this.dataGridView1.Rows.Add(row);
         }
     }
 }
Esempio n. 6
0
 public void SetX(MWNumericArray m, bool isall = true, UsageTypeEnum utype = UsageTypeEnum.Calibrate)
 {
     if (isall)
     {
         this._x = m;
     }
     else
     {
         var idxs = this._specs.Where(d => d.Usage == utype).Select((s, idx) => idx).ToList();
         if (idxs.Count() == m.Dimensions[1])
         {
             for (int i = 0; i < idxs.Count(); i++)
             {
                 this._x = Data.Tools.SetColumn(this._x, Data.Tools.SelectColumn(m, i + 1), idxs[i] + 1);
             }
         }
     }
 }
Esempio n. 7
0
        /// <summary>
        /// 计算
        /// </summary>
        public void Compute(SpecBase data, bool isAll = false, UsageTypeEnum utype = UsageTypeEnum.Calibrate)
        {
            this._specsInput  = data;
            this._specsOutput = data.Clone();
            if (this._filter == null)
            {
                return;
            }

            this._statu = WorkStatu.Working;
            this.fireStatuChange();


            this._specsOutput.X = this._filter.Process(this._specsInput.X);
            if (this._filter.FType == FilterType.VarFilter)
            {
                this._specsOutput.Axis.X = this._filter.VarProcess(this._specsInput.Axis.X);
            }

            this._statu = WorkStatu.Finished;
            this.fireStatuChange();
        }
Esempio n. 8
0
        void menuitem2_Click(object sender, EventArgs e)
        {
            var item = sender as ToolStripMenuItem;

            if (item == null)
            {
                return;
            }


            // step 1、获取值
            UsageTypeEnum utype = UsageTypeEnum.Calibrate;

            if (item.Text.Contains(RIPP.NIR.UsageTypeEnum.Guide.GetDescription()))
            {
                utype = UsageTypeEnum.Guide;
            }
            else if (item.Text.Contains(RIPP.NIR.UsageTypeEnum.Ignore.GetDescription()))
            {
                utype = UsageTypeEnum.Ignore;
            }
            else if (item.Text.Contains(RIPP.NIR.UsageTypeEnum.Validate.GetDescription()))
            {
                utype = UsageTypeEnum.Validate;
            }

            // step 2、获取选中的光谱
            for (int r = 0; r < this.dataGridView1.SelectedRows.Count; r++)
            {
                var row = this.dataGridView1.SelectedRows[r] as mydatarow;
                if (row != null)
                {
                    row.S.Usage        = utype;
                    row.Cells[2].Value = utype.GetDescription();
                }
            }
        }
Esempio n. 9
0
 private void rerender(double[] groupA, double[] groupB, UsageTypeEnum u2)
 {
     foreach (var i in groupA)
     {
         var idx = (int)(i - 1);
         var row = this.dataGridView1.Rows[idx] as mydatarow;
         if (row != null)
         {
             row.S.Usage = UsageTypeEnum.Calibrate;
         }
         row.Cells[2].Value = UsageTypeEnum.Calibrate.GetDescription();
     }
     foreach (var i in groupB)
     {
         var idx = (int)(i - 1);
         var row = this.dataGridView1.Rows[idx] as mydatarow;
         if (row != null)
         {
             row.S.Usage = u2;
         }
         row.Cells[2].Value           = u2.GetDescription();
         row.Cells[2].Style.BackColor = Color.AntiqueWhite;
     }
 }
Esempio n. 10
0
 /// <summary>
 /// 获取子光谱库
 /// </summary>
 /// <param name="utype"></param>
 /// <returns></returns>
 public SpecBase SubLib(UsageTypeEnum utype)
 {
     int[] idxs = this._specs.Select((d, idx) => new { s = d, idx = idx }).Where(d => d.s.Usage == utype).Select(d => d.idx).ToArray();
     return(this.SubLib(idxs));
 }