python批量拼接DEM栅格数据

因为实验需要,我需要拼接多副影像数据,我在网站上下载了DEM数据,但是由于每副影像数据都在单独的文件夹,如下:
python批量拼接DEM栅格数据_第1张图片
所以我直接在这个文件夹目录下搜影像的后缀名,最后将全部的影像汇总到一个文件夹中,才能调用批量的拼接代码:
python批量拼接DEM栅格数据_第2张图片
最后调用python代码:有几个需要改的地方,主要参考了这个博客批量拼接代码

import arcpy
import os
 
#指定工作目录,即存放影像的目录
arcpy.env.workspace = r"I:\04_12.5DEM\Mosic"
 
#指定该工作空间下的一副影像为基础影像,为后面的参数提取做准备
base = "AP_07624_FBD_F0700_RT1.dem.tif"
 
#以下一段代码是为执行拼接做参数准备
out_coor_system = arcpy.Describe(base).spatialReference #获取坐标系统
dataType = arcpy.Describe(base).DataType 
piexl_type = arcpy.Describe(base).pixelType 
cellwidth = arcpy.Describe(base).meanCellWidth #获取栅格单元的的宽度
bandcount = arcpy.Describe(base).bandCount #获取bandCount
 
#打印一些信息
print out_coor_system.name
print dataType
print piexl_type
print cellwidth
print bandcount
 
arcpy.CheckOutExtension("Spatial")
 
#提取待拼接影像的文件名,且中间以;隔开,例如:a.tif;b.tif;c.tif
rasters = []
for ras in arcpy.ListRasters("*dem.tif"):    #for循环,对wrokspace下的所有以dem.tif结尾的影像进行过滤
    rasters.append(ras)
 
ras_list = ";".join(rasters)                 #字符串拼接
 
#打印出来,看看什么结果吧
print ras_list
 
 
#指定输出文件夹
outFolder = r"I:\04_12.5DEM\out"
 
#执行拼接操作
arcpy.MosaicToNewRaster_management(ras_list, outFolder, "12.5DEM_out_dem_data.tif", out_coor_system, "16_BIT_SIGNED", cellwidth, bandcount, "LAST", "FIRST")
 

修改代码地方:
首先所有的影像要在同一个文件夹,修改的地方是影像存放路径,输出路径,另外第一幅参考影像要修改成自己影像名字。
在arcgis自带的编译器运行,就能得到结果:
python批量拼接DEM栅格数据_第3张图片
这样批量拼接非常快。

最后利用矢量数据裁剪栅格影像数据,

import arcpy
import glob
import os
 
arcpy.CheckOutExtension('Spatial')
 
#指定先前拼接后的遥感影像所在目录
inws = r"I:\04_12.5DEM\out"
 
#指定裁剪后的影响存放目录
outws = r"I:\04_12.5DEM\out\clip"
 
#指定shp范围边界文件,即目标区域的边界
mask = r"I:\04_12.5DEM\out\chinese_Pakistan_Highway10_3.shp"
 
#利用glob包,将inws下的所有tif文件读存放到rasters中
rasters = glob.glob(os.path.join(inws, "*.tif"))
 
#循环rasters中的所有影像,进行按掩模提取操作
for ras in rasters:
    outname = os.path.join(outws, os.path.basename(ras).split(".")[0] + "_clp.tif")  #指定输出文件的命名方式(以被裁剪文件名+_clip.tif命名)
    out_extract = arcpy.sa.ExtractByMask(ras, mask)  #执行按掩模提取操作
    out_extract.save(outname)  #保存数据

正常实现了,祝大家好运了!

你可能感兴趣的:(python,ArcGIS,编程,python,开发语言,后端)