日常使用的批处理核心函数记录(裁剪栅格、拼接栅格、分波段栅格存储)
现在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}")
浙公网安备 33010602011771号