(四十)arcpy开发&多幅影像批量拼接

今天我们来学习一下,使用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,我们可以看到,得到这样的文件。

(四十)arcpy开发&多幅影像批量拼接_第1张图片

最后,将数据以"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

                                                                      

你可能感兴趣的:(arcpy,插件开发)