private StatResultItem[] CountByLandRaster(IRasterDataProvider raster) { using (IRasterDictionaryTemplate <byte> temp = RasterDictionaryTemplateFactory.CreateLandRasterTemplate()) { Dictionary <byte, string> paris = temp.CodeNameParis; if (paris == null) { return(null); } List <StatResultItem> items = new List <StatResultItem>(); int[] aoi; double totalArea; foreach (string value in paris.Values) { aoi = temp.GetAOI(value, raster.CoordEnvelope.MinX, raster.CoordEnvelope.MaxX, raster.CoordEnvelope.MinY, raster.CoordEnvelope.MaxY, new Size(raster.Width, raster.Height)); if (aoi == null) { continue; } totalArea = GetTotalArea(raster, aoi); if (totalArea == 0) { continue; } StatResultItem it = new StatResultItem(); it.Name = value; it.Value = totalArea / _dayCount; items.Add(it); } return(items != null?items.ToArray() : null); } }
private void button5_Click(object sender, EventArgs e) { IRasterDictionaryTemplate <int> temp = RasterDictionaryTemplateFactory.GetXjRasterTemplate(); aoi = temp.GetAOI("北京市", 114, 124, 36, 46, new Size(1000, 1000)); //temp.CodeNameParis name = temp.GetPixelName(114d, 39d); }
private Dictionary <string, FireAreaInfo> StatPriviceArea(string[] plstFiles) { Dictionary <string, FireAreaInfo> statArea = new Dictionary <string, FireAreaInfo>(); using (IRasterDictionaryTemplate <int> xianJieDictionary = RasterDictionaryTemplateFactory.CreateXjRasterTemplate()) { foreach (string file in plstFiles) { string[] lines = File.ReadAllLines(file); foreach (string line in lines) { string[] infos = line.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries); if (infos != null && infos.Length == 12) { //按行进行统计 //前两位为省标识 float pixelArea, fireRate; if (!float.TryParse(infos[6], out pixelArea) || !float.TryParse(infos[7], out fireRate)) { continue; } string privice = infos[4].Substring(0, 2); int priviceNum; if (!int.TryParse(privice, out priviceNum) || infos[4].Trim() == "0") { if (statArea.ContainsKey("其他")) { statArea["其他"].PixelCount++; statArea["其他"].PixelArea += pixelArea; statArea["其他"].FireArea += fireRate * pixelArea; } else { statArea.Add("其他", new FireAreaInfo(1, pixelArea, fireRate * pixelArea)); } } else { priviceNum = priviceNum * 10000; privice = xianJieDictionary.GetPixelName(priviceNum); if (statArea.ContainsKey(privice)) { statArea[privice].PixelCount++; statArea[privice].PixelArea += pixelArea; statArea[privice].FireArea += fireRate * pixelArea; } else { statArea.Add(privice, new FireAreaInfo(1, pixelArea, fireRate * pixelArea)); } } } } } return(statArea); } }
private Dictionary <string, FireAreaInfo> StatUseTypeArea(string[] plstFiles) { Dictionary <string, FireAreaInfo> statArea = new Dictionary <string, FireAreaInfo>(); using (IRasterDictionaryTemplate <byte> landTypeDictionary = RasterDictionaryTemplateFactory.CreateLandRasterTemplate()) { foreach (string file in plstFiles) { string[] lines = File.ReadAllLines(file); foreach (string line in lines) { string[] infos = line.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries); if (infos != null && infos.Length == 12) { //按行进行统计 //前两位为省标识 string useType = infos[5].Trim(); float pixelArea, fireRate; if (!float.TryParse(infos[6], out pixelArea) || !float.TryParse(infos[7], out fireRate)) { continue; } if (useType == "0") { if (statArea.ContainsKey("其他")) { statArea["其他"].PixelCount++; statArea["其他"].PixelArea += pixelArea; statArea["其他"].FireArea += fireRate * pixelArea; } else { statArea.Add("其他", new FireAreaInfo(1, pixelArea, fireRate * pixelArea)); } } else { Byte useTypeNum = Byte.Parse(useType); useType = landTypeDictionary.GetPixelName(useTypeNum); if (statArea.ContainsKey(useType)) { statArea[useType].PixelCount++; statArea[useType].PixelArea += pixelArea; statArea[useType].FireArea += fireRate * pixelArea; } else { statArea.Add(useType, new FireAreaInfo(1, pixelArea, fireRate * pixelArea)); } } } } } return(statArea); } }
private Dictionary <string, FireAreaInfo> StatCountyArea(string[] plstFiles) { Dictionary <string, FireAreaInfo> statArea = new Dictionary <string, FireAreaInfo>(); IRasterDictionaryTemplate <int> xianJieDictionary = RasterDictionaryTemplateFactory.CreateXjRasterTemplate(); foreach (string file in plstFiles) { string[] lines = File.ReadAllLines(file); foreach (string line in lines) { string[] infos = line.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries); if (infos != null && infos.Length == 12) { //按行进行统计 //前两位为省标识 string county = infos[4].Trim(); float pixelArea, fireRate; if (!float.TryParse(infos[6], out pixelArea) || !float.TryParse(infos[7], out fireRate)) { continue; } if (county == "0") { if (statArea.ContainsKey("其他")) { statArea["其他"].PixelCount++; statArea["其他"].PixelArea += pixelArea; statArea["其他"].FireArea += fireRate * pixelArea; } else { statArea.Add("其他", new FireAreaInfo(1, pixelArea, fireRate * pixelArea)); } } else { int countyNum = Int32.Parse(county); county = xianJieDictionary.GetPixelName(countyNum); if (statArea.ContainsKey(county)) { statArea[county].PixelCount++; statArea[county].PixelArea += pixelArea; statArea[county].FireArea += fireRate * pixelArea; } else { statArea.Add(county, new FireAreaInfo(1, pixelArea, fireRate * pixelArea)); } } } } } return(statArea); }
private void LoadSecondaryInfos() { _xianJieDictionary = RasterDictionaryTemplateFactory.CreateXjRasterTemplate(); _landTypeDictionary = RasterDictionaryTemplateFactory.CreateLandRasterTemplate(); }
public FirePixelInfoListGenerator() { _xianJieDictionary = RasterDictionaryTemplateFactory.CreateXjRasterTemplate(); _landTypeDictionary = RasterDictionaryTemplateFactory.CreateLandRasterTemplate(); }