赞
踩
遥感影像的提取和分析在地理信息系统、环境监测、农业、城市规划等领域具有重要的应用价值。按掩膜提取遥感影像是一种常用的方法,它可以通过定义掩膜来选择感兴趣的区域,并排除其他干扰因素。
按掩膜提取遥感影像的方法可以分为两个主要步骤:掩膜定义和影像提取。
掩膜定义
是指根据研究目的和需求,确定感兴趣的区域,并将其转化为掩膜图层。常用的掩膜定义方法包括手动绘制、阈值分割、形态学操作等。
影像提取
是指根据掩膜图层,将感兴趣的区域从原始遥感影像中提取出来。常用的影像提取方法包括像元级提取、基于对象的提取等。(本文主要方向)
#!/usr/bin/env python # -*- coding:utf-8 -*- """ @author: LIFEI @time: 2023/8/22 13:28 @file: print_file.py @project: main.py @describe: CWNU """ import os import arcpy from arcpy import env from arcpy.sa import * # 创建批量掩膜提取遥感影像的类 class RSshapemask: # 构造函数 def __init__(self,major_path,workplace,mask_path,outputpath): # 存放待掩膜影像的文件夹路径 self.majorpath = major_path # arcpy的工作空间,代码并不会在此路径中生成数据 self.workplace = workplace # 存放掩膜数据的文件夹路径,记住arcgis创建掩膜数据之后需要对其进行定义投影 self.mask_path = mask_path # 掩膜之后的文件输出路径 self.outputpath = outputpath # 批量读取文件的路径并存储于列表中的子函数 def readimgpath(self): # 创建空列表 img_path_base = [] # os库中listdir作用于访问指定文件夹中的文件,注意是所有文件 for filename in os.listdir(self.majorpath): # 字符串拼接文件夹和文件名 img_path = self.majorpath + '/' + filename # 将拼接的字符串传入列表 img_path_base.append(img_path) # 由于汉字编码的问题,输出采用英文打印 print('The remote sensing image being read is:',img_path) print("全部读取完成!") return img_path_base # 返回列表 # 批量掩膜提取输出的子函数 def masekhandle(self,img_base): # 当前掩膜的工作空间,最好是独立于数据文件的其他路径 env.workspace = self.workplace for i in range(0, len(img_base)): comFilePath = img_base[i] # 字符串拼接输出文件夹和文件名,必须含有后缀 outFilePathName = self.outputpath + str(i + 1) + ".tif" # ExtractByMsak_sa函数专门用于掩膜提取的工具 outExtractByMask = arcpy.gp.ExtractByMask_sa(comFilePath, self.mask_path, outFilePathName) # 目的防止出错 env.overwriteOutput = True # 打印 print("The remote sensing image being output for mask extraction is:",outFilePathName) print("掩膜提取完成!") # 主函数 if __name__ == '__main__': # 构造函数参数设置,注意路径中为'/',直接复制粘贴的路径为'\' # 1、手动将'\'改为'/'; 2、在路径前面加上r防止路径转义 ; project = RSshapemask('D:/data/img', "D:/data/result", "D:/data/shp/shp.shp", "D:/data/result/landsat4_TM") img_path_base = project.readimgpath() # 将第一个子函数返回列表赋值给img_path_base project.masekhandle(img_path_base) # 传入第二个子函数
亲测有效,花费时间大约20秒
掩膜结果输出展示:
提示:谨慎运行,大概率会报错
# -*- coding: utf-8 -*- # --------------------------------------------------------------------------- # mask.py # Created on: 2023-08-21 14:54:08.00000 # (generated by ArcGIS/ModelBuilder) # Description: # --------------------------------------------------------------------------- # Import arcpy module import arcpy # Load required toolboxes arcpy.ImportToolbox("模型函数") # Local variables: img = "D:\\data\\img" L5119043_04320100524_B10_TIF = "D:\\data\\img\\L5119043_04320100524_B10.TIF" shp_shp = "D:\\data\\shp\\shp.shp" v_name_ = "D:\\data\\result\\%name%" 名称 = "L5119043_04320100524_B10" # Process: 迭代栅格数据 arcpy.IterateRasters_mb(img, "", "", "NOT_RECURSIVE") # Process: 按掩膜提取 arcpy.gp.ExtractByMask_sa(L5119043_04320100524_B10_TIF, shp_shp, v_name_)
按掩膜提取遥感影像的原理是基于像元级别的图像处理。掩膜定义过程中,根据研究目的和需求,将感兴趣的区域转化为二值掩膜图层。在影像提取过程中,将掩膜图层与原始遥感影像进行像元级别的运算,提取出感兴趣的区域。这种方法可以排除其他干扰因素,提高遥感影像的准确性和可靠性。
按掩膜提取遥感影像的作用主要体现在以下几个方面:
区域选择:可以根据研究目的和需求,选择感兴趣的区域进行分析和研究。
干扰排除:可以排除其他干扰因素,提高遥感影像的准确性和可靠性。
数据提取:可以从大量的遥感影像数据中提取出感兴趣的区域,减少数据处理的复杂性和计算量。
最新技术:
随着遥感技术的不断发展,按掩膜提取遥感影像的方法也在不断更新和改进。最新的技术包括:
深度学习方法:
利用深度学习算法,可以自动学习和提取遥感影像中的特征,提高影像提取的准确性和效率。
多源数据融合:
将多源遥感数据进行融合,可以提供更全面和准确的遥感影像提取结果。
高分辨率影像处理:针对高分辨率遥感影像,开发了一系列针对性的处理方法,提高影像提取的精度和细节表达能力。
掩膜偏差求解:
在按掩膜提取遥感影像的过程中,可能会出现掩膜偏差的情况。掩膜偏差是指由于掩膜定义不准确或影像提取算法的局限性,导致提取结果与实际情况存在差异。
为了解决掩膜偏差问题,可以采用以下方法:
按掩膜提取遥感影像是一种常用的方法,它可以通过定义掩膜来选择感兴趣的区域,并排除其他干扰因素。随着遥感技术的不断发展,最新的技术如深度学习方法和多源数据融合等,为按掩膜提取遥感影像提供了更高的准确性和效率。然而,掩膜偏差仍然是一个需要解决的问题,需要通过优化掩膜定义、算法改进和数据验证等方法来减少偏差的发生。未来,随着技术的进一步发展,按掩膜提取遥感影像的方法将会更加精确和可靠。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。