首页 > 其他分享 >ArcPy批量掩膜、重采样大量遥感影像

ArcPy批量掩膜、重采样大量遥感影像

时间:2023-08-01 22:31:57浏览次数:38  
标签:采样 掩膜 arcpy file path tif ArcPy name

  本文介绍基于PythonArcPy模块,对大量栅格遥感影像文件进行批量掩膜批量重采样的操作。

  首先,我们来明确一下本文的具体需求。现有一个存储有大量.tif格式遥感影像的文件夹;且其中除了.tif格式的遥感影像文件外,还具有其它格式的文件。

  我们希望,依据一个已知的面要素矢量图层文件,对上述文件夹中的全部.tif格式遥感影像进行掩膜,并对掩膜后的遥感影像文件再分别加以批量重采样,使得其空间分辨率为1000 m。

  明确了需求后,我们就可以开始具体的操作。首先,本文所需用到的代码如下。

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 15 16:44:26 2022

@author: fkxxgis
"""

import arcpy
from arcpy.sa import *

tif_file_path="E:/LST/Data/NDVI/03_Mosaic/"
shp_file="E:/LST/Data/Region/YellowRiver_nineprovince.shp"
out_file_path="E:/LST/Data/NDVI/04_Mask/"
resample_file_path="E:/LST/Data/NDVI/05_Resample/"
arcpy.env.workspace=tif_file_path
arcpy.env.extent=shp_file

tif_file_name=arcpy.ListRasters("*","tif")
for tif_file in tif_file_name:
    mask_result=ExtractByMask(tif_file,shp_file)
    mask_result_path=out_file_path+"/"+tif_file.strip(".tif")+"_Mask.tif"
    mask_result.save(mask_result_path)
    
arcpy.env.workspace=out_file_path
tif_file_name=arcpy.ListRasters("*","tif")
for tif_file in tif_file_name:
    resample_file_name=tif_file.strip(".tif")+"_Re.tif"
    arcpy.Resample_management(tif_file,resample_file_path+resample_file_name,
                              1000,"BILINEAR")

  其中,tif_file_path是原有掩膜前遥感图像的保存路径,shp_file是已知面要素矢量图层文件的保存路径,out_file_path是我们新生成的掩膜后遥感影像的保存路径,resample_file_path则是最终重采样后遥感影像的保存路径。

  在这里,我们首先利用arcpy.ListRasters()函数,获取路径下原有的全部.tif格式的图像文件,并存放于tif_file_name中;随后,遍历tif_file_path路径下全部.tif格式图像文件(即遍历tif_file_name),并利用ExtractByMask()函数进行掩膜操作;其次,对于掩膜好的图层,在其原有文件名后添加"_Mask.tif"后缀,作为新文件的文件名。

  对全部图像文件完成掩膜操作后,我们继续进行重采样操作。和前述代码思路类似,我们依然还是先遍历文件,并在其原有文件名后添加"_Re.tif"后缀,作为新文件的文件名;随后,利用Resample_management()函数进行重采样。其中,1000表示重采样的空间分辨率,在这里单位为米;"BILINEAR"表示用双线性插值的方法完成重采样。

  以上便是本次操作的全部代码;我们这里选择在 IDLE (Python GUI) 中运行代码。运行完毕,得到的一个结果文件如下图;可以看到,遥感影像已经完成了掩膜,且空间分辨率已经为1000 m。

  至此,大功告成。

标签:采样,掩膜,arcpy,file,path,tif,ArcPy,name
From: https://blog.51cto.com/fkxxgis/6929419

相关文章

  • 上采样和下采样(池化)
    上采样和下采样(池化)池化(下采样)上采样......
  • 雷达中ADC的采样率、采样时间、采样周期
     这一篇记录一下关于雷达采样率、采样时间和采样周期的相关知识,方便后面再用到的时候能够很快的找到。同时也希望能帮助到大家一点。话不多说,进入主题。        本文主要学习三个东西采样率、采样时间和采样周期。分别对三者有一个大概的描述,最后会通过一个例子便于......
  • 蒙特卡洛积分-重要性采样原理及其应用
    我自己是数学菜逼,所以我在学习数学之类的内容的时候,我基本上会去找视频看,虽然视频比较耗时间,但数学真的很难,没办法,菜逼一个。好在在b站上找到一位数学老师有这个视频讲解,真的救命呀!!!放下视频链接https://www.bilibili.com/video/BV17D4y1o7J2?p=1&vd_source=4451d7e9f1ccf3c1318002......
  • v4l2采样usb摄像头并显示
    ubuntu思路:1、首先理解camera工作原理,重点理解 yuv,rgb视频流,即Sensor数据输出的图像格式;大体过程:光线通过镜头Lens进入摄像头内部,通过IR过滤掉红外光,抵达sensor,sensor将光信号转为电信号,在通过ADC电路转为数字信号,此时的数据格式是RAWData;Senso......
  • 计算并统计信号采样值发生变化的间隔时间的简单程序
    (实现方式:octave/matlab)以下是一个简单的MATLAB代码示例,用于统计信号采样值S(采样周期固定)发生变化的时间间隔并绘制统计直方图:%数据P示例S=[1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4,4,4];%计算时间间隔time_intervals=diff(find(diff(S)~=0));%绘制......
  • 拓端tecdat|R语言贝叶斯Metropolis-Hastings Gibbs 吉布斯采样器估计变点指数分布分析
    原文链接:http://tecdat.cn/?p=26578 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于吉布斯采样器的研究报告,包括一些图形和统计输出。指数分布是泊松过程中事件之间时间的概率分布,因此它用于预测到下一个事件的等待时间,例如,您需要在公共汽车站等待的时间,直到下一班车......
  • ArcMap+ArcPy 图层样式批量设置
    originLayerName=""mxd=arcpy.mapping.MapDocument(r"CURRENT")originLayer=arcpy.mapping.ListLayers(mxd,originLayerName)[0]layers=arcpy.mapping.ListLayers(mxd)forlyrinlayers:iflyr.name==originLayer.name:co......
  • GIS中按掩膜提取后栅格颜色错误的解决办法
    在GIS中对landsat8卫星图像进行按掩膜提取操作时,发现提取后即使是合成波段正确图像颜色也是错误的,类似下图:  排查错误后发现不是波段的问题,而是拉伸的问题,可以在符号系统—RGB合成—拉伸选项中将原有的“百分比截断”选项修改为“标准差”选项,按照需要调整n值,能够得到裁剪......
  • 【HMS Core】Health Kit 步数数据查询步骤咨询,血压/血氧的原子采样统计数据类型问题咨
    ​【问题描述】1、在进行步数查询---多日统计数据查询的时候,postman测试,发现了采样数据类型不匹配问题多日统计查询时,数据类型为 "com.huawei.continuous.steps.total"报错。反而数据类型为明细采样数据类型时“com.huawei.continuous.steps.delta”,正常返回。2、血压/血氧的......
  • SimpleITK 重采样数据到固定尺寸
    1、resampleSize这个重采样不是重采样Spacing,却是重采样size,为了达到所有的数据一致的size例如:(880,880,12)采样统一的(880,880,16)因为假如3DUnet网络数据设置了输入格式为(N,C,16,xxx,xxx),可以把每个数据的size都重采样(16,xxx,xxx),然后输入网络。如果直接设置Size为(1......