Exemplo n.º 1
0
        private void btnok_Click(object sender, EventArgs e)
        {
            ESRI.ArcGIS.DataManagementTools.MosaicToNewRaster m2nr = new MosaicToNewRaster();
            m2nr.input_rasters   = GetLayerList();
            m2nr.output_location = System.IO.Path.GetDirectoryName(textbaocun.Text);
            m2nr.pixel_type      = xiangsuleixing.Text;
            m2nr.number_of_bands = Convert.ToInt32(boduanshu.Text);
            m2nr.raster_dataset_name_with_extension = System.IO.Path.GetFileName(textbaocun.Text);
            m2nr.mosaic_method        = xiangyun.Text;
            m2nr.mosaic_colormap_mode = xiangsebiao.Text;

            Geoprocessor gp = new Geoprocessor();

            gp.OverwriteOutput = true;
            IGeoProcessorResult gpResult = gp.Execute(m2nr, null) as IGeoProcessorResult;

            if (gpResult.Status == esriJobStatus.esriJobSucceeded)
            {
                DialogResult dr = MessageBox.Show("数据镶嵌操作成功");
                if (dr == DialogResult.OK)
                {    //结果添加到工作空间
                    if (addresult.Checked == true)
                    {
                        string fileFullName = textbaocun.Text;
                        if (fileFullName == "")
                        {
                            return;
                        }
                        string            filePathName      = System.IO.Path.GetDirectoryName(fileFullName);
                        string            fileName          = System.IO.Path.GetFileName(fileFullName);
                        IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactory();                    //创建工作空间工厂
                        IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(filePathName, 0); //打开工作空间
                        IRasterWorkspace  pRasterWorkspace  = pWorkspace as IRasterWorkspace;                  //创建栅格工作空间
                        IRasterDataset    pRasterDataset    = pRasterWorkspace.OpenRasterDataset(fileName);    //创建Dataset
                        //影像金字塔创建与判断
                        IRasterPyramid2 pRasPymid = pRasterDataset as IRasterPyramid2;
                        if (pRasPymid != null)
                        {
                            if (!(pRasPymid.Present))
                            {
                                pRasPymid.Create();//创建金字塔
                            }
                        }
                        IRaster      pRaster      = pRasterDataset.CreateDefaultRaster();
                        IRasterLayer pRasterLayer = new RasterLayer();
                        pRasterLayer.CreateFromRaster(pRaster);
                        ILayer pLayer = pRasterLayer as ILayer;
                        axmapcontrol.AddLayer(pLayer, 0);
                    }
                }
            }
            else
            {
                MessageBox.Show("数据镶嵌操作失败");
            }
        }
Exemplo n.º 2
0
        private void button4_Click(object sender, EventArgs e)
        {
            CompositeBands cb = new CompositeBands();

            cb.in_rasters = GetLayerList();
            cb.out_raster = textBox1.Text;
            Geoprocessor gp = new Geoprocessor();

            gp.OverwriteOutput = true;
            IGeoProcessorResult gpResult = gp.Execute(cb, null) as IGeoProcessorResult;

            if (gpResult.Status == esriJobStatus.esriJobSucceeded)
            {
                DialogResult dr = MessageBox.Show("波段合成成功");
                if (dr == DialogResult.OK)
                {    //结果添加到工作空间
                    if (checkBox1.Checked == true)
                    {
                        string fileFullName = textBox1.Text;
                        if (fileFullName == "")
                        {
                            return;
                        }
                        string            filePathName      = System.IO.Path.GetDirectoryName(fileFullName);
                        string            fileName          = System.IO.Path.GetFileName(fileFullName);
                        IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactory();                    //创建工作空间工厂
                        IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(filePathName, 0); //打开工作空间
                        IRasterWorkspace  pRasterWorkspace  = pWorkspace as IRasterWorkspace;                  //创建栅格工作空间
                        IRasterDataset    pRasterDataset    = pRasterWorkspace.OpenRasterDataset(fileName);    //创建Dataset
                        //影像金字塔创建与判断
                        IRasterPyramid2 pRasPymid = pRasterDataset as IRasterPyramid2;
                        if (pRasPymid != null)
                        {
                            if (!(pRasPymid.Present))
                            {
                                pRasPymid.Create();//创建金字塔
                            }
                        }
                        IRaster      pRaster      = pRasterDataset.CreateDefaultRaster();
                        IRasterLayer pRasterLayer = new RasterLayer();
                        pRasterLayer.CreateFromRaster(pRaster);
                        ILayer pLayer = pRasterLayer as ILayer;
                        axmapcontrol.AddLayer(pLayer, 0);
                    }
                }
            }
            else
            {
                MessageBox.Show("波段合成失败");
            }
        }
