秦沂林,秦峰楊
(1.重慶忠縣國有林場;2.重慶工業(yè)職業(yè)技術(shù)學(xué)院,重慶 忠縣 404300)
在林業(yè)調(diào)查設(shè)計(jì)成果圖中,要分行政區(qū)域從上往下、從左向右對小班編號,若小班數(shù)量多,內(nèi)業(yè)工作量就大。如按傳統(tǒng)方法逐個(gè)編號,費(fèi)時(shí)費(fèi)力,一旦出錯(cuò),功虧一簣,又得重新編輯。
筆者在ArcMap圖層屬性表中,添加Xmin(代表小班周界上點(diǎn)集中橫坐標(biāo)最小值)、Ymax(代表小班周界上點(diǎn)集中縱坐標(biāo)的最大值)、自動(dòng)編號等字段,編輯Phthon語句,直接求得Xmin、Ymax數(shù)據(jù),再導(dǎo)出屬性表,利用常用Excel2007中IF函數(shù)嵌套ROW函數(shù)、MATCH函數(shù)及數(shù)組公式,簡化了Arcgis 10.0操作,實(shí)現(xiàn)了不同區(qū)域內(nèi)小班號自動(dòng)賦值,解決了橫向跨越多個(gè)小班界的小班賦值的瑕疵,節(jié)省了時(shí)間、人力和購買插件資金,提高了處理內(nèi)業(yè)的工作效率,達(dá)到了事半功倍的效果。
啟動(dòng)ArcMap,將需要編號的SHP格式的小班面文件添加到工作區(qū),打開屬性表,添加Xmin、Ymax、自動(dòng)編號等字段后,在SHP格式的小班面圖層處于編輯狀態(tài)下,單擊鼠標(biāo)左鍵選中Xmin字段列,單擊鼠標(biāo)右鍵彈出對話框,打開字段計(jì)算器選項(xiàng),選中Phthon,編輯Phthon語句!shape.extent.Xmin! (在英文輸入狀態(tài)編輯下),單擊“確定”(如圖1),直接求得Xmin值。同方法編輯Phthon語句!shape.extent.Ymax!,直接求得Ymax值。
圖1
在Arcmap工作界面,點(diǎn)擊圖層屬性表的表選項(xiàng)下拉框,切換到導(dǎo)出選項(xiàng),導(dǎo)出屬性表,其導(dǎo)出的是DBF文件,用Excel2007打開導(dǎo)出的DBF文件,另存為以 .xls擴(kuò)展名的Excel表。刪除不需要的字段(其作用是提高計(jì)算機(jī)運(yùn)行速度),左鍵單擊工具欄中數(shù)據(jù)選項(xiàng),展開下一級工具條,左鍵單擊表格中有內(nèi)容的任意位置,左鍵單擊工具欄中數(shù)據(jù)下的排序選項(xiàng),添加主要關(guān)鍵字“鄉(xiāng)鎮(zhèn)”, 次要關(guān)鍵字“村”、“Ymax”、“Xmin”,將“鄉(xiāng)鎮(zhèn)”“村”及“Ymax”字段按降序排序,“Xmin”字段按升序排序,左鍵單擊“確定”,完成所需字段排序。此項(xiàng)操作目的是實(shí)現(xiàn)全縣不同鄉(xiāng)鎮(zhèn)不同村區(qū)域內(nèi)小班分片編號。
如小班編號要按上步排序好的自然行政村編號,則打開新存儲的Excel表,在自動(dòng)編號字段對應(yīng)列首空格內(nèi),鍵入IF函數(shù)并嵌套ROW、MATCH函數(shù)(英文輸入)=IF(G2=$G$2:$G$89860,ROW()-MATCH(G2,$G$2:$G$89860,0),"") ,按住用鼠標(biāo)左鍵拖動(dòng)選中公式內(nèi)所有G2:G89860,點(diǎn)擊F4鍵直至變成“$G$2:$G$1952”樣式后,“$G$2:$G$89860”表示該區(qū)域絕對引用,向下填充時(shí)不會改變引用區(qū)域。選中公式內(nèi)容格,按下shift鍵不放,滑動(dòng)下拉條,點(diǎn)擊要填充的最后格后,放開shift鍵,則自動(dòng)按要求賦值后保存(如圖2)。
圖2
打開ArcMap圖層屬性表的連接選項(xiàng),按屬性表及.xls擴(kuò)展名的Excel表中唯一且內(nèi)容不重復(fù)的“OBJECTID”字段連接后,用字段計(jì)算器,令“小班號=自動(dòng)編號”,單擊確定,最后導(dǎo)出該圖層全部數(shù)據(jù)。
筆者用ArcMap加載原忠縣2015年林地變更Shape格式數(shù)據(jù),按小班質(zhì)心坐標(biāo)值編輯的小班號,標(biāo)注小班號后截圖(圖3)。按1-4步驟操作后,筆者用Excel2007時(shí),為減少計(jì)算機(jī)內(nèi)存負(fù)荷,刪除不需要的字段,經(jīng)過20 s運(yùn)行,實(shí)現(xiàn)全縣89 860個(gè)小班號自動(dòng)賦值,連接至原忠縣2015年林地變更Shape格式屬性表后標(biāo)注,選擇同一區(qū)域截圖(圖4)。經(jīng)圖3與圖4比對,發(fā)現(xiàn)兩者有5處不同。圖4是嚴(yán)格取小班周界點(diǎn)集坐標(biāo)極值,從上往下,從左向右自動(dòng)賦值的結(jié)果。如按傳統(tǒng)方法編號,全縣89 860個(gè)小班,每天編2 000個(gè)小班號,需45 d,勘誤不經(jīng)過比對,很難發(fā)現(xiàn)的。按筆者的方法,操作和運(yùn)算總時(shí)不超過30 min,能迅速完成全縣 89 860個(gè)小班號的自動(dòng)賦值,又快又準(zhǔn),達(dá)到事半功倍效果。
圖3
圖4