ArcGIS栅格处理总结 - 百度文库 ϵͷ

ʱ : ArcGIS栅格处理总结 - 百度文库ϿʼĶ

ILogicalOp pLogicalop = newRasterMathOpsClass();//ILogicalopӿڣѧ

IRaster pOutr = pLogicalop.IsNull(pRaster asIGeoDataset ) asIRaster ;//ȱʧôΪ1Ϊ0.

ConԽդеijЩֵͨѯΪҪ򣬽ijЩҪΪֵ

ԼõҲĹ̶ֵ

IConditionalOp:Con IConditionalOp.

Con(IGeoDatasetconditionalRaster,IGeoDatasettrueRaster, ref objectfalseRaster)

conditionalRaster

ǽ01ֵжֵդݣ

ֻҪֵ0դֵֵtrueRasterֵ

ֵôֵΪfalseRasterfalseRasterΪһҲΪһդݼRasterӦֵ

IConditionalOp. Con

IWorkspaceFactory pWksfact = newRasterWorkspaceFactoryClass(); IRasterWorkspace pRwks = pWksfact.OpenFromFile(@\դݴ\\Temp\\data\, 0)

asIRasterWorkspace ;

IRaster pRaster = pRwks.OpenRasterDataset(\).CreateDefaultRaster(); IRaster pSraster = newRasterClass(); //object pint = 100;//objectΪ

object pRa = pRaster;//objectΪդݼ

IConditionalOp pConditionalop = newRasterConditionalOpClass();

//pSraster = pConditionalop.Con(pRaster as IGeoDataset, pRaster as IGeoDataset , ref pint) as IRaster ;//objectΪ

pSraster = pConditionalop.Con(pRaster asIGeoDataset, pRaster asIGeoDataset, ref pRa) asIRaster;//objectΪդݼ ISaveAs pSa = pSraster asISaveAs;

pSa.SaveAs(\, pRwks asIWorkspace, \);

ʹáΪպֵΪ NoDataspatial analystµconditionalµset null

Ҫֵ 5 ԪΪ NoDataұԪԭʼֵڹ߶Իʹ² դInRas1 ʽ\)

ֵΪ False դֵInRas1ֵΪդӦֵ դsetnull_1

IConditionalOp:ֻդֵֻ01դֻ01ôֵΪ1ΪգֵΪ0ȻΪ0դFalse RasterӦλõֵդжֵ0ʹ0࣬դжֵʱֵ0Ϊգֵ0Ȼ0դݣFalse RasterӦλõֵconditionalµset null࣬𣬲ásql䡱0ֵΪnodata0ֵΪfalserasterդֵ õĽӿ IConditionalOpǣSetNull

Ӧ Ĵ룺

IWorkspaceFactory pWksfact = newRasterWorkspaceFactoryClass();

IRasterWorkspace pRwks = pWksfact.OpenFromFile(@\,0) asIRasterWorkspace ; IRaster2 pRaster = pRwks.OpenRasterDataset(\).CreateDefaultRaster()

asIRaster2;

IRaster2 pR2 = pRwks.OpenRasterDataset(\).CreateDefaultRaster() asIRaster2; IConditionalOp pCondi = newRasterConditionalOpClass(); IGeoDataset pDataset = pRaster asIGeoDataset; IGeoDataset pFdataset = pR2 asIGeoDataset;

IGeoDataset pOutdataset = pCondi.SetNull(pDataset ,pFdataset ); ISaveAs pSa = pOutdataset asISaveAs;

pSa.SaveAs( \,pRwks asIWorkspace ,\ );

ͨһķΧȡդݣ

IWorkspaceFactory pWksfact = newRasterWorkspaceFactoryClass();

IRasterWorkspace pRwks = pWksfact.OpenFromFile(@\,0) asIRasterWorkspace ; IRaster2 pRaster = pRwks.OpenRasterDataset(\).CreateDefaultRaster() asIRaster2;

IRasterProps pRprops = pRaster asIRasterProps ;

IExtractionOp pExtra = newRasterExtractionOpClass();

IWorkspaceFactory pSwksfact = newShapefileWorkspaceFactoryClass(); IFeatureWorkspace pFwks = pSwksfact.OpenFromFile(@\, 0) asIFeatureWorkspace ;

