插個廣告,制作ArcGIS的Tool工具學習下面的教程就對了:
零基礎學習Python制作ArcGIS自定義工具觀看鏈接
《零基礎學習Python制作ArcGIS自定義工具》課程簡介
其實,這就是批量執行了ArcToolbox 分析工具-篩選 功能。
先上代碼,后做解說:
# in_feature:待拆分要素類 # out_folderpath:輸出路徑,注意最后加“/”以與字段名拼接出輸出文件路徑 # split_field:拆分標准字段 import arcpy in_feature="C:/Users/yang/Desktop/中國行政區矢量圖/省級行政區域.shp" out_folderpath="C:/Users/yang/Desktop/1/" split_field="NAME" field_data_list=[]
#code source: https://www.cnblogs.com/yzhyingcool/ QQ:975601416
with arcpy.da.SearchCursor(in_feature,split_field) as cursor:
for row in cursor:
if row[0] not in field_data_list:
field_data_list.append(row[0])
for select_data in field_data_list:
arcpy.Select_analysis(in_feature,out_folderpath+select_data+'.shp',split_field+"="+"'"+select_data+"'")
①該腳本實現把“省級行政區域”按“NAME”字段拆分成多個圖層;
②該腳本只需要在變量聲明時修改注釋中寫明的3個參數。
③主要使用函數 arcpy.Select_analysis 實現拆分功能,其語法如下:
Select_analysis (in_features, out_feature_class, {where_clause})
參數 |
說明 |
數據類型 |
in_features |
從中選擇要素的輸入要素類或圖層。 |
Feature Layer |
out_feature_class |
要創建的輸出要素類。如果不使用任何表達式,則其中將包含所有輸入要素。 |
Feature Class |
where_clause (可選) |
用於選擇要素子集的 SQL 表達式。有關 SQL 語法的詳細信息,請參閱幫助主題 在查詢表達式中使用的元素的 SQL 參考。 |
SQL Expression |