教程4—Arcpy批量裁剪,通过Arcmap栅格批量裁剪,按掩膜提取,快速剪切栅格,通过矢量数据提取栅格

后续继续更新脚本以及教程:公众号【Crazy Dave

教程1—启用Arcpy编辑器IDLE

教程2—通过Arcpy编辑器IDLE编写代码并运行

教程3—运行别人写好的Arcpy代码

本文介绍了如何用别人写好的Arcpy代码,如何修改代码用于自己的工作当中。

本文所使用的代码:

print("代码开始运行,请勿关闭窗口...")
import arcpy
from arcpy.sa import *
import os

# 设置工作环境为,可以任意路径
arcpy.env.workspace = r"Y:\data6\A1"

# 定义矢量面数据和栅格数据的存储路径
raster_folder = r"Y:\data6\A1"  # 要参见的栅格文件所在的文件夹,只放要裁剪的栅格数据,不要放其他数据
output_folder = r"Y:\data6\A2"  # 裁剪后栅格文件的存储文件夹
vector_data = r"Y:\data6\shiliang\Wulumuqi_BNDRY.shp"#需要修改,修改成你矢量文件的路径

# 获取栅格文件夹下的所有文件
raster_files = [f for f in os.listdir(raster_folder) if f.endswith('.tif')]

# 循环处理每个栅格文件
for raster_file in raster_files:
    raster_path = os.path.join(raster_folder, raster_file)
    
    # 添加"caijian"后缀到文件名
    output_raster = os.path.join(output_folder, "{}_caijian.tif".format(os.path.splitext(raster_file)[0]))

    # 使用ExtractByMask工具提取矢量面数据对应的栅格部分
    out_extract = ExtractByMask(raster_path, vector_data)
    
    # 保存提取的栅格数据到指定目录
    out_extract.save(output_raster)

    print("import {} output {}".format(raster_path, output_raster))

print("提取完成,保存至{}。".format(output_raster))

代码使用方法:

本次有2000.tif至2021.tif的新疆地区22副栅格数据,需要从中裁剪出乌鲁木齐市区域:

1.通过IDLE (Python GUI)打开已经写好的脚本

或者新建一个.txt文件,将代码复制到txt中,将后缀名改名为.py,然后通过IDLE工具打开该脚本:

2.创建一个新路径

将所有要裁剪的栅格数据放到该目录当中,或设定以下这种目录结构:

3.将代码中的路径进行修改

可以参考以下内容:

4.运行代码

通过菜单栏中的Run➡Runmodule运行并获取结果:

ArcMap批量导出栅格数据通常需要通过脚本或者工具来自动化这个过程,因为ArcGIS没有直接提供“批量导出”的功能。以下是使用Python脚本的一种常见方法: 1. 打开ArcMap,并打开包含栅格数据的工作空间。 2. 安装Python for ArcGIS:这将使你能够编写和运行Python脚本。如果你还没有安装,可以从ArcGIS帮助文档中找到安装步骤。 3. 使用Python编辑器(如ArcPy库),创建一个新的Python文件(例如`export_rasters.py`)并添加以下内容: ```python import arcpy # 设置工作空间路径 workspace = "C:/path/to/your/workspace" # 获取当前图层集中的栅格数据 raster_layers = arcpy.ListRasters(workspace) # 遍历所有栅格,设置导出参数 for raster in raster_layers: out_path = r"C:\path\to\export\" + raster.name # 输出目录和文件名 export_options = arcpy.RasterDatasetToASCII_conversion(raster, out_path, "", "BIL") # 格式选择(BIL、TIF等) print(f"Exporting {raster} to {out_path}") # 运行导出操作 arcpy.env.workspace = workspace arcpy.env.overwriteOutput = True arcpy.Executetoolbox("C:/Program Files/ArcGIS/Desktop10.6/bin/python.exe", "RasterDatasetToASCII_conversion", workspace) ``` 4. 替换上述代码中的`workspace`和`output_path`为你实际的工作空间和输出目录。 5. 保存脚本后,在命令窗口或Script Editor中运行它。 请注意,你需要有适当的权限并且确认所选路径存在。此外,如果工作空间包含大量栅格,这可能会花费一些时间。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值