Arcpy按屬性(字段值)不同將shp分割為多個獨立shp_適用點線面矢量


利用代碼可以進行批量處理,安裝有10.5及以上版本ArcGIS可以使用工具Split by attributes完成上述任務

# -*- coding: utf-8 -*-
# Import system modules
import re
import arcpy
from arcpy import env

# function for replace special characters
def validateTitle(title):
    rstr = r"[\/\\\:\*\?\"\<\>\|\,\.\ ]"  # '/ \ : * ? " < > | , . '
    new_title = re.sub(rstr, "_", title)  # replace rstr by '_'
    return new_title

# Set workspace
env.workspace = "C:/Users/pan/Desktop/test" # your workspace

# Set local variables
in_features = "C:/Users/pan/Desktop/test/rivers.shp" # replace by your filepath to split

# Open a searchcursor
rows = arcpy.SearchCursor(in_features, fields="NAME") # replace "NAME" by your target field name

# Iterate through the rows in the cursor, select the river by name and export,
for row in rows:
    selected_field_value = row.getValue("NAME")
    where_clause = '"NAME" = \'%s\''%(str(selected_field_value))
    outfilename = validateTitle(str(selected_field_value))
    out_feature_class = "C:/Users/pan/Desktop/test/out/%s.shp"%(outfilename)

    # Execute Select
    arcpy.Select_analysis(in_features, out_feature_class, where_clause)
    print(str(selected_field_value)+' has done!!!')

如果對代碼中調用的Arcpy功能API不了解,可以移步ArcGIS幫助


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM