/// <summary> /// 根据波段中心波长获取波段号(如果不存在则返回-1) /// </summary> /// <param name="info"></param> /// <param name="waveLength"></param> /// <returns></returns> public int TryGetBandNum(RasterDatasetInfo info, double waveLength) { int num = -1; if (info != null) { Dictionary <int, double> bandInfoDic = new Dictionary <int, double>(); for (int i = 0; i < info.BandCol.Count; i++) { var bandInfo = info.BandCol[i]; if (!string.IsNullOrEmpty(bandInfo.middleWaveLength)) { bandInfoDic.Add(Convert.ToInt32(bandInfo.id), Math.Abs(Convert.ToDouble(bandInfo.middleWaveLength) - waveLength)); } } if (bandInfoDic.Count > 1) { num = bandInfoDic.OrderBy(t => t.Value).First().Key; } } return(num); }
private void LoadConfigInfo(string workPath) { try { workpath = workPath; string rasterSourceTypesConfigPath = Path.Combine(workPath, "Config", "RasterSourceTypesConfig.xml"); if (File.Exists(rasterSourceTypesConfigPath)) { XmlDocument xmlDoc = mXMLHelper.GetXmlDocument(rasterSourceTypesConfigPath); XmlNode xn = xmlDoc.SelectSingleNode("RasterSourceTypes"); RasterSourceTypesInfo = new RasterSourceTypesInfo(xn as XmlElement); } string rasterDatasetsConfigPath = Path.Combine(workPath, "Config", "RasterDatasetsConfig.xml"); if (File.Exists(rasterDatasetsConfigPath)) { XmlDocument xmlDoc = mXMLHelper.GetXmlDocument(rasterDatasetsConfigPath); XmlNode xn = xmlDoc.SelectSingleNode("RasterDatasets"); XmlNodeList xnl = xn.ChildNodes; RasterDatasetInfoCol = new List <RasterDatasetInfo>(); foreach (XmlNode xnode in xnl) { XmlElement xe = (XmlElement)xnode; RasterDatasetInfo rasterDatasetInfo = new RasterDatasetInfo(xe); RasterDatasetInfoCol.Add(rasterDatasetInfo); } } string identifyListsConfigPath = Path.Combine(workPath, "Config", "IdentifyListsConfig.xml"); if (File.Exists(identifyListsConfigPath)) { XmlDocument xmlDoc = mXMLHelper.GetXmlDocument(identifyListsConfigPath); XmlNode xn = xmlDoc.SelectSingleNode("Config"); XmlNodeList xnl = xn.ChildNodes; IdentifysDic = new Dictionary <string, string>(); foreach (XmlNode xnode in xnl) { XmlElement xe = (XmlElement)xnode; IdentifysDic.Add(xe.Name.ToString(), xe.GetAttribute("identify").ToString()); } } } catch (Exception ex) { } }
/// <summary> /// 根据波段类型获取波段号(如果不存在则返回-1) /// </summary> /// <param name="info"></param> /// <param name="name"></param> /// <returns></returns> public int TryGetBandNum(RasterDatasetInfo info, string name) { int num = -1; for (int i = 0; i < info.BandCol.Count; i++) { var bandInfo = info.BandCol[i]; if (!string.IsNullOrEmpty(bandInfo.bandName)) { if (name == bandInfo.bandName) { num = Convert.ToInt32(bandInfo.id); return(num); } } } return(num); }