前段时间有小朋友问我如何在ArcMap中使用使用python对遥感影像进行网格截图,我分析了一下,其实arcpy有出图的方法,我们只需要用数学定义一个网格,进行循环出图就可以了。
先看我们的例子。
然后我的需求是将广州市用一个3X3的网格进行截图。所以我需要定义网格的初始左下角坐标,和网格的宽和高。(具体根据你自己的需求设定,什么100X200的网格。)
首先我们打开我们的Python交互环境。
然后直接上代码:
接下来我们一行一行解释一下代码。
mxd=arcpy.mapping.MapDocument("CURRENT")//表示获取当前的mxd文档
df=arcpy.mapping.ListDataFrames(mxd)[0]//获取mxd文档的第一个数据框架
newExtent=df.extent //获取数据框架的extent(范围)
x,y,increx,increy=690993,2495221,42157,54151//x,y表示的是网格的左下角起始坐标,increx,increy表示的是网格的宽和高,可以自己画个图理解一下
for i in range(1,4): //表示行数3行,1、2、3
for j in range(1,4): //表示列数3列,1、2、3
newExtent.XMin,newExtent.YMin=x+increx*(j-1),y+increy*(i-1) //赋值新的范围
newExtent.XMax,newExtent.YMax=x+increx*j,y+increy*i
df.extent=newExtent
arcpy.mapping.ExportToJPEG(mxd,r"e:\test\test"+str(i)+str(j)+r".jpg") //在E盘的根目录下新建一个test文件夹,将结果输出
然后我们打开E盘根目录下的test文件夹,来查看一下结果:
想象力好一点应该可以能够将这幅广州市的拼图拼起来吧!