IFeatureClass pFclass = pFwks.OpenFeatureClass(\); IFeatureCursor pFcur = pFclass.Search(null,false ); IFeature pFeature = pFcur.NextFeature();

IPolygon pPolygon = pFeature.Shape asIPolygon ;

IWorkspace pOutwks = pWksfact.OpenFromFile(@\, 0); IGeoDataset pGeodataset = pRaster asIGeoDataset;

IGeoDataset pOutgd = pExtra.Polygon(pGeodataset ,pPolygon,true ) asIGeoDataset ;//trueָڵդȡfalseָդȡ IRaster pOutr = pOutgd asIRaster;//GeodatasetתΪirasterתΪirasterdatasetisaveas洢ڴеդݡ ISaveAs pSa = (ISaveAs ) pOutr ;

pSa.SaveAs(\, pOutwks, \);//poutwksһҪդռ乤򿪵Ĺռ䣬ռ乤򿪵Ĺռ䡣

ͨȡդ

IWorkspaceFactory pWksfact = newRasterWorkspaceFactoryClass();

IRasterWorkspace pRwks = pWksfact.OpenFromFile(@\,0) asIRasterWorkspace ; IRaster2 pRaster = pRwks.OpenRasterDataset(\).CreateDefaultRaster() asIRaster2;

IRasterProps pRprops = pRaster asIRasterProps ;

IExtractionOp pExtra = newRasterExtractionOpClass();

IQueryFilter pQueryfilter = newQueryFilterClass () ;//ԲѯѯֵǶٵء

pQueryfilter.WhereClause = \;//زѯ

IRasterDescriptor pRdescriptor = newRasterDescriptorClass();//դӿڡ pRdescriptor.Create(pRaster asIRaster, pQueryfilter, \); IWorkspaceFactory pRwks2 = newRasterWorkspaceFactoryClass(); IWorkspace pWks2 = pRwks2.OpenFromFile(@\, 0);

IRaster pOut2 = pExtra.Attribute(pRdescriptor) asIRaster;//õդݸiraster

ISaveAs poUTas = pOut2 asISaveAs ;

poUTas.SaveAs(\,pWks2 ,\);

ͨΧRectangleȡդ

IWorkspaceFactory pWksfact = newRasterWorkspaceFactoryClass();

IRasterWorkspace pRwks = pWksfact.OpenFromFile(@\,0) asIRasterWorkspace ; IRaster2 pRaster = pRwks.OpenRasterDataset(\).CreateDefaultRaster() asIRaster2;

IRasterProps pRprops = pRaster asIRasterProps ;

IWorkspaceFactory pSwksfact = newShapefileWorkspaceFactoryClass(); IFeatureWorkspace pFwks = pSwksfact.OpenFromFile(@\, 0) asIFeatureWorkspace ;

IFeatureClass pFclass = pFwks.OpenFeatureClass(\); IFeatureCursor pFcur = pFclass.Search(null, false); IFeature pFeature = pFcur.NextFeature(); IEnvelope pEnv = pFeature.Extent; //ȡΧ

IExtractionOp pEx = newRasterExtractionOpClass();

IRaster pOraster = pEx.Rectangle(pRaster asIGeoDataset, pEnv, true) asIRaster ; ISaveAs pSa = pOraster asISaveAs;//

pSa.SaveAs(\,pRwks asIWorkspace ,\);

ͨΣRectangle

ͼСXYֵ½ǣIEnvelopeСֵ½ǣֵϽǣդСֵϽǣֵ½ǡ double pXmin, pXmax, pYmin, pYmax; IEnvelope pEnv = newEnvelopeClass();

pR2.PixelToMap(pW, pH + pRprops.Height, out pXmin, out pYmin);//xyֵСֵ pR2.PixelToMap(pW + pRprops.Width ,pH,out pXmax ,out pYmax );//xyֵֵ pEnv.PutCoords(pXmin, pYmin, pXmax, pYmax);//IEnvelopeķΧ IExtractionOp pExtractop = newRasterExtractionOpClass();

IRaster pSraster = pExtractop.Rectangle(pR asIGeoDataset, pEnv, true) asIRaster; ISaveAs pSa = pSraster asISaveAs;

pSa.SaveAs(\ + Pc , pRwks asIWorkspace, \);

ͨդȡդ

IWorkspaceFactory pWksfact = newRasterWorkspaceFactoryClass();