当我们在利用91卫星助手下载大影像的时候需要进行渔网划分工具,
利用arcmap绘制矢量对范围,并进行渔网均匀划分、分割提取成单个shp文件
渔网范围
绘制矩形范围矢量shp文件
文件目录,选择一个目录,点击右键,新建,Shapefile...

设置名称,设置要素为面



编辑工具最后一个工具,选择矢量文件,选择矩形,后面就可以画上范围矩形了

绘制完成后,点击停止编辑按钮,即可保存矢量文件了。
对矩形范围矢量进行渔网操作
数据管理工具 -> 采样 -> 创建渔网
设置输出文件绝对路径,路径下这个文件可以不存在
选择范围文件
设置渔网参数,几行几列
设置输出矢量为"面"
点击确定按钮

按照属性ID分割成单个文件
用python程序进行分割
python
# -*- coding: utf-8 -*-
import arcpy
import os
"""
将多面SHP文件按指定属性分割为单个面文件 ,运行环境python2.7 arcmap自带的环境
参数:
input_shp: 输入的多面SHP文件路径(如 r"C:\data\input.shp")
attribute_field: 用于分割的属性字段名(如 "ID" 或 "NAME")
output_folder: 输出单个面文件的文件夹路径
程序运行样例:
C:\Python27\ArcGIS10.8\python.exe C:\splitShp.py
"""
def split_shapefile_by_attribute(input_shp, attribute_field, output_folder):
# try:
print(input_shp)
# 检查输入文件是否存在
if not arcpy.Exists(input_shp):
raise Exception("输入文件不存在: {input_shp}")
# 检查属性字段是否存在
fields = [f.name for f in arcpy.ListFields(input_shp)]
if attribute_field not in fields:
raise Exception("属性字段不存在: {attribute_field}")
# 创建输出文件夹(若不存在)
if not os.path.exists(output_folder):
os.makedirs(output_folder)
print("已创建输出文件夹: {output_folder}")
# 获取属性字段的所有唯一值
unique_values = []
with arcpy.da.SearchCursor(input_shp, [attribute_field]) as cursor:
for row in cursor:
value = row[0]
if value not in unique_values:
unique_values.append(value)
print("共检测到 {} 个唯一属性值,开始分割...".format(len(unique_values)))
# 遍历每个唯一值,导出对应面要素
for value in unique_values:
# 处理属性值中的特殊字符(避免文件名错误)
safe_value = str(value).replace("/", "_").replace("\\", "_").replace(":", "_")
output_shp = os.path.join(output_folder, "{}.shp".format(safe_value))
# 按属性筛选并导出
# where_clause = "{arcpy.AddFieldDelimiters({}, {})} = '{}'".format(input_shp,attribute_field,value)
# where_clause = f"{arcpy.AddFieldDelimiters(input_shp, attribute_field)} = '{value}'"
# arcpy.Select_analysis(input_shp, output_shp, where_clause)
# 按属性筛选并导出(兼容Python 2.7的字符串格式化)
field_delimiter = arcpy.AddFieldDelimiters(input_shp, attribute_field)
if isinstance(value, (int, float)):
# 数值型字段不加引号
where_clause = u"%s = %s" % (field_delimiter, value)
else:
# 字符串型字段加单引号
where_clause = u"%s = '%s'" % (field_delimiter, value)
arcpy.Select_analysis(input_shp, output_shp, where_clause)
print(u"已导出: %s" % output_shp)
print("已导出: {}".format(output_shp))
print("分割完成!所有文件已保存至输出文件夹。")
# except Exception as e:
# print("执行出错: {str(e)}")
# --------------------------
# 以下为脚本配置和运行部分
# --------------------------
if __name__ == "__main__":
# 请根据实际情况修改以下参数
input_shapefile = r"D:\temp\ArcMapCut\Cut\shp\xinzhu_yuwang_v2.shp"
split_field = "FID"
output_directory = r"D:\temp\ArcMapCut\Cut\shp\split"
# 调用函数执行分割
split_shapefile_by_attribute(input_shapefile, split_field, output_directory)