ArcGIS栅格处�总结 - 百度文库

loading ·ÖÏí 2026-10-17 ÏÂÔØÎĵµ

ILogicalOp pLogicalop = newRasterMathOpsClass();//»ñµÃILogicalop½Ó¿Ú£¬ÓÃÓÚÊýѧÔËËã

IRaster pOutr = pLogicalop.IsNull(pRaster asIGeoDataset ) asIRaster ;//Èç¹ûÊý¾Ýȱʧ£¬ÄÇôÊä³öΪ1£¬·ñÔòÊä³öΪ0.

Con¿ÉÒÔ½«Õ¤¸ñÊý¾ÝÖеÄijЩֵ£¨Í¨¹ýÌõ¼þ²éѯ£©ÉèÖÃΪÏëÒªµÄÇøÓò£¬½«Ä³Ð©²»ÏëÒªµÄÇøÓòÉèÖÃΪÆäËüÖµ£¨¿É

ÒÔÊÇ×Ô¼ºÉèÖõÄÒ²¿ÉÒÔÊÇÊäÈëµÄ¹Ì¶¨Öµ£©

IConditionalOp:·½·¨Con£¬ IConditionalOp.

Con(IGeoDatasetconditionalRaster,IGeoDatasettrueRaster, ref objectfalseRaster)·½·¨£º

²»¹ÜconditionalRaster

ÊǽöÓÐ0ºÍ1µÄÖµ£¬»¹ÊÇÓжà¸öÖµµÄÕ¤¸ñÊý¾Ý£¬

0µÄÕ¤¸ñÏñ

Ö»ÒªÊÇÖµ´óÓÚ0µÄÕ¤¸ñÏñËØÖµ£¬¸³µÄÖµ¶¼ÊÇtrueRaster£¬·²ÊÇÖµµÈÓÚ

ËØÖµÄÇô¸³ÖµÎªfalseRaster£¬falseRaster¿ÉÒÔΪһ¸ö³£Êý£¬Ò²¿ÉÒÔΪһ¸öÕ¤¸ñÊý¾Ý¼¯£¨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, \);

ʹÓá°ÉèΪ¿Õº¯Êý¡±½«ÖµÉèÖÃΪ NoData£ºÔÚspatial analystϵÄconditionalϵÄset null¡£

Òª½«Öµ´óÓÚ 5 µÄÏñÔªÉèÖÃΪ NoData£¬²¢ÇÒ±£ÁôÆäËûÏñÔªµÄԭʼֵ£¬ÇëÔÚ¹¤¾ß¶Ô»°¿òÖÐʹÓÃÒÔϲÎÊý£º ÊäÈëÌõ¼þÕ¤¸ñ£ºInRas1 ±í´ïʽ£º\Ìõ¼þ)

ÇóÖµ½á¹ûΪ False µÄÊäÈëÕ¤¸ñ»ò³£ÊýÖµ£ºInRas1£¨¼´²»·ûºÏÌõ¼þµÄÏñËØÖµÉèÖÃΪÊäÈëÕ¤¸ñ¶ÔÓ¦µÄÖµ£© Êä³öÕ¤¸ñ£ºsetnull_1

IConditionalOp:Ö»ÊÇÕë¶ÔÕ¤¸ñÊý¾ÝÖ»ÓÐÁ½¸öÖµµÄ0ºÍ1µÄÕ¤¸ñ£¬Èç¹ûÖ»ÓÐ0ºÍ1£¬ÄÇô½«ÖµÎª1µÄÉèÖÃΪ¿Õ£¬ÖµÎª0µÄÈÔȻΪ0£¬»òÕßÊÇÆäËüÕ¤¸ñ£¨False Raster£©Êý¾ÝÏàӦλÖõÄÖµ¡£»òÕßÕ¤¸ñÊý¾ÝÓжà¸öÖµ£¬0ºÍ´óÓÚ0Á½À࣬µ±Õ¤¸ñÊý¾ÝÓжà¸öֵʱ£¬Öµ´óÓÚ0µÄÉèÖÃΪ¿Õ£¬ÖµµÈÓÚ0µÄÈÔÈ»ÊÇ0»òÕßÊÇÆäËüÕ¤¸ñÊý¾Ý£¨False Raster£©ÏàӦλÖõÄÖµ¡£ºÍconditionalϵÄset nullÀí½â²î²»¶à£¬µ«ÊÇÓÐÇø±ð£¬²»ÄÜÉèÖá±sqlÓï¾ä¡±¡£½«´óÓÚ0µÄÖµ±äΪnodata£¬½«µÈÓÚ0µÄÖµ±äΪ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£¬¶ø²»ÊÇת»»Îªirasterdataset£¬ÓÃisaveasÀ´±£´æ´æ´¢ÔÚÄÚ´æÖеÄÕ¤¸ñÊý¾Ý¡£ 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£©À´µ¼³ö

µØÍ¼×ø±ê×îСX¡¢YÖµÔÚ×óϽǣ¬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();


ArcGIS栅格处ç�†æ€»ç»“ - 百度文库.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ
ËÑË÷¸ü¶à¹ØÓÚ£º ArcGIS栅格处ç�†æ€»ç»“ - 百度文库 µÄÎĵµ
Ïà¹ØÍÆ¼ö
Ïà¹ØÔĶÁ