《GIS应用开发11-栅格数据分析课件》由会员分享,可在线阅读,更多相关《GIS应用开发11-栅格数据分析课件(63页珍藏版)》请在金锄头文库上搜索。
1、,栅格数据分析,11,栅格数据属性简介 栅格数据访问 栅格数据渲染 栅格数据分析,栅格数据的存储类型,行列数 波段数 象素大小 (空间分辨率) 格式 象素类型和深度 色表 金字塔 压缩类型 空间范围 空间参考 统计 最小 , 最大, 平均, 标准差,栅格属性,栅格数据集和栅格编目,一个栅格数据集( RasterDataset )由一个或者多个波段(RasterBand)的数据组成,一个波段就是一个数据矩阵。对于格网数据(DEM数据)和单波段的影像数据,表现为仅仅只有一个波段数据的栅格数据集,而对于多光谱影像数据则表现为具有多个波段的栅格数据集 栅格编目(RasterCatalog)用于显示某个
2、研究区域内各种相邻的栅格数据,这些相邻的栅格数据没有经过拼接处理合成一副大的影像图,栅格(A raster)是赋有值的像素的数组,用于表示任意事物的数字(如颜色、土地利用等) 文件格式包括.tiff,.jpg,.grid等 RasterBands的集合,RasterBands是像素及其附属数据的数组 存储于RasterWorkspace中,RasterWorkspace 提供了管理dataset的方法 RasterWorkspaceFactory能够创建RasterWorkSpace对象,TheRasterDataSet,ESRI GRID(由一系列文件组成), TIFF格式(包括一个TIF文
3、件和一个AUX文件) IMAGINE Image格式 在AE中一般调用ISaveAs接口来保存栅格数据。,栅格数据的存储类型,Raster Bands,这个对象描绘一个Raster dataset的现有波段。 一个Raster波段包括像元值,可以通过RasterBand访问。 RasterBand支持IRawPixel接口,可以读取和写波段的像元值。,用于在屏幕上显示像素,并获取像素值 是内存中RasterBands的集合 管理所存储珠像素及其值的显示 rasterdataset指内存中栅格的值,而栅格对象(raster object)指栅格的显示及其可视化表达的实现,栅格对象(raster
4、object),该对象与RasterDataset和RasterBand对象相比,能够改变而不影响原数据。 允许Raster表达成你想要的,你可以定义特殊投影,幅度等。这可以使Raster更加有利于显示和分析。,例子,栅格对象,栅格, RasterDataset: GRID, Tiff Raster: runtime virtual copy of a RasterDataset RasterBand: Bands in a RasterDataset RasterLayer: visual representation of a raster PixelBlock: A container
5、of pixels RasterDescriptor: The “selectionset” of a raster query Operator Objects: RasterExtractionOp RasterReclassOp RasterMathOp RasterLocalOp RasterNeighborhoodOp RasterZonalOp,Raster Objects,IRasterProps是一个重要的接口,用于控制Raster的属性,例如幅度,宽度,高度,空间参考,像元类型,NoData value等。,IRasterProps,IRasterProps pRasterP
6、rops ; pRasterProps =(IRasterProps ) pRaster; pRaster.ResampleMethod = RSP_BilinearInterpolation; pRasterProps.SpatialReference = pNewSpatialReference; ISaveAs pSaveAs; pSaveAs =(ISaveAs ) pRaster; pSaveAs.SaveAs MyRaster, pRasterWs, GRID“; Raster对象能够利用IPixelFilterOperation建立PixelBlock和通过像元filter修改像
7、元值。也可以利用IRasterEdit接口直接修改Raster的值。,IRasterProps,DefaultOutputRasterPrefixThe default output raster prefix. DefaultOutputVectorPrefixThe default output vector prefix. GetCellSizeGets the type and value of cell size in the RasterAnalysis. GetExtentGets the type and values of extent in the RasterAnalys
8、is. MaskMask allows processing to occur only for a selected set of cells. OutSpatialReferenceThe output spatial reference of GeoAnalysis. OutWorkspaceThe output workspace of GeoAnalysis. ResetRemove all previously stored default rasteranalysis environments. RestoreToPreviousDefaultEnvironmentRestore
9、s to the previous default raster analysis environment. SetAsNewDefaultEnvironmentSets the raster analysis environment of the object as new default environment. SetCellSizeSets the type and value of cell size in the RasterAnalysis. SetExtentSets the type and values of extent in the RasterAnalysis. Ve
10、rifyTypeThe verify type of the RasterAnalysis.,IRasterAnalysisEnvironment,Access Raster Layer,RasterWorkspaceFactory,RasterLayer,1.创建一个类工厂 2.使用类工厂创建一个要使用的工作区 3.使用工作区打开并得到图层的dataset 4.把dataset装入到新建的图层实例 5.把图层加载到MapControl控件,添加Raster图层的步骤,IWorkspaceFactory pRWFactory ; /IWorkSpaceFactory contains the
11、method OpenFromFile pRWFactory = new RasterWorkspaceFactory(); /assign the variable to establish a new RasterWorkspaceFactory IRasterWorkspace pRasterWorkspace ; pRasterWorkspace = pRWFactory.OpenFromFile (c:GIS_59010ft_01, 0); /create the variable for the workspace to add and set the variable to th
12、e file you want to add NOTE: the second argument (the 0) tells VBA to find the ArcMap window IRasterDataset pRDataset; pRDataset = pRasterWorkspace.OpenRasterDataset (2001_10FT_REGION.SID) /create the raster dataset variable and use the .OpenRasterDataset method of IWorkSpaceFactory to open the file
13、 in the workspace,设置工作空间,IRasterLayer pRLayer ; pRLayer = new RasterLayer(); /create a new raster layer to add to the map pRLayer.CreateFromDataset (pRDataset); pRLayer.Name = Portland Aerial Photo“; /associate the raster dataset with the raster layer and set the layers name,设置栅格文件并与图层关联,IMxDocument
14、 pMxDoc ; pMxDoc = ThisDocument /declare and assign the current document (map) to MxDocument Imap pMap ; pMap = pMxDoc.FocusMap; pMap.AddLayer( pRLayer,0); /Get the active map and add the raster layer to it pMap.MoveLayer (pRLayer, pMap.LayerCount 1) /move the layer to the bottom of the maps table o
15、f contents pMxDoc.ActiveView.Refresh(); pMxDoc.UpdateContents(); /refresh the map view and the table of contents,将图层添加到地图,IRasterLayer pRLayer ; pRLayer.CreateFromFilePath( H:GEOG490Dataplne“); IWorkspaceFactory pWkspFactory ; pWkspFactory = new RasterWorkspaceFactory(); IRasterWorkspace pWksp ; pWk
16、sp = pWkspFactory.OpenFromFile(H:GEOG490Data”, 0); IRasterDataset pRDataset ; pRDataset = pWksp.OpenRasterDataset(“plne”); IRasterLayer pRLayer; pRLayer.CreateFromDataset (pRDataset); IGxObjectFilter pFilter ; pFilter = new GxFilterRasterDatasets(); IEnumGxObject pGxObject ; IGxDataset pGxDataset ; pGxDataset = pGxObject.Next(); pRLayer = new RasterLayer(); pRLayer.CreateFromDataset (pGxDataset.Dataset);,Get Raster Layer Setup QueryFilter Create RasterDescriptor Use RasterDescriptor