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("数据镶嵌操作失败"); } }
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("波段合成失败"); } }
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("多波段合成操作失败"); } }
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("未选择需要重采样的栅格数据"); } }
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("输入栅格不能为空"); } }
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("裁剪失败"); } }