最近正好在学习python在arcgis方面的应用,这是最近利用到项目的需求例子。
首先这是一个利用arcpy求交、以及数据融合、文件复制操作例子。大概需求是这样的,这里有一个图幅结合表的shapefile面数据,该面属性表数据对应有图幅号,现在利用某一区域(暂且一个县)的面shapefile数据与图幅结合表相交,计算出相交结果的图幅结合表,然后遍历该结果图幅结合表的图幅字段,最后利用利用这些字段信息在指定文件将多个分幅好的DEM数据拼接为该区域(一个县)一大块DEM数据,整个工作流程就结束了。
来看一下相关的文件。如下图所示是一个图幅里面对应的DEM数据文件。
现在利用arcpy的函数Intersect_analysis计算出图幅结合图表相交面,然后利用里面的属性数据找出所有上面所有文件的DEM数据。最后利用MosaicToNewRaster_management函数将上面所有的DEM数据融合到一起。其中利用求交函数得出的DEM文件如下所示。下图的文件夹对应上图中的各个文件。
在MosaicToNewRaster_management函数中传入了,各个文件夹里面的DEM绝对路径的字符串,设置相应的输出路径、文件名、以及合成DEM波段,因为DEM也是可以是一种tif格式数据,这里根据原始数据的设置了32个波段。而如果使用Arcgis的工具箱来合成新的数据,依次选择【Data ManageMent Tools】、【Raster】、【Raster Dataset】、【Mosaic To New Raster】,弹出如下的设置界面对话框。
设置完上面的合成界面后,就可以做数据融合工作。注意上面数据就两个,在这里我们可以将上面选择arcgis的toolbox转为相应的python脚本,供我们使用,可以说非常方便。具体操作如下,操作完上面的融合测试工作后(因为只是选择了两个DEM数据,而我们接下来需要选择一个区域的多个DEM数据),我们在Arcgis依次选择【Geoprocessing】、【Results】
右击刚才的融合操作【Mosaic To New Raster】、选择【Copy As Python Snippet】,就可以将刚才的融合需要输入的参数、输入参数信息以及需要调用的arcpy函数变为python脚本。具体如下图所示。
这也是需要在我们自己脚本中调用的python脚本,经过这样的操作极大方便我们使用arcpy函数。
好了,说了这么多,来看一下我们写的python脚本吧。
如果觉得这篇文章有用,欢迎微信分享转载。更多内容,敬请微信关注公众号:测绘科技。
排版|测绘科技
文案|测绘科技
公众号:测绘科技
领取专属 10元无门槛券
私享最新 技术干货