Exemplo n.º 3
0
        private void btnok_Click(object sender, EventArgs e)
        {
            ESRI.ArcGIS.DataManagementTools.CreatePansharpenedRasterDataset cpr = new CreatePansharpenedRasterDataset();

            string inraster            = GetLayerList(quanse.Text);
            string inpanchromaticimage = GetLayerList(duoguangpu.Text);

            cpr.in_raster             = inraster;
            cpr.in_panchromatic_image = inpanchromaticimage;
            cpr.out_raster_dataset    = textbaocun.Text;

            cpr.red_channel      = Convert.ToInt32(redboduan.Text.ToString());
            cpr.green_channel    = Convert.ToInt32(greenboduan.Text.ToString());
            cpr.blue_channel     = Convert.ToInt32(blueboduan.Text.ToString());
            cpr.infrared_channel = 1;

            cpr.red_weight         = Convert.ToDouble(redquanzhong.Text.ToString());
            cpr.green_weight       = Convert.ToDouble(greenquanzhong.Text.ToString());
            cpr.blue_weight        = Convert.ToDouble(bluequanzhong.Text.ToString());
            cpr.infrared_weight    = Convert.ToDouble(jinhongwaiquanzhong.Text.ToString());
            cpr.pansharpening_type = ronghefangfa.Text;
            cpr.sensor             = chuanganqi.Text;

            Geoprocessor gp = new Geoprocessor();

            gp.OverwriteOutput = true;
            object obj = gp.Execute(cpr, null);
            IGeoProcessorResult gpResult = obj as IGeoProcessorResult;

            if (gpResult.Status == esriJobStatus.esriJobSucceeded)
            {
                DialogResult dr = MessageBox.Show("多波段合成操作成功");
                if (dr == DialogResult.OK)
                {    //结果添加到工作空间
                    if (addResult.Checked == true)
                    {
                        string fileFullName = textbaocun.Text;
                        if (fileFullName == "")
                        {
                            return;
                        }
                        string            filePathName      = System.IO.Path.GetDirectoryName(fileFullName);
                        string            fileName          = System.IO.Path.GetFileName(fileFullName);
                        IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactory();                    //创建工作空间工厂
                        IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(filePathName, 0); //打开工作空间
                        IRasterWorkspace  pRasterWorkspace  = pWorkspace as IRasterWorkspace;                  //创建栅格工作空间
                        IRasterDataset    pRasterDataset    = pRasterWorkspace.OpenRasterDataset(fileName);    //创建Dataset
                        //影像金字塔创建与判断
                        IRasterPyramid2 pRasPymid = pRasterDataset as IRasterPyramid2;
                        if (pRasPymid != null)
                        {
                            if (!(pRasPymid.Present))
                            {
                                pRasPymid.Create();//创建金字塔
                            }
                        }
                        IRaster      pRaster      = pRasterDataset.CreateDefaultRaster();
                        IRasterLayer pRasterLayer = new RasterLayer();
                        pRasterLayer.CreateFromRaster(pRaster);
                        ILayer pLayer = pRasterLayer as ILayer;
                        axmapcontrol.AddLayer(pLayer, 0);
                    }
                }
            }
            else
            {
                MessageBox.Show("多波段合成操作失败");
            }
        }
