今天我们来学习一下,使用arcpy实现多幅影像批量拼接。首先在这里,大家需要知道使用python的for循环,与数组的遍历。在python有这样的遍历的方式。
方式一:
whu_gis = ["大地测量","摄影测量","地理信息系统"]
for itemGis in whu_gis:
print itemGis
#****运行结果*****
#大地测量
#摄影测量
#地理信息系统
方式二:
whu_gis = ["大地测量","摄影测量","地理信息系统"]
for i in range(0, len(whu_gis)):
print i, whu_gis[i]
#运行结果如下
#0 大地测量
#1 摄影测量
#2 地理信息系统
而现在,我们需要来使用第二种方式,来读取工作空间下的所有的tif文件。即我们指定的目录下文件路径。在 rasters = arcpy.ListRasters("*", 'tif')语句中,即为我们使用的获取目录下的所有的tif文件文件。通过打debug,我们可以看到,得到这样的文件。
最后,将数据以"00101.t..tif;00201.t..tif;00301.t..tif;"方式,拼接起来。最后,我们使用了如下的代码来实现了。
#encoding:utf-8
import arcpy
import os
arcpy.env.overwriteOutput = True
try:
arcpy.env.workspace = r'D:\Data\Demo\OutPut'
output_location = "C:/Users/qin/Desktop/shp"
coordinate_system_for_the_raster = "#"
rasters = arcpy.ListRasters("*", 'tif')
tifName="test"
strList=''
for i in range(0, len(rasters)):
strList+=rasters[i]
strList+=";"
arcpy.MosaicToNewRaster_management(strList, output_location, tifName + ".tif", coordinate_system_for_the_raster, "8_BIT_UNSIGNED", "", "1", "LAST", "FIRST")
print "finished"
except Exception as e:
print(e)
来看一下,我们实现的结果文件。是我们创建的test.tif文件。
更多内容,请微信扫二维码关注公众号,或者加入arcpy开发qq学习群:487352121