当前位置: 首页 > news >正文

(Arcgis)Python3.8批量裁剪利用shp文件裁剪tif栅格影像数据

使用环境:
pycharm2020
arcgis pro 中的python3.8

一、pycharm中设置python编译器。左上角“文件”——“设置”——找到python interpreter——找到arcgis pro安装文件夹中的python

D:\ArcGIS Pro\bin\Python\envs\arcgispro-py3\python.exe

使用arcgis pro原因:自带arcpy库,不需要进行pip install安装。(我是有python官网上的,但是不知道为什么装不了arcpy,所以用的这个方法)(代码是python3编写的,如果用arcgis 10.x版本,是python2需要自行修改)

二、python编程
设置 input_folder 变量为包含要裁剪的栅格影像数据的文件夹路径。shapefile 变量应该是用于裁剪的 shapefile 文件的路径。output_folder 变量是用于存储裁剪后的影像数据的文件夹路径。
代码会循环处理输入文件夹中的每个 .tif 文件,使用 Extract by Mask 工具将其裁剪为指定的 shapefile 边界,并将结果保存到输出文件夹中。
请确保在运行代码之前,你已经安装了 ArcPy 库,并根据你的实际情况修改了文件夹路径和文件名。
文件夹路径中如果包含了非UTF-8编码(中文)的字符,第一行加上# -*- coding: utf-8 -*-

# -*- coding: utf-8 -*-import arcpy
import os# 设置工作环境
arcpy.env.workspace = r"C:\path\to\workspace"
arcpy.CheckOutExtension("Spatial")# 输入文件夹路径和shapefile路径
input_folder = r"C:\path\to\input_folder"
shapefile = r"C:\path\to\shapefile.shp"# 输出文件夹路径
output_folder = r"C:\path\to\output_folder"
if not os.path.exists(output_folder):os.makedirs(output_folder)# 获取输入文件夹中的所有tif文件
tif_files = [file for file in os.listdir(input_folder) if file.endswith(".tif")]# 循环处理每个tif文件
for tif_file in tif_files:# 输入tif文件路径input_tif = os.path.join(input_folder, tif_file)# 输出tif文件路径output_tif = os.path.join(output_folder, tif_file)# 使用Extract by Mask工具进行裁剪arcpy.gp.ExtractByMask_sa(input_tif, shapefile, output_tif)print(f"Cropped {tif_file} successfully!")print("All files cropped successfully!")
http://www.lryc.cn/news/286757.html

相关文章:

  • 漏洞补丁修复之openssl版本从1.1.1q升级到1.1.1t以及python版本默认2.7.5升级到2.7.18新版本和Nginx版本升级到1.24.0
  • HCIP-BGP实验4
  • 数据挖掘笔记1
  • Spring RabbitMQ那些事(3-消息可靠传输和订阅)
  • 揭秘 Kafka 高性能之谜:一文读懂背后的设计精粹与技术实现
  • canvas绘制美国国旗(USA Flag)
  • Python中的`__all__`魔法函数使用详解
  • Studio One 6 mac 6.5.2 激活版 数字音乐编曲创作
  • GitHub图床TyporaPicGo相关配置
  • FireAlpaca:轻量级、免费的Mac/Win绘图软件,让你的创意如火燃烧!
  • 用 Python 制作可视化 GUI 界面,一键实现自动分类管理文件!
  • 【STM32】USB程序烧录需要重新上电 软件复位方法
  • Java数据结构与算法:图算法之深度优先搜索(DFS)
  • SpringBoot整合QQ邮箱发送验证码
  • 云虚拟主机怎么修改代码?如何修改部署在虚拟主机的网站代码?
  • 电脑加固态硬盘有什么好处
  • LabVIEW电火花线切割放电点位置
  • 信通院发布《全球数字经济白皮书 (2023年)》解析
  • Spring5系列学习文章分享---第三篇(AOP概念+原理+动态代理+术语+Aspect+操作案例(注解与配置方式))
  • BL0942 内置时钟免校准计量芯片 用于智能家居领域 上海贝岭 低成本 使用指南
  • 【算法专题】动态规划之路径问题
  • Python range函数
  • Unity中实现捏脸系统
  • openssl3.2 - 检查rsa证书和私钥是否匹配(快速手搓一个工具)
  • 关于网络协议的笔记
  • 【江科大】STM32:USART串口(理论部分)上
  • 深入了解Linux中常见的五种文件类型
  • SSM项目集成Spring Security 4.X版本(使用spring-security.xml 配置文件方式)
  • 如何生成开发语言的排名图表
  • 有哪些简单好用、适合中小型企业的CRM系统?