Esempio n. 1
0
        private void btnGO_Click(object sender, EventArgs e)
        {
            string fileName;
            string shpFile;
            int    startX, endX;
            string shpDir;

             
            if (bDataPath == true)
            {
                fileName = txtOutData.Text;
                shpDir   = fileName.Substring(0, fileName.LastIndexOf("\\"));
                startX   = fileName.LastIndexOf("\\");
                endX     = fileName.Length;
                shpFile  = fileName.Substring(startX + 1, endX - startX - 1);
            }
            else
            {
                shpDir  = txtOutData.Text;
                shpFile = "象素统计栅格";
            }
            try
            {
                IRasterBandCollection pLocalCollection = new  RasterClass();
                ILocalOp pLocalOp = new RasterLocalOpClass();
                for (int i = 0; i <= listBoxAddedLayer.Items.Count - 1; i++)
                {
                    IRaster        pInRaster  = GetRSLyrFromMapLyr(listBoxAddedLayer.Items[i].ToString().Trim());
                    IRasterDataset pRasterGeo = pInRaster as IRasterDataset;
                    pLocalCollection.AppendBand(pRasterGeo as IRasterBand);
                }
                string       sMethod      = comboBoxMethod.Text;
                IRasterLayer pRasterLayer = new RasterLayerClass();
                IRaster      pOutRaster   = null;
                switch (sMethod)
                {
                case "Majority":
                    pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMajority) as IRaster;
                    break;

                case "Maximum":
                    pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMaximum) as IRaster;
                    break;

                case "Mean":
                    pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMean) as IRaster;
                    break;

                case "Median":
                    pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMedian) as IRaster;
                    break;

                case "Minimum":
                    pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMinimum) as IRaster;
                    break;

                case "Minority":
                    pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMinority) as IRaster;
                    break;

                case "Range":
                    pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsRange) as IRaster;
                    break;

                case "Standard Deviation":
                    pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsStd) as IRaster;
                    break;

                case "Sum":
                    pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsSum) as IRaster;
                    break;

                case "Variety":
                    pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsVariety) as IRaster;
                    break;
                }
                pRasterLayer.Name = "象素统计栅格";
                Utility.ConvertRasterToRsDataset(shpDir, pOutRaster, "象素统计栅格");
                pRasterLayer = Utility.SetStretchRenderer(pOutRaster);
                pMainFrm.getMapControl().AddLayer(pRasterLayer, 0);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Esempio n. 2
0
        private void btnGO_Click(object sender, EventArgs e)
        {
            string fileName;
            string shpFile;
            int startX, endX;
            string shpDir;
              ��
                if (bDataPath == true)
                {
                    fileName = txtOutData.Text;
                    shpDir = fileName.Substring(0, fileName.LastIndexOf("\\"));
                    startX = fileName.LastIndexOf("\\");
                    endX = fileName.Length;
                    shpFile = fileName.Substring(startX + 1, endX - startX - 1);
                }
                else
                {
                    shpDir = txtOutData.Text;
                    shpFile = "����ͳ��դ��";
                }
            try
            {
               IRasterBandCollection pLocalCollection=new  RasterClass();
                ILocalOp pLocalOp=new RasterLocalOpClass();
                for (int i = 0; i <= listBoxAddedLayer.Items.Count - 1; i++)
                {
                    IRaster pInRaster=GetRSLyrFromMapLyr(listBoxAddedLayer.Items[i].ToString().Trim());
                    IRasterDataset pRasterGeo = pInRaster as IRasterDataset;
                    pLocalCollection.AppendBand(pRasterGeo as IRasterBand );
                }
                string sMethod = comboBoxMethod.Text;
                IRasterLayer pRasterLayer = new RasterLayerClass();
                IRaster pOutRaster = null;
                switch (sMethod)
                {
                    case "Majority":
                        pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMajority) as IRaster;
                        break;
                    case "Maximum":
                        pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMaximum) as IRaster;
                        break;
                    case "Mean":
                        pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMean) as IRaster;
                        break;
                    case "Median":
                        pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMedian) as IRaster;
                        break;
                    case "Minimum":
                        pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMinimum ) as IRaster;
                        break;
                    case "Minority":
                        pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsMinority ) as IRaster;
                        break;
                    case "Range":
                        pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsRange ) as IRaster;
                        break;
                    case "Standard Deviation":
                        pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsStd ) as IRaster;
                        break;
                    case "Sum":
                        pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsSum ) as IRaster;
                        break;
                    case "Variety":
                        pOutRaster = pLocalOp.LocalStatistics(pLocalCollection as IGeoDataset, esriGeoAnalysisStatisticsEnum.esriGeoAnalysisStatsVariety) as IRaster;
                        break;
                }
                pRasterLayer.Name = "����ͳ��դ��";
                Utility.ConvertRasterToRsDataset(shpDir, pOutRaster, "����ͳ��դ��");
                pRasterLayer = Utility.SetStretchRenderer(pOutRaster);
                pMainFrm.getMapControl().AddLayer(pRasterLayer, 0);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());

            }
        }