Exemplo n.º 4
0
 private void button2_Click(object sender, EventArgs e)
 {
     if (comboBox1.Text != "")
     {
         if (textBox1.Text != "")
         {
             ESRI.ArcGIS.DataManagementTools.Resample rsp = new Resample();
             rsp.in_raster  = getlayer(comboBox1.Text);
             rsp.out_raster = textBox1.Text;
             //重采样技术
             rsp.resampling_type = comboBox2.Text;
             //重采样分辨率
             rsp.cell_size = Int32.Parse(textBox2.Text) * Int32.Parse(textBox3.Text);
             Geoprocessor gp = new Geoprocessor();
             gp.OverwriteOutput = true;
             object obj = gp.Execute(rsp, null);
             IGeoProcessorResult pgeoprcessorresult = obj as IGeoProcessorResult;
             if (pgeoprcessorresult.Status == esriJobStatus.esriJobSucceeded)
             {
                 DialogResult dr = MessageBox.Show("重采样操作成功");
                 if (dr == DialogResult.OK)
                 {    //结果添加到工作空间
                     if (checkBox1.Checked == true)
                     {
                         string fileFullName = textBox1.Text;
                         if (fileFullName == "")
                         {
                             return;
                         }
                         string            filePathName      = System.IO.Path.GetDirectoryName(fileFullName);
                         string            fileName          = System.IO.Path.GetFileName(fileFullName);
                         IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactory();                    //创建工作空间工厂
                         IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(filePathName, 0); //打开工作空间
                         IRasterWorkspace  pRasterWorkspace  = pWorkspace as IRasterWorkspace;                  //创建栅格工作空间
                         IRasterDataset    pRasterDataset    = pRasterWorkspace.OpenRasterDataset(fileName);    //创建Dataset
                         //影像金字塔创建与判断
                         IRasterPyramid2 pRasPymid = pRasterDataset as IRasterPyramid2;
                         if (pRasPymid != null)
                         {
                             if (!(pRasPymid.Present))
                             {
                                 pRasPymid.Create();//创建金字塔
                             }
                         }
                         IRaster      pRaster      = pRasterDataset.CreateDefaultRaster();
                         IRasterLayer pRasterLayer = new RasterLayer();
                         pRasterLayer.CreateFromRaster(pRaster);
                         ILayer pLayer = pRasterLayer as ILayer;
                         axmapcontrol.AddLayer(pLayer, 0);
                     }
                 }
             }
             else
             {
                 MessageBox.Show("重采样操作失败");
             }
         }
         else
         {
             MessageBox.Show("未选择需要保存的数据路径");
         }
     }
     else
     {
         MessageBox.Show("未选择需要重采样的栅格数据");
     }
 }
Exemplo n.º 5
0
 private void button1_Click(object sender, EventArgs e)
 {
     if (comboBox1.Text != "")
     {
         if (textBox1.Text != "")
         {
             ESRI.ArcGIS.DataManagementTools.CopyRaster copyRst = new CopyRaster();
             copyRst.in_raster         = getlayer(comboBox1.Text);
             copyRst.out_rasterdataset = textBox1.Text.ToString();
             Geoprocessor gp = new Geoprocessor();
             gp.OverwriteOutput = true;
             IGeoProcessorResult gpresult = gp.Execute(copyRst, null) as IGeoProcessorResult;
             if (gpresult.Status == esriJobStatus.esriJobSucceeded)
             {
                 DialogResult dr = MessageBox.Show("格式转化操作成功");
                 if (dr == DialogResult.OK)
                 {    //结果添加到工作空间
                     if (checkBox1.Checked == true)
                     {
                         string fileFullName = textBox1.Text;
                         if (fileFullName == "")
                         {
                             return;
                         }
                         string            filePathName      = System.IO.Path.GetDirectoryName(fileFullName);
                         string            fileName          = System.IO.Path.GetFileName(fileFullName);
                         IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactory();                    //创建工作空间工厂
                         IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(filePathName, 0); //打开工作空间
                         IRasterWorkspace  pRasterWorkspace  = pWorkspace as IRasterWorkspace;                  //创建栅格工作空间
                         IRasterDataset    pRasterDataset    = pRasterWorkspace.OpenRasterDataset(fileName);    //创建Dataset
                         //影像金字塔创建与判断
                         IRasterPyramid2 pRasPymid = pRasterDataset as IRasterPyramid2;
                         if (pRasPymid != null)
                         {
                             if (!(pRasPymid.Present))
                             {
                                 pRasPymid.Create();//创建金字塔
                             }
                         }
                         IRaster      pRaster      = pRasterDataset.CreateDefaultRaster();
                         IRasterLayer pRasterLayer = new RasterLayer();
                         pRasterLayer.CreateFromRaster(pRaster);
                         ILayer pLayer = pRasterLayer as ILayer;
                         axmapcontrol.AddLayer(pLayer, 0);
                     }
                 }
             }
             else
             {
                 MessageBox.Show("格式转化操作失败");
             }
         }
         else
         {
             MessageBox.Show("保存路径不能为空");
         }
     }
     else
     {
         MessageBox.Show("输入栅格不能为空");
     }
 }
