Arcpy從多個(gè)圖層中提取屬性值
上一篇文章中我們介紹了如何將一個(gè)圖層根據(jù)多個(gè)字段拆分到不同的要素?cái)?shù)據(jù)集之中。那么這次我們反過來,從多個(gè)要素?cái)?shù)據(jù)集中的多個(gè)要素中提取屬性值。如下這種情況

我要從每個(gè)要素?cái)?shù)據(jù)集中 ,每個(gè)要素類中,查詢這個(gè)要素類有多少個(gè)城市并將城市的數(shù)量和名稱保存到一個(gè)記錄里面。
如果按照手動(dòng)的方式需要在gis軟件中逐一打開圖層,查詢導(dǎo)出、合并。為了避免這種低效的方式,我們使用arcpy來進(jìn)行批處理。
工具:ArcGIS Pro 2.8 以及附帶的python解釋器(python版本:3.7.10)

導(dǎo)入包并設(shè)定環(huán)境
接下來,有三層循環(huán)。我將逐一介紹這三層循環(huán),【代碼確實(shí)不夠高效( ̄へ ̄),能用就行】
第一步:獲取環(huán)境中的要素?cái)?shù)據(jù)集,并返回每個(gè)要素?cái)?shù)據(jù)集的要素名。并新建輸出信息的表單
第一層遍歷:遍歷所有的要素?cái)?shù)據(jù)集,并查詢要素?cái)?shù)據(jù)集中的要素類。返回一個(gè)要素列表
注意:ListFeatureClasses函數(shù)中:第一個(gè)參數(shù)是工作空間由于之前已經(jīng)設(shè)定過默認(rèn)工作空間所以這里缺省了,第二個(gè)參數(shù)是限定要素類型(此處不限定),第三個(gè)限定要素所屬的要素?cái)?shù)據(jù)集
第二層遍歷:遍歷所有要素,將要素名作為ID存放于輸出表單中,確定獲取要素中的字段。新建SearchCursor準(zhǔn)備遍歷屬性表。
第三層遍歷:遍歷屬性表,逐記錄的返回要素值,并存放在初始化的輸出列表之中。將數(shù)據(jù)寫入到輸出列表,并進(jìn)行到下一次循環(huán)。

最后,將所有的部分整合,最終的代碼如下:

最后展示輸出結(jié)果:

ID:要素名稱;coms_EN:要素中城市的英文名稱; coms_CH:要素中城市的中文名稱; number:城市數(shù)量