ArcMap栅格化矢量数据

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在ArcMap中栅格化矢量数据的情况有:

1、将GeoDatasetbase中的FeatureClass或者是基于文件的矢量数据栅格化(ShapeFile,Coverage等等);

2、将TIN栅格化。

要是自己运用ArcGIS engine编程实现,这两种情况的实现过程不相同。在ArcToolBox中,情况下是运用Conversion Tools下的To Raster工具;情况2则是运用3D Analyst下的Conversion Tools‐‐TIN to Raster工具。下面别离介绍如何实现这两种功效。

一、 栅格化FeatureClas在AE9.0的esriGeoAnalyst类库下可以找到接口IConversionOp,

可以实现这个接口的类是RasterConversionOp。

IConversionOp下的方法有:RasterDataToLineFeatureData、RasterDataToPointFeatureData、RasterDataToPolygonFeatureData、ToFeatureData、ToRasterDataset。在ArcGIS Engine的在线帮助中,我们可以找到对应方法的语法。

IConversionOp接口下的RasterDataToLineFeatureData、RasterDataToPointFeatureData、RasterDataToPolygonFeatureData方法可以实现从栅格图层中提取出点状、线状、面状矢量要素,在AE中,可以实现提取矢量要素的栅格对象有Raster,RasterDataset,RasterBand 以及RasterDescriptor;ToRasterDataset方法可以实现将点、线、面、矢量要素栅格化,在AE中,可以举行栅格化的矢量要素对象有

featureclass,featureclassdescriptor,featurelayer;ToRasterDataset方法可以实现矢量要素之间的互相转换。

Set variable=object.ToRasterDataset dataset,rasterFormat,pWorkspace,name

生成的是IRasterDataset对象,输入的参量要求为:dataset必需为

featureclass,featureclassdescriptor,featurelayer对象;ToRasterDataset只支持三种栅格类型ESRI GRID,ERDAS Imagine以及TIFF格式,rasterFormat值为代表这三种类型的字符串,如值为"GRID"则代表ESRI GRID类型,生成没有扩展名的栅格文件,如值为"TIFF",则代表TIFF格式,生成扩展名为".tiff"的栅格文件,如值为"TIF",也代表TIFF格式,生成扩展名为".tif"扩展名的栅格文件,如值为"ERDAS Image",则生成扩展名为".img"格式的栅格文件;参量name的定名规则,要与rasterFormat一致,要带上扩展名。pWorkspace 可以支持ArcGIS Engine中三种Workspace:FileSystemWokspace,Personal GDB,Remote GDB。

利用ToRasterDataset方法栅格化矢量数据时,还要定义分析环境参量,包括地舆分析环境参量,通过执行IGeoAnalysisEnvironment接话柄现;栅格分析环境参量,通过执行IRasterAnalysisEnvironment接话柄现;要是栅格文件保存于GDB中,则还需要设置GDB 环境参量,通过执行IRasterAnalysisGDBEnvironment接话柄现。IRasterAnalysisEnvironment 继承了IGeoAnalysisEnvironment接口,以是也能够直接在IRasterAnalysisEnvironment接口下定义相关的分析环境参量。

(有相关的实现代码)

二、栅格化TIN将其转换为栅格DEM

栅格化TIN应该用ITINSurface接口下的QueryPixelBlock方法。在执行该方法以前,可以定义栅格化时高程的内插方法:ITinSurface‐RasterInterpolationMethod,内插方法有线性内插,以及自然邻居内插,要是本来的TIN中含有软、硬断开线,欲保持地貌形态,推荐将内插方法定义为:esriNaturalNeighborInterpolation。

实现语法为:object.QueryPixelBlock

xOrigin,yOrigin,xPixelSize,yPixelSize,Type,valueForNoData,block

参量诠释:

xOrigin:矢量化的起始点X坐标。起始点一般为TIN内插区域(Extent)的左下角,要是只是将TIN的部分区域栅格化,则取欲栅格化区域的起始点。一般将栅格DEM的左下角栅格单位的中心设为起始点。

yOrigin:矢量化的起始点Y坐标。

xPixelSize,yPixelSize为栅格单位的X、Y标的目的尺寸。

Type:栅格化数据类型,其值可认为:esriDegreeSlopeAsRaster(0)、esriPercentageSlopeAsRaster(1)、esriDegreeAspectAsRaster(2)、esriElevationAsRaster(3)、esriHillShadeAsRaster(4)。

valueForNoData;栅格值为空的表示数值。Variant类型

block:Variant类型,返回栅格化后的象素值,由IPixelBlock3接口下的PixelDataByRef 获患上。

实现思绪1:

1、利用IRasterWorkspaceEx接口下的CreateDataset方法,直接在GDB中创建一个空的RasterDatset,这种方法只能在GDB中创建RasterDatset。

2、从1中生的RasterDataset获患上IRawPixel对象,或者是IRaster对象。

3、从IRawPixel对象(或者IRaster对象)获患上IPixelBlock3对象。

四、从IPixelBlock3对象通过PixelDataByRef方法获患上执行QueryPixelBlock方法所需的blockPixel参量值BlockArray。

五、将IPixelBlock3对象重新写回IRawPixel对象中,实现对Rasterdataset的保存。

实现思绪2;在FileSystemWorkspace下生成一个过渡的RasterDataset,在将其转入GDB 中。

1、利用IRasterWorkspace2接口下的CreateDataset方法,先在FileSystemWorkspace下创建一个空的RasterDataset1。

2、同思绪1中的步骤2。

3、同思绪1中的步骤3。

四、同思绪1中的步骤4。

五、将IPixelBlock3对象重新写回IRawPixel对象中,实现对Rasterdataset1的保存。

6、利用IRasterWokspaceEx接口下的SaveAsRasterDataset方法,将新生成的Rasterdataset1转到GDB中,尔后将RasterDataset1删去。

利用思绪2纯粹可以实现,但是利用思绪1还不克不及实现,在思绪1中生成的RasterDataset行列数始终为1,还未实现对象素值的保存。有待研究探讨。

值当一提的是,将栅格DEM转成成TIN,利用ITINEdit下的AddFromPixelBlock方法。帮助有相关的例子。

相关文档
最新文档