首页 > 编程语言 >利用ArcGIS Python批量拼接遥感影像(arcpy batch processing)

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

时间:2024-05-27 22:58:44浏览次数:21  
标签:Python processing ArcGIS 拼接 base print tif arcpy 影像

 本篇文章将说明如何利用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 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"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)捐赠硬盘可免留言获取数据。

标签:Python,processing,ArcGIS,拼接,base,print,tif,arcpy,影像
From: https://blog.csdn.net/m0_66892427/article/details/139250079

相关文章

  • 谁说爬虫只能Python?看我用C#快速简单实现爬虫开发和演示!
    前言:说到爬虫,基本上清一色的都知道用Python,但是对于一些没玩过或者不想玩Python的来说,却比较头大一点。所以以下我站在C#的角度,来写一个简单的Demo,用来演示C#实现的简单小爬虫。大家感兴趣可以自己拓展出更加丰富的爬虫功能。前提:引用包HtmlAgilityPack 先来个爬取文本。新......
  • (五星)用Python学数学-2021 ([美] 彼得 • 法雷尔(Peter Farrell) [Farrell) etc.)
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso引言:介绍了本书的目标,即通过Python学习数学的优势和乐趣,以及Python在数学领域的应用概述。Python基础:简要介绍了Python编程语言的基本概念、语法和常用库,为后续的数学学习打下基础。可视化方法:讲解了如何使用Py......
  • 基于 Pre-commit 的 Python项目代码风格统一实践
    背景信息统一代码风格首先需要定义参照的规范,每个团队可能会有自己的规范,我们选择的规范是yapf+mypy+isort,如果保证所有的研发人员都遵循相关规范呢?鼓励IDE中对应的插件的安装,通过直接对应的插件,在编写代码阶段就能实时发现不符合规范的情况,修改成本最低;通过Pre-c......
  • 详解PySide多线程【Python-Pyside图形界面绘制#2】
    在了解pyside多线程之前,如果是初学者可以先去看看我的第一篇文章《超详细实例详解Python多线程》,文中有对多线程的概念进行详细介绍,如果有相关基础可直接跳过。【Python】超详细实例讲解python多线程(threading模块)_pythonthreading介绍-CSDN博客https://blog.csdn.net/Xiao_......
  • Unleashing Robotics: Mastering Quaternion Kinematics with Python - Chapter6(原创
    UnleashingRobotics:MasteringQuaternionKinematicswithPython-Chapter6(原创系列教程)(最关键一章)本系列教程禁止转载,主要是为了有不同见解的同学可以方便联系我,我的邮箱[email protected]第6章旋转的数值积分方法和角误差理论1.Runge-Kutta数值积分方法我......
  • python包:pandas
    pandas是一种Python数据分析的利器,是一个开源的数据分析包,最初是应用于金融数据分析工具而开发出来的,因此pandas为时间序列分析提供了很好的支持。pandas是PyData项目的一部分。官网:http://pandas.pydata.org/官方文档:http://pandas.pydata.org/pandas-docs/stable/ ......
  • 《python本机环境多版本切换》-两种方式以及具体使用--venv/pyenv+pycharm测试
    阿丹:sourcemyenv/bin/activate    在开发使用rasa的时候发现自己安装的python环境是3.12的,和rasa不兼容,所以实践一下更换多python环境。使用虚拟环境在Python中使用虚拟环境来切换Python版本是一个常见的做法,这可以帮助你为不同的项目维持独立的Python环境和依赖......
  • 【python】自动化登录学习通页面-多表单切换
    fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.common.exceptionsimportStaleElementReferenceExceptionfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_cond......
  • Python调用科大讯飞在线语音合成API --内附完整项目
    一,注册讯飞账号,并实名制。讯飞开放平台-以语音交互为核心的人工智能开放平台(xfyun.cn)二、找到音频合成,按页面提示申请免费试用。在线语音合成_免费试用-讯飞开放平台(xfyun.cn)三、申请免费使用后,找到API信息如下:​ 四、找到开发者文档,仔细阅读语音合成(流式版)WebAP......
  • Python定义一个分数类,分别完成分数的加减乘除
    目标:定义分数类,使两个分数可以进行加减乘除等操作代码实现:classFraction1:def__init__(self,up,down):self.up=upself.down=downdef__str__(self):returnstr(self.up)+"/"+str(self.down)defadd(self,other):up1......