欢迎来到天天文库
浏览记录
ID:39464677
大小:55.00 KB
页数:11页
时间:2019-07-03
《arcengine栅格数据使用总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、arcengine栅格数据使用总结两个星期以来一直与栅格数据打交道,对AO的栅格部分应该有了一定的理解,下面是自己的一点体会,希望高手指教:-)1、栅格数据的存储类型栅格数据一般可以存储为ESRIGRID(由一系列文件组成),TIFF格式(包括一个TIF文件和一个AUX文件),IMAGINEImage格式在AE中一般调用ISaveAs接口来保存栅格数据2、栅格数据集和栅格编目的区别一个栅格数据集由一个或者多个波段(RasterBand)的数据组成,一个波段就是一个数据矩阵。对于格网数据(DEM数据)和单波段的影像数据,表现
2、为仅仅只有一个波段数据的栅格数据集,而对于多光谱影像数据则表现为具有多个波段的栅格数据集栅格编目(RasterCatalog)用于显示某个研究区域内各种相邻的栅格数据,这些相邻的栅格数据没有经过拼接处理合成一副大的影像图3、IRasterWorkspaceEx与IRasterWorkspace,IRsterWorkspace2的区别1).IRasteWorkspaceEx接口主要是用来读取GeoDatabase中的栅格数据集和栅格编目2).IRasterWorkspace,IRsterWorkspace2主要是用来读取以文
3、件格式存储在本地的栅格数据4、加载栅格数据(以存储在本地的栅格数据文件为例)1.直接用IRasterLayer接口打开一个栅格文件并加载到地图控件IRasterLayerrasterLayer=newRasterLayerClass();rasterLayer.CreateFromFilePath(fileName);//fileName指存本地的栅格文件路径axMapControl1.AddLayer(rasterLayer,0);2.用IRasterDataset接口打开一个栅格数据集IWorkspaceFactory
4、workspaceFactory=newRasterWorkspaceFactory();IWorkspaceworkspace;workspace=workspaceFactory.OpenFromFile(inPath,0);//inPath栅格数据存储路径if(workspace==null){Console.WriteLine("Couldnotopentheworkspace.");return;}IRasterWorkspacerastWork=(IRasterWorkspace)workspace;IRast
5、erDatasetrastDataset;rastDataset=rastWork.OpenRasterDataset(inName);//inName栅格文件名if(rastDataset==null){Console.WriteLine("Couldnotopentherasterdataset.");return;}5、如何读取栅格数据的属性和遍历栅格数据栅格数据的属性包括栅格大小,行数,列数,投影信息,栅格范围等等,见下面代码(假设当前加载的栅格文件栅格值存储方式为:UShort类型)IRasterPropsras
6、terProps=(IRasterProps)clipRaster;intdHeight=rasterProps.Height;//当前栅格数据集的行数intdWidth=rasterProps.Width;//当前栅格数据集的列数doubledX=rasterProps.MeanCellSize().X;//栅格的宽度doubledY=rasterProps.MeanCellSize().Y;//栅格的高度IEnvelopeextent=rasterProps.Extent;//当前栅格数据集的范围rstPixelTyp
7、epixelType=rasterProps.PixelType;//当前栅格像素类型IPntpntSize=newPntClass();pntSize.SetCoords(dX,dY);IPixelBlockpixelBlock=clipRaster.CreatePixelBlock(pntSize);IPntpnt=newPntClass();for(inti=0;i8、pixelBlock);if(pixelBlock!=null){objectobj=pixelBlock.GetVal(0,0,0);MessageBox.Show(Convert.ToUInt32(obj).ToString());}}6、如何提取指定的范围的栅格数据提取指定范围内的栅格数据通常用两
8、pixelBlock);if(pixelBlock!=null){objectobj=pixelBlock.GetVal(0,0,0);MessageBox.Show(Convert.ToUInt32(obj).ToString());}}6、如何提取指定的范围的栅格数据提取指定范围内的栅格数据通常用两
此文档下载收益归作者所有