arcengine调gp实现栅格重分类(复制过去改改路径就可以用)
Geoprocessor gp = new Geoprocessor();
gp.OverwriteOutput = true;
Reclassify Rec = new Reclassify();
string Remap = "";
IWorkspaceFactory2 workspaceFactory = new FileGDBWorkspaceFactoryClass();
IWorkspace pWorkspace = workspaceFactory.OpenFromFile(@"D:\test\TEST.gdb", 0);
IRasterWorkspaceEx pRasterWorkspace = (IRasterWorkspaceEx)pWorkspace;
IRasterDataset rasterDataset = pRasterWorkspace.OpenRasterDataset("muchi");
IRasterLayer rasterLayer = new RasterLayerClass();
rasterLayer.CreateFromDataset(rasterDataset);
IRaster pRaster = rasterLayer.Raster;
IRasterBandCollection pRBC = (IRasterBandCollection)pRaster;
IRasterBand pRasterband = pRBC.Item(0);
IRasterStatistics pRS = pRasterband.Statistics;
double max = pRS.Maximum;
double min = pRS.Minimum;
//此处我的数据是max=1903;min=290
double averge = (max-min) / 10;
for(double i = 0; i <10; i++)
{
double start = min + averge * i;
double end = min + averge * (i + 1);
Remap +=start+" "+end +" "+i +";";
MessageBox.Show(Remap);
}
Rec.in_raster = @"D:\test\TEST.gdb\muchi";
Rec.reclass_field = "Value";
Rec.remap = Remap;
Rec.out_raster = @"D:\test\TEST.gdb\muchi_fenlei";
gp.Execute(Rec, null);
MessageBox.Show("OK");