Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 private void LoadSecondaryInfos()
 {
     _xianJieDictionary  = RasterDictionaryTemplateFactory.CreateXjRasterTemplate();
     _landTypeDictionary = RasterDictionaryTemplateFactory.CreateLandRasterTemplate();
 }
 public FirePixelInfoListGenerator()
 {
     _xianJieDictionary  = RasterDictionaryTemplateFactory.CreateXjRasterTemplate();
     _landTypeDictionary = RasterDictionaryTemplateFactory.CreateLandRasterTemplate();
 }