首页 > 其他分享 >ArcPy用矢量数据的空间范围裁剪多张遥感影像

ArcPy用矢量数据的空间范围裁剪多张遥感影像

时间:2023-09-09 11:34:53浏览次数:34  
标签:name 裁剪 栅格 遥感 file path tif ArcPy

  本文介绍基于PythonArcPy模块,基于矢量数据范围,对大量栅格遥感影像加以批量裁剪掩膜的方法。

  首先,话不多说,本文所需要的代码如下所示。

# -*- 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(如下图所示)中运行上述代码。

  至此,大功告成。

标签:name,裁剪,栅格,遥感,file,path,tif,ArcPy
From: https://blog.51cto.com/fkxxgis/7418326

相关文章

  • 对遥感数据做不同归一化的体会
    ACE对模为1的归一化数据准确率最高。HD要求归一化方法相同这个我搞不懂。为什么HD要求信号和像素归一化方法相同呢?ACE对其要求不高变换归一化方法也只是略微变动。归一化就是对数据进行处理,希望让不同类之间的差异性大,同类之间差异性小。......
  • ArcGIS计算某个点落在遥感影像中的行数与列数
      本文介绍在ArcMap软件中,求取点要素在栅格图像中所处行号、列号的方法。  如下图所示,我们已知一张栅格图像以及其上的几个点要素;本文就以此数据为例,介绍获取点要素所处行列号的方法。  其中,本文所用的栅格图层与点要素图层都不含有任何地理参考信息。如下图所示,其为栅格......
  • 关于Lua ClippingNode裁剪
    关于裁剪,这个我有遇到一个坑(3.4)的,在做裁剪的时候,整个背景色都是灰色,没有裁剪效果,C++上是可以正常运行,显示裁剪效果,但是用Lua就没有,我找了半天也没有找到原因,。最后在一片文章中看到了这样一句话:需要在初始化app的时候,添加如下代码:_app=newAppDelegate();<spanstyle="color:#......
  • cocos2dx 3.x ClippingNode裁剪图形
    autoclipNode=ClippingNode::create(); clipNode->setInverted(true); clipNode->setAlphaThreshold(0.0f); this->addChild(clipNode,100); autonewLayer=LayerColor::create(Color4B(0,0,0,150));//添加灰色层 clipNode->addChild(newLayer); au......
  • 广州耀海科技有限公司受邀参加第五届中国湿地遥感大会
    7月27-29日,由中国科学院烟台海岸带研究所承办的第五届中国湿地遥感大会在烟台顺利召开。本次会议以“湿地遥感与湿地修复”为主题,吸引了来自全国170多家科研院所、高校等从事湿地遥感及相关科学研究的专家、学者、学生,学术期刊的主编、编辑以及企业家代表共500余人出席会议。7月28......
  • 全球都有哪些高光谱遥感卫星?
      本文对目前国内外的高光谱遥感卫星加以汇总,并对主要卫星进行参数介绍与对比。目录1引言2全球主要星载高光谱数据介绍2.1EOSAM-1MODIS2.2MightySat-2.1FTHSI2.3EO-1Hyperion2.4PROBA-1CHRIS2.5ADEOS-2GLI2.6环境一号HJ-1A卫星2.7珠海一号OHS高光谱卫星2.8高......
  • VTK 实例67:裁剪
    1#include<vtkAutoInit.h>2VTK_MODULE_INIT(vtkRenderingOpenGL2);3VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2);4VTK_MODULE_INIT(vtkRenderingFreeType);5VTK_MODULE_INIT(vtkInteractionStyle);678#include<vtkSmartPointer.h&......
  • 【Python&RS】基于GDAL遥感影像分幅裁剪
    ​    随着科技的进步,遥感影像包含的信息越来越多,存储空间也变得很大,这就导致我们在处理影像时软件会非常的卡。同时目前很火的深度学习也需要对影像分割后制作样本集,所以今天给大家分享下如何使用Python的GDAL库对遥感影像进行分幅裁剪!一、导入需要的三方库   ......
  • Python PIL Image.crop()详解+裁剪四元组定位的小技巧
    0Image.crop详解image.crop是Python中用于裁剪图片的函数。在使用该函数前,我们需要先导入PIL库,即PythonImageLibrary。fromPILimportImage#打开图片img=Image.open('example.jpg')#图片的裁剪区域(区域左上角的坐标为(100,100),右下角的坐标为(300,300))crop_are......
  • 做短视频的有福了——画面裁剪与保存
    选这个,选中目标区域如果,我们想把单帧的画面拿出来这样就可以把这一帧作为封面了......