您的位置:首页 > 科技 > 能源 > 利用ArcGIS Python批量拼接遥感影像(arcpy batch processing)

利用ArcGIS Python批量拼接遥感影像(arcpy batch processing)

2024/10/6 16:27:45 来源:https://blog.csdn.net/m0_66892427/article/details/139250079  浏览:    关键词:利用ArcGIS Python批量拼接遥感影像(arcpy batch processing)

 本篇文章将说明如何利用ArcGIS 10.1自带的Python IDLE进行遥感影像的批量拼接与裁剪。

1.运行环境:ArcGIS10.1 (安装传送门)、Python IDLE

2.数据来源:地理空间数据云 GDEMV2 30M分辨率数字高程数据

3.解决问题:制作山西省的DEM影像

如下图所示,以30M分辨率数字高程数据为例,影像皆是固定范围的经纬度保存在其服务器上,外在表现以小幅正方形影像。如果手动进行拼接,工作量会非常大且容易出错。
 

1.拼接影像

开始菜单-ArcGIS-IDLE(Python GUI) 打开IDLE。File-New Window, 文件以 .py结尾,如MosaicToNewRasters.py

import arcpy
import os#指定工作目录,即存放影像的目录
arcpy.env.workspace = r"E:\arcpyData\shanxi\N34_N35"#指定该工作空间下的一副影像为基础影像,为后面的参数提取做准备
base = "ASTGTM2_N34E109_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 bandcountarcpy.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"E:\arcpyData\shanxi\N34_N35\n34_n35_out"#执行拼接操作
arcpy.MosaicToNewRaster_management(ras_list, outFolder, "shanxi_n34_n35_dem_data.tif", out_coor_system, "16_BIT_SIGNED", cellwidth, bandcount, "LAST", "FIRST")

《遥感影像数据》共享方法如下:

(1)人员,限定为关注小编的用户。

(2)各类项目(包括各类科研项目)申请本数据扔享受免费政策,但需向本号捐赠一定数量的硬盘才能获取。

(3)捐赠硬盘可免留言获取数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com