Example #1
0
        public List <double> ComEcoIndexCal()
        {
            #region 基础生态环境状况评价指标计算系数
            double[] ComSJZLI = new double[] { 511.2642131067, 0.35, 0.21, 0.28, 0.11, 0.04, 0.01 };
            double[] ComSYHYI = new double[] { 1, 1, 1, 1 };
            #endregion
            if (comIndexName.Count <= 0)
            {
                return(comEcoIndexResult);
            }
            comIndexFla = new IndexFormula(zoneClassArea);
            for (int i = 0; i < comIndexName.Count; i++)
            {
                #region 根据所选指标调用公式
                switch (comIndexName[i].ToString())
                {
                case "生境质量指数":
                    comEcoIndexResult.Add(comIndexFla.SJZLIndex(ComSJZLI));
                    break;

                case "林地覆盖率":
                    comEcoIndexResult.Add(comIndexFla.ForestAreaRatio(1));
                    break;

                case "草地覆盖率":
                    comEcoIndexResult.Add(comIndexFla.GrassAreaRatio(1));
                    break;

                case "耕地面积比":
                    comEcoIndexResult.Add(comIndexFla.FarmAreaRatio(1));
                    break;

                case "不透水地表面积比":
                    comEcoIndexResult.Add(comIndexFla.HardenSurfaceRatio(1));
                    break;

                case "耕地和建设用地面积比":
                    comEcoIndexResult.Add(comIndexFla.FarmConstructionAreaRatio(1));
                    break;

                case "水域湿地面积比":
                    comEcoIndexResult.Add(comIndexFla.WaterAreaRatio(1));
                    break;

                case "荒漠与自然裸露地表面积比":
                    comEcoIndexResult.Add(comIndexFla.DesertAreaRatio(1));
                    break;

                case "水源涵养指数":
                    comEcoIndexResult.Add(comIndexFla.SYHYIndex(ComSYHYI));
                    break;

                case "受保护区域面积比":
                    comEcoIndexResult.Add(comIndexFla.ProtectAreaRatio());
                    break;

                case "行、蓄、滞洪区域面积比":
                    comEcoIndexResult.Add(comIndexFla.FloodAreaRatio());
                    break;

                case "固沙草地、护坡灌草面积比":
                    comEcoIndexResult.Add(comIndexFla.SandFixationAreaRatio());
                    break;

                case "人均林地":
                    double pcf = 0;
                    if (PatchEcosystem.population != 0)
                    {
                        pcf = zoneClassArea.ForestArea / PatchEcosystem.population;
                    }
                    comEcoIndexResult.Add(pcf);
                    break;

                case "人均耕地":
                    double pca = 0;
                    if (PatchEcosystem.population != 0)
                    {
                        pca = zoneClassArea.FarmArea / PatchEcosystem.population;
                    }
                    comEcoIndexResult.Add(pca);
                    break;

                case "人均休闲用地":
                    double pcl = 0;
                    if (PatchEcosystem.population != 0)
                    {
                        pcl = zoneClassArea.ProtectArea / PatchEcosystem.population;
                    }
                    comEcoIndexResult.Add(pcl);
                    break;

                default:
                    break;
                }
                #endregion
            }
            return(comEcoIndexResult);
        }