GIS之arcgis系列10:arcpy实现批量掩膜提取

按掩膜提取 (Spatial Analyst)

提取掩膜所定义区域内的相应栅格像元。

OutRas = ExtractByMask(InRas1, InMsk1, "INSIDE")

使用情况

  • 输入栅格中的其他属性(若有的话)将按照原样添加到输出栅格属性表。 根据所记录的属性,某些属性值可能需要重新计算。

  • 将多波段栅格指定为输入栅格(Python 中的 in_raster)值时,将使用所有波段。

    要处理一系列来自多波段栅格的波段,请首先使用波段合成工具创建由这些特定波段组成的栅格数据集。 然后将结果用作输入栅格(Python 中的 in_raster)值。

    默认输出格式为地理数据库栅格。 如果将 Esri 格网堆栈指定为输出格式,则堆栈的名称不能以数字开头、不能使用空格且长度不得超过九个字符。

  • 当为输入栅格掩膜指定多波段栅格时,将只在运算中使用第一个波段。

  • 当输入栅格(Python 中的 in_raster)值和输入栅格或要素掩膜数据数据(Python 中的 in_mask_data)具有相同的像元大小,且像元对齐,则可将其直接应用于工具中。 在工具操作期间,系统不会对其进行内部重采样。

    如果像元大小不同,则输出像元大小将为输入的最大值,而输入栅格值将在内部用作捕捉栅格。 如果像元大小相同,但是像元未对齐,则输入栅格值将在内部用作捕捉栅格。 在执行提取操作之前,上述任一情况都会触发内部重采样。

    有关详细信息,请参阅像元大小捕捉栅格环境主题。

  • 默认情况下,如果掩膜输入为一个要素,则可使用像元大小和输入栅格值中的像元对齐(捕捉栅格)从内部将其转换为栅格。

  • 运行按掩膜提取工具时,如果在环境设置中指定了掩膜,则输出栅格仅包含位于环境掩膜和输入掩膜数据交集内区域的像元值。

  • 您可以使用分析范围(Python 中为 analysis_extent)参数为独立工具操作明确指定输出分析区域,或将覆盖环境设置作为工作流的一部分。 您可以通过输入值、选择显示范围、选择图层或浏览至输入数据集的方式指定范围。

  • 默认分析范围值是从输入栅格值和输入栅格或要素掩膜数据值的交集计算得出的。

  • 如果分析范围没有明确指定为参数值,则其会从分析环境设置中派生。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst


完整代码如下:

python 复制代码
import os
import arcpy

arcpy.CheckOutExtension("spatial")
arcpy.gp.overwriteOutput = 1

input_dir = arcpy.GetParameterAsText(0)
output_dir = arcpy.GetParameterAsText(1)
mask = arcpy.GetParameterAsText(2)

tif_files = []
for dirpath, dirnames, filenames in os.walk(input_dir):
    for filename in filenames:
        if filename.endswith('.tif'):
            tif_files.append(os.path.join(dirpath, filename))

error_files = []

for i, tif_file in enumerate(tif_files, start=1):

    relative_path = os.path.relpath(tif_file, input_dir)

    base_name, ext = os.path.splitext(relative_path)
    out_file = os.path.join(output_dir, base_name +ext)

    if not os.path.exists(os.path.dirname(out_file)):
        os.makedirs(os.path.dirname(out_file))
        arcpy.gp.ExtractByMask_sa(tif_file, mask, out_file)
相关推荐
城数派4 小时前
2026年500米分辨率DEM地形数据(全球/全国/分省/分市)
数据库·arcgis·信息可视化·数据分析·excel
天青色等烟雨..2 天前
R+VIC模型融合实践技术应用及未来气候变化模型预测
大数据·人工智能·arcgis·语言模型·数据分析
玩大数据的龙威5 天前
【ArcGIS技巧】—防止注记压盖之引出标注
arcgis
逆境不可逃6 天前
【与我学 ClaudeCode】并发篇 之 Background Tasks :守护线程与异步通知队列
人工智能·arcgis·agent
中科GIS地理信息培训7 天前
【ArcGIS Pro 3.7新增功能】使用交互式等高线可视化栅格数据
arcgis·arcgis pro
非科班Java出身GISer7 天前
ArcGIS JS 基础教程(7):Global与Local场景模式
arcgis·arcgis js 教程·arcgis js 基础·arcgis js 场景模式·arcgis js 切换模式
中科GIS地理信息培训7 天前
【ArcGIS Pro 3.7新增功能2】新型高光谱图像工具:连续谱去除、PCA与 MNF 降低数据复杂性、使用波长直接计算、支持STAC等
人工智能·arcgis·目标跟踪
杨超越luckly7 天前
HTML应用指南:利用GET请求获取智己汽车门店位置信息
python·arcgis·html·汽车·数据可视化
弹简特8 天前
【Vue3速成】01-npm+vue初体验+vite构建vue工程化
vue.js·arcgis·npm
梦想的初衷~8 天前
AI辅助下基于ArcGIS Pro的SWAT模型全流程高效建模实践与深度进阶应用
人工智能·arcgis·气候·水文·地理信息·环境科学