Python用shp文件裁剪多个遥感影像的方法
1.地统计学的基本概念及公式详解2.单窗算法的地表温度反演:谷歌地球引擎GEE代码3.SPSS计算极值、平均值、中位数、方差、偏度、峰度、变异系数4.Python忽略NoData计算多张遥感影像的像元平均值:whitebox库5.ArcGIS如何自动获得随机采样点?6.ENVI手动地理配准栅格图像的方法7.ArcMap手动新建矢量要素的方式8.ENVI指定像元数量(行数与列数)裁剪栅格图像9.Python批量填补遥感影像的无效值NoData10.ArcPy批量对大量遥感影像相减做差11.ArcMap镶嵌数据集的创建、数据导入与数据范围修改方法12.ENVI实现QUAC、简化黑暗像元、FLAASH方法的遥感影像大气校正13.ENVI大气校正方法反演Landsat 7地表温度14.ENVI、ERDAS计算Landsat 7地表温度:单窗算法实现15.全球都有哪些高光谱遥感卫星?16.ArcMap时间滑块绘制遥感影像的动态变化过程17.ENVI+ERDAS实现Hyperion叶绿素含量反演:经验比值法、一阶微分法18.ArcMap用一个面要素擦除另一个面要素的部分19.全局多项式(趋势面)与IDW逆距离加权插值:MATLAB代码20.ArcMap中矢量数据修改标注Label的方法21.回归克里格、普通克里格插值在ArcGIS中的实现22.GIS中的ROI文件可否由.xml格式转为.roi格式?23.地理探测器Geodetector下载、使用、结果分析方法24.ArcGIS将遥感影像的0值设置为NoData25.基于AvaSpe 2048测定物体的光谱曲线26.ArcGIS地图投影与坐标系转换的方法27.下载、安装CAN-EYE植被参数工具28.如何用CAN-EYE获取植被参数数据?29.ArcMap属性表出现乱码情况的解决30.物体三维模型的构建:3DSOM软件实现侧影轮廓方法31.空间三维模型的编码结构光方法实现:基于EinScan-S软件32.MATLAB时间序列数据重建与平滑:HANTS滤波33.无人机影像的空间三维建模:Pix4Dmapper运动结构恢复法34.Pix4Dmapper空间三维模型的应用实例:GIS选址分析35.用ArcGIS模型构建器生成、导出Python转换空间坐标系的代码36.安装MicroStation软件、Terrasolid插件的方法37.在Visual Studio中部署GDAL库的C++版本(包括SQLite、PROJ等依赖)38.C++ GDAL提取多时相遥感影像中像素随时间变化的数值数组39.创建大量栅格文件并分别写入像元数据:C++ GDAL代码实现40.C++ GDAL用CreateCopy()新建栅格并修改波段的个数41.基于Python GDAL为长时间序列遥感图像绘制时相变化曲线图42.Python实现snap:对齐多张遥感影像的空间范围43.Landsat 7的热红外波段有2个该如何选择?44.遥感图像镶嵌拼接:ENVI的Pixel Based Mosaicking工具操作方法45.ENVI为遥感影像设置空间坐标系的方法46.基于R语言的raster包读取遥感影像47.地理探测器R语言实现:geodetector48.Python基于Excel生成矢量图层及属性表信息:ArcPy49.ArcMap的mxd文件没有数据、显示感叹号怎么办?50.基于R语言的GD库实现地理探测器并自动将连续变量转为类别变量51.Linux电脑如何下载QGIS?52.Python基于Excel数据加以反距离加权空间插值并掩膜图层53.ArcMap分别求取矢量要素各区域的面积54.论文研究区域图的制作方法:ArcGIS55.ArcPy自动绘制大量地图并设置地图要素:Python56.ENVI自动地理配准:GCP地面控制点的自动产生57.Python遥感影像叠加分析:基于一景数据提取另一数据58.R语言求取大量遥感影像的平均值、标准差:raster库59.R语言遍历文件夹求取其中所有栅格文件的平均值60.ENVI无缝镶嵌、拼接栅格数据的方法61.R语言将多景遥感影像拼接在一起的方法
62.Python用shp文件裁剪多个遥感影像的方法
63.Python的GDAL库绘制多波段、长时序遥感影像时间曲线图64.用whl文件安装Anaconda中的GDAL65.ArcGIS创建渔网工具的使用方法66.批量计算遥感影像NDVI:Python代码67.ArcGIS填补面图层的细小空白并删除主体部分外的零散部分68.ArcGIS遥感影像重采样操作及不同算法对比本文介绍基于Python中ArcPy模块,基于矢量数据范围,对大量栅格遥感影像加以批量裁剪掩膜的方法。
首先,话不多说,本文所需要的代码如下所示。
# -*- coding: utf-8 -*-
"""
Created on Tue Dec 13 20:07:48 2022
@author: fkxxgis
"""
import arcpy
from arcpy.sa import *
tif_file_path = "E:/AllYear/Original/"
clip_file_path = "E:/AllYear/Clip/"
shp_file_name = "E:/AllYear/Clip.shp"
arcpy.env.workspace = tif_file_path
tif_file_name = arcpy.ListRasters("*", "tif")
for tif_file in tif_file_name:
key_name = tif_file.split(".tif")[0] + "_C.tif"
clip_file_name = clip_file_path + key_name
clip_file = ExtractByMask(tif_file, shp_file_name)
clip_file.save(clip_file_name)
其中,tif_file_path
表示待裁剪栅格文件的保存路径,clip_file_path
表示裁剪后栅格文件的保存路径,shp_file_name
表示裁剪时所需依据的空间范围矢量文件。
代码整体思路也很简单:首先,我们基于arcpy.ListRasters()
函数,获取tif_file_path
路径下原有的全部.tif
格式的图像文件,并以列表的形式存放于tif_file_name
中;随后,逐一取出tif_file_name
列表中的栅格文件,进行裁剪处理。其中,因为是批量操作,所以需要对每一个输出的裁剪后栅格文件加以分别命名;我们就先通过字符串截取的方式,将原有栅格文件名称的.tif
后缀前的全部内容保留,并在其后添加一个字段_C
,表示是裁剪后的栅格文件,并将其作为裁剪后栅格文件各自的名称。随后,通过ExtractByMask()
函数,基于矢量数据,对栅格文件加以裁剪,并最终通过.save()
函数加以保存。
通过上述代码,我们即可在clip_file_path
路径中看到批量裁剪后的栅格遥感影像文件。
这里需要注意,由于我们用到了ArcPy模块,因此如果大家的Python版本是3.0
及以上,则需要在ArcMap软件中的Python运行框,或其对应的IDLE(如下图所示)中运行上述代码。
至此,大功告成。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
· 易语言 —— 开山篇