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

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

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

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

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

我们的目标:批处理,写一次代码,处理多幅影像

1.查找目标范围的经纬度信息,本文以山西为例,经纬度范围在N33-N41, E109-E114直接,所以先将这个范围内的影像下载后,解压后放在一个文件夹下。

2.拼接影像

开始菜单-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")

RUN-->Run Module F5 执行代码

这里用到了arcpy包下面的 MosaicToNewRaster_management()函数

得到如下结果

3.以山西省shp边界裁剪影像

再新建一个Window,文件命为BatchExtractByMask.py

import arcpy
import glob
import osarcpy.CheckOutExtension('Spatial')#指定先前拼接后的遥感影像所在目录
inws = r"E:\arcpyData\shanxi\shanxi_regular_dem\shanxi_province_dem"#指定裁剪后的影响存放目录
outws = r"E:\arcpyData\shanxi\shanxi_regular_dem\shanxi"#指定shp范围边界文件,即目标区域的边界
mask = r"E:\arcpyData\shanxi\shanxi_shp\shanxi.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)  #保存数据

执行脚本代码,裁剪后的影像被存放在outw所指定的文件夹

4.通过ArcMap加载影像,最终结果:

这就实现了批量拼接与裁剪影像的工作,其实拼接与裁剪无所谓先后顺序。

如果你觉得本文对你有帮助,是支持赞赏的哦:)

如遇到问题,欢迎通过公众号留言给作者,以便共同探讨。

邮箱:thinkingingis@qq.com

微信公众号:

利用ArcGIS Python批量拼接裁剪遥感影像(arcpy batch processing)相关推荐

  1. 【ArcGIS遇上Python】ArcGIS Python实现长时间序列遥感影像批量处理--以裁剪为例

    任务分析:在采用遥感方法研究植被物候变化时,需要下载长时间序列(本文用到的是30年)GIMMS 3G NDVI数据.原始数据是全球的,预处理过程包括几何校正.裁剪.投影变换.Hants时间序列谐波分析 ...

  2. python批量旋转裁剪图片实战

    python批量旋转裁剪图片实战 引子 有一本PDF电子书,由扫描的图片生成的,每页的截图看起来如下图: 它是展开扫描的,两页并列在一张图片上.并且每页又是分两栏,这样的PDF在手机.平板上,需要放大 ...

  3. python gdal 重采样_Python遥感影像重采样

    图像重采样就是从高分辨率遥感影像中提取出低分辨率影像,或者从低分辨率影像中提取高分辨率影像的过程.使用python和gdal实现图像重采样的方法有多种,下面介绍两种. (1)    使用ReadAsA ...

  4. ArcGIS:加载历史遥感影像

    分享一个可以在ArcGIS中免费加载在线历史影像地图的方法,ESRI提供了这样一个网站,里面有历史的遥感影像,网址:esri历史遥感影像网站. . 点击网址进去网站以后为以下界面: ![粉红色的客家话 ...

  5. 批量下载Landsat遥感影像的方法

    本文介绍在USGS网站批量下载Landsat系列遥感影像的方法. 首先 打开EarthExplorer的官网,首先完成注册与登录. 接下来 点击左侧"Search Criteria" ...

  6. 使用Python批量拼接图片

    前言 当需要将多张图像拼接成一张更大的图像时,通常会用到图片拼接技术.这种技术在许多领域中都有广泛的应用,例如计算机视觉.图像处理.卫星图像.地理信息系统等等.在实际应用中,拼接图像可以用于创建全景图 ...

  7. python批量拼接两个文件夹相同名字的图片

    结果如上图所示: 为了直观的观察图片效果:可以将图片拼接在一起:代码如下 import cv2 import numpy as np import pandas as pd import os, ha ...

  8. 【ArcGIS遇上Python】ArcGIS Python批处理入门到精通实用教程目录

    文章目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 Python语言是目前很火热的语言,极大的促进了人工智能发展.你知道在ArcGIS中也会有python的身影吗?事实上,在Ar ...

  9. Python遥感影像SAR分割裁剪多张小影像

    利用python,把SAR遥感影像裁剪分割多张小影像,tif分割png格式,分割后没有定位信息. import numpy as np from osgeo import gdal from osge ...

最新文章

  1. Tensorflow【实战Google深度学习框架】TensorFlow模型的保存与恢复加载
  2. bzoj 2756 [SCOI2012]奇怪的游戏 二分+网络流
  3. 多智能系统的第一个小视频
  4. 计算机知识和技能,计算机基本知识和技能PPT课件.ppt
  5. Dorado 7 IDE下载地址
  6. linux中UDP程序流程、客户端、服务端
  7. HTTP 相应头相关
  8. 如果王思聪是产品经理
  9. python消息队列celery_python异步任务神器celery
  10. Web前端程序员该如何准备面试?这些面试知识应该掌握
  11. Java-虚拟机-终结方法finalize
  12. 借助Ehcache缓存框架实现对页面的缓存
  13. SQL Cookbook(读书笔记)No.2
  14. 深度神经网络的正则化
  15. 【MFC开发(8)】下拉框控件Combo Box
  16. 请相信一个绝地反击的故事
  17. 从浙大计算机到字节算法岗!
  18. 用正则表达式替换手机号为星号*的写法
  19. 为公网远程访问群晖NAS配置固定域名 2-2
  20. 网络安全自学笔记04 - 路由器技术

热门文章

  1. 因果推断 - 反事实
  2. luogu P4726 多项式指数函数(模板题FFT、多项式求逆、多项式对数函数)
  3. 计算机在气象上的应用浅论,简析计算机网络在气象服务中的应用原稿
  4. r语言datarame删除行_R语言缺失值的处理:线性回归模型插补
  5. poj/OpenJ_Bailian - 2528 离散化+线段树
  6. CentOS 7 NAT软路由
  7. Kubernetes 1.6新特性
  8. Struts2 Convention Plugin ( struts2 零配置 )
  9. rhel6 mysql replication
  10. Linux sftp用法