日常使用的批处理核心函数记录(裁剪栅格、拼接栅格、分波段栅格存储)

现在deepseek太方便了,不用自己费劲去翻大量文档,直接说简单逻辑让它写个基础脚本看着改就行。我还是记录一下使用的核心代码,以下内容在deepseek的帮助下整理,有错误请评论。
1、裁剪栅格

import arcpy
out_raster = arcpy.sa.ExtractByMask(in_raster, in_mask_data)
# or
import arcpy
from arcpy.sa import ExtractByMask
out_raster = ExtractByMask(in_raster, in_mask_data)
"""
in_raster:输入被裁剪的栅格
in_mask_data:掩膜数据,
"""

2、拼接栅格

import arcpy
arcpy.management.MosaicToNewRaster(input_rasters=[],output_location="",raster_dataset_name_with_extension="")
"""
必要参数:
input_rasters: 要拼接的所有栅格文件路径列表
output_location:输出栅格保存的文件夹路径(注意!文件夹路径)
raster_dataset_name_with_extension:输出栅格的文件名(注意!需包含扩展名)
可选参数:
coordinate_system_for_the_raster:输出栅格的坐标系
pixel_type:输出栅格的数据类型,字符串
    "8_BIT_UNSIGNED" - 8位无符号整数 (0-255)
    "16_BIT_UNSIGNED" - 16位无符号整数
    "32_BIT_FLOAT" - 32位浮点数
cellsize:输出栅格的像元大小,默认使用第一个输入栅格的像元大小
number_of_bands:整数
mosaic_method:重叠区域的拼接规则,字符串类型,
    "FIRST" - 使用第一个栅格的值
    "LAST" - 使用最后一个栅格的值
    "BLEND" - 重叠区域混合
    "MEAN" - 使用平均值
"""

3、栅格影像的分波段存储

import arcpy
arcpy.management.CopyRaster(
    in_raster,              # 要复制的栅格数据源,栅格图层、栅格文件路径或栅格波段,
                            # 单独保存波段时:f"{INPUT_RASTER}\\{Band_Name}",{Band_Name}要具体看波段命名格式
    out_rasterdataset,      # 输出栅格文件的保存路径,加含文件后缀的文件名
    {config_keyword},        # 配置关键字
    {background_value},      # 背景值
    {nodata_value},         # 无数据值
    {onebit_to_eightbit},   # 1位转8位
    {colormap_to_RGB},      # 色彩映射表转RGB
    {pixel_type}           # 像素类型
)
# 获取所有波段的名称(未实际测试)
bands = []
desc = arcpy.Describe(in_raster)
for i in range(desc.bandCount):
    band_name = desc.children[i].name  # 获取实际波段名称
    bands.append(band_name)
    print(f"波段 {i+1}: {band_name}")
posted @ 2025-11-12 23:01  MyEngine  阅读(8)  评论(0)    收藏  举报