/// <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; } }
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)); }
/// <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; } }
/// <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)); }
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); } } }
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); } } } }
/// <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(); }
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(); } } }
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; } }
/// <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)); }