Exemplo n.º 6
0
        private void button3_Click(object sender, EventArgs e)
        {
            ESRI.ArcGIS.DataManagementTools.Clip clp = new Clip();
            clp.in_raster  = getlayer(comboBox1.Text.ToString());
            clp.out_raster = textBoxsave.Text;
            if (checkBox1.Checked == true)
            {
                IGPUtilities gputilities = new GPUtilitiesClass();
                IEnvelope    penvelope   = 遥感数据管理系统.Form1.envelope.penv;
                clp.rectangle = string.Format("{0} {1} {2} {3} ", penvelope.XMin, penvelope.YMin, penvelope.XMax, penvelope.YMax);
            }
            else
            {
                IGPUtilities gputilities = new GPUtilitiesClass();
                IGeoDataset  pgeodataset = gputilities.OpenRasterDatasetFromString(getlayer(comboBox2.Text.ToString())) as IGeoDataset;
                IEnvelope    penvelope   = pgeodataset.Extent;
                clp.in_template_dataset = getlayer(comboBox2.Text.ToString());
                clp.rectangle           = string.Format("{0} {1} {2} {3} ", penvelope.XMin, penvelope.YMin, penvelope.XMax, penvelope.YMax);
            }
            clp.clipping_geometry = "true";
            Geoprocessor gp = new Geoprocessor();

            gp.OverwriteOutput = true;
            IGeoProcessorResult gpresult = gp.Execute(clp, null) as IGeoProcessorResult;

            if (gpresult.Status == esriJobStatus.esriJobSucceeded)
            {
                DialogResult dl = MessageBox.Show("裁剪成功");
                if (dl == DialogResult.OK)
                {
                    if (checkBox3.Checked == true)
                    {
                        string fileFullName = textBoxsave.Text;
                        if (fileFullName == "")
                        {
                            return;
                        }
                        string            filePathName      = System.IO.Path.GetDirectoryName(fileFullName);
                        string            fileName          = System.IO.Path.GetFileName(fileFullName);
                        IWorkspaceFactory pWorkspaceFactory = new RasterWorkspaceFactory();                    //创建工作空间工厂
                        IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(filePathName, 0); //打开工作空间
                        IRasterWorkspace  pRasterWorkspace  = pWorkspace as IRasterWorkspace;                  //创建栅格工作空间
                        IRasterDataset    pRasterDataset    = pRasterWorkspace.OpenRasterDataset(fileName);    //创建Dataset
                        //影像金字塔创建与判断
                        IRasterPyramid2 pRasPymid = pRasterDataset as IRasterPyramid2;
                        if (pRasPymid != null)
                        {
                            if (!(pRasPymid.Present))
                            {
                                pRasPymid.Create();//创建金字塔
                            }
                        }
                        IRaster      pRaster      = pRasterDataset.CreateDefaultRaster();
                        IRasterLayer pRasterLayer = new RasterLayer();
                        pRasterLayer.CreateFromRaster(pRaster);
                        ILayer pLayer = pRasterLayer as ILayer;
                        axmapcontrol.AddLayer(pLayer, 0);
                    }
                }
            }
            else
            {
                MessageBox.Show("裁剪失败");
            }
        }