近日偶遇一個(gè)問題,就是需要對(duì)地理數(shù)據(jù)庫(kù)的多個(gè)數(shù)據(jù)集內(nèi)的眾多要素類的字段按照固定的要求進(jìn)行字段別名的設(shè)置,當(dāng)初創(chuàng)建要素類的時(shí)候并沒有這個(gè)需求,所以每個(gè)字段的別名都要重新設(shè)置。
如果只是幾個(gè)字段的話就手動(dòng)改改吧,勤快一點(diǎn),嘿嘿!?。?!可太多的話就。。。。。手動(dòng)改這個(gè)工作量是相對(duì)客觀啊,索性想起能不能批量處理。。。。首先想到了Arcgis的arcpy腳本,網(wǎng)上搜了搜也沒啥現(xiàn)成的干貨,還是自己動(dòng)手吧(PS:自己動(dòng)手豐衣足食,最愛這句話),翻了翻arcpy的幫助文檔,并沒找到直接修改屬性表里字段別名的函數(shù)(PS:才疏學(xué)淺,若有大神知道,請(qǐng)賜教),只找到在新添加字段時(shí)有個(gè)可選參數(shù)支持設(shè)置別名,如:

所以就將修改字段別名的問題,轉(zhuǎn)化為通過新建字段賦值進(jìn)行處理,具體思路是:
1、先遍歷列出地理數(shù)據(jù)庫(kù)(gdb或mdb)里的數(shù)據(jù)集(ListDatasets_management()),然后遍歷每個(gè)數(shù)據(jù)集里的全部要素類,再針對(duì)每個(gè)要素類的屬性表進(jìn)行遍歷字段

2、開始遍歷每個(gè)要素類屬性表的字段,選擇出需要設(shè)置別名的字段,我的需求就是每個(gè)屬性表里有11個(gè)需要設(shè)置字段別名的,且每個(gè)都是固定搭配,如果手動(dòng)改就是重復(fù)性勞動(dòng)(PS:懶人都不喜歡干重復(fù)性勞動(dòng)),例如”SX“的別名是“起點(diǎn)X” 、”SY“的別名是“起點(diǎn)Y”、“EX”的別名是“終點(diǎn)X”、“EY”的別名是“終點(diǎn)Y”。。。首先對(duì)對(duì)字段進(jìn)行遍歷,使用for循環(huán)挨個(gè)字段遍歷,”for fi in arcpy.ListFields(fc1):“使用if進(jìn)行判斷當(dāng)前字段是否需要設(shè)置別名,若需要?jiǎng)t進(jìn)行處理,否則就pass。
3、設(shè)置別名的思路是,首先獲取當(dāng)前字段名稱,然后添加一個(gè)和當(dāng)前字段屬性一致(字段類型、字段長(zhǎng)度等)且名字不同的新字段,然后將當(dāng)前字段值賦值給新建字段值,然后刪除當(dāng)前字段值,再新建一個(gè)和當(dāng)前字段值的字段,再將剛才新建的字段值賦值,最后將其刪除。是不是有點(diǎn)暈,哈哈。。。還是上圖吧,看代碼:

完整代碼自行網(wǎng)盤下載:
鏈接:https://pan.baidu.com/s/1yQaM_B06IxxAgbN64l0FOg 密碼:s3rb
本人GIS出身的菜鳥一枚,目前在規(guī)劃口工作,希望小伙伴們一起多多交流。
最后,本人所寫內(nèi)容及腳本程序僅供大家交流學(xué)習(xí)使用,如需轉(zhuǎn)載使用請(qǐng)注明,謝謝。