陳棟,姚維嶺
(中國(guó)自然資源航空物探遙感中心,北京 100083)
長(zhǎng)期以來,礦產(chǎn)資源開發(fā)給國(guó)民經(jīng)濟(jì)發(fā)展提供了強(qiáng)有力的保障,但由于多種原因,我國(guó)礦產(chǎn)資源開發(fā)“規(guī)模小、分布散、數(shù)量多”的局面仍然存在,礦產(chǎn)資源開發(fā)利用粗放、生產(chǎn)效率低、資源浪費(fèi)嚴(yán)重的現(xiàn)象在部分地區(qū)一直有著不同程度的顯現(xiàn)[1]。礦山遙感監(jiān)測(cè)可以為礦山地質(zhì)環(huán)境恢復(fù)治理工作提供決策數(shù)據(jù)和監(jiān)督手段[2]。通過遙感監(jiān)測(cè)了解和掌握礦業(yè)活動(dòng)占地情況、礦區(qū)地質(zhì)災(zāi)害分布狀況和礦山環(huán)境污染情況,為礦區(qū)環(huán)境綜合整治提供決策數(shù)據(jù),同時(shí)也為礦山地質(zhì)環(huán)境恢復(fù)治理工作提供監(jiān)督手段。礦山遙感監(jiān)測(cè)數(shù)據(jù)在礦產(chǎn)資源規(guī)劃、保持礦產(chǎn)資源可持續(xù)開發(fā)與利用、維護(hù)礦業(yè)秩序及綜合整治礦區(qū)環(huán)境等領(lǐng)域提供了重要基礎(chǔ)信息[3]。
礦山遙感監(jiān)測(cè)是我國(guó)長(zhǎng)期開展的一項(xiàng)礦情調(diào)查工作,監(jiān)測(cè)成果的表達(dá)方式以圖件、表格、矢量數(shù)據(jù)為主。全國(guó)每年均會(huì)產(chǎn)生大量的礦山新增圖斑,主要包括新增礦山恢復(fù)治理土地和新增礦山損毀土地兩種類型。圖斑是當(dāng)前礦山工作中的最小單位,也是對(duì)數(shù)據(jù)進(jìn)行編輯整理、分析處理以及報(bào)表圖件制作的核心單位。所有的礦山監(jiān)測(cè)、檢查工作都是圍繞著圖斑來進(jìn)行的[4]。圖斑隸屬于礦山主體,一個(gè)礦山主體可能有一個(gè)或多個(gè)圖斑,若想要區(qū)分不同圖斑,納入數(shù)據(jù)庫(kù)中作為基礎(chǔ)數(shù)據(jù)管理,就需要用到圖斑編號(hào)。圖斑編號(hào)不僅是每一個(gè)圖斑的“身份證”,也是實(shí)現(xiàn)多期數(shù)據(jù)對(duì)比以及統(tǒng)計(jì)數(shù)據(jù)生成中不可或缺的一項(xiàng)內(nèi)容,其準(zhǔn)確性與唯一性是礦山遙感監(jiān)測(cè)數(shù)據(jù)的關(guān)鍵,也是保證成果數(shù)據(jù)質(zhì)量的基礎(chǔ)。
在目前礦山新增恢復(fù)治理及違法開采圖斑的成果制作中,給新增圖斑進(jìn)行編號(hào)是一項(xiàng)既費(fèi)時(shí)又容易出現(xiàn)差錯(cuò)的工作。若出現(xiàn)錯(cuò)誤,對(duì)本期數(shù)據(jù),甚至對(duì)未來的工作也會(huì)產(chǎn)生很大的影響,也不利于以數(shù)據(jù)為支撐的礦政管理服務(wù)。
目前來看,礦山遙感監(jiān)測(cè)新增圖斑編號(hào)的工作具有以下難點(diǎn):
1)圖斑數(shù)據(jù)關(guān)聯(lián)密切,結(jié)構(gòu)復(fù)雜,要求嚴(yán)格。依據(jù)目前的項(xiàng)目技術(shù)規(guī)范[5],礦山新增損毀和恢復(fù)治理圖斑編號(hào)共15位,由4部分組成,這4部分分別與圖斑的空間數(shù)據(jù)和屬性數(shù)據(jù)相關(guān)聯(lián),導(dǎo)致結(jié)構(gòu)復(fù)雜,要求嚴(yán)格。
2)圖斑編號(hào)工作量大,重復(fù)性高,易出錯(cuò)。圖斑編號(hào)的編制工作往往是以省或縣為單元,涉及圖斑少則幾百,多則成千上萬,數(shù)據(jù)量龐大,重復(fù)性強(qiáng),容易出現(xiàn)因技術(shù)人員頻繁、重復(fù)性的工作而導(dǎo)致的缺項(xiàng)漏項(xiàng)錯(cuò)誤。另外,一旦在編制過程中某個(gè)圖斑編號(hào)錯(cuò)誤,修改過程都需要重新排序一次,導(dǎo)致較高的時(shí)間和人力成本。
3)圖斑編號(hào)編制標(biāo)準(zhǔn)變化頻繁。因礦山遙感監(jiān)測(cè)工作具有持續(xù)性的特點(diǎn),項(xiàng)目技術(shù)規(guī)范經(jīng)常會(huì)根據(jù)上級(jí)管理部門或服務(wù)對(duì)象的要求進(jìn)行修改,技術(shù)人員需要不斷更新技術(shù)方案,按照新要求對(duì)圖斑進(jìn)行重新編制,對(duì)技術(shù)人員的工作經(jīng)驗(yàn)有很高的要求。
為此,在當(dāng)前礦山遙感監(jiān)測(cè)工作數(shù)字信息化、流程規(guī)范化、信息提取自動(dòng)化、統(tǒng)計(jì)分析智能化的趨勢(shì)下,利用計(jì)算機(jī)快速、高效、準(zhǔn)確地完成數(shù)量龐大且關(guān)系復(fù)雜的礦山圖斑自動(dòng)化編號(hào)就成為了一項(xiàng)亟待解決的工作,具有重要的現(xiàn)實(shí)意義和應(yīng)用價(jià)值。
數(shù)據(jù)提交說明是為了滿足礦山遙感調(diào)查與監(jiān)測(cè)成果數(shù)據(jù)入庫(kù)以及信息系統(tǒng)開發(fā)的需要,對(duì)需要提交檢查并入庫(kù)的成果數(shù)據(jù)內(nèi)容、數(shù)據(jù)格式、數(shù)據(jù)說明等信息做出的規(guī)定和要求[5]。需提交的成果數(shù)據(jù)內(nèi)容有矢量數(shù)據(jù)、切圖、元數(shù)據(jù)表等,而新增圖斑編號(hào)不僅是矢量?jī)?nèi)圖斑的唯一編號(hào),同時(shí)也與切圖名、元數(shù)據(jù)表索引緊密相關(guān)[6]。在最新一期二級(jí)項(xiàng)目技術(shù)要求中規(guī)定,新增圖斑編號(hào)共15位,由4部分組成,包括6位縣級(jí)行政區(qū)劃代碼、4位影像年份、1位類別代碼和4位順序號(hào),其中類別代碼用于區(qū)分新增損毀與新增恢復(fù)治理圖斑,新增損毀圖斑為S,新增恢復(fù)治理圖斑為H。圖1是目前的礦山新增恢復(fù)治理及新增損毀圖斑編號(hào)示意圖。
圖1 礦山新增恢復(fù)治理及新增損毀圖斑編號(hào)示意圖Fig.1 Diagram of new restoration and new damage patches serial number
在手工編寫圖斑編號(hào)的過程中,行政區(qū)劃代碼、影像年份、類別代碼同一縣域內(nèi)均相同,規(guī)則較為簡(jiǎn)單,保證整體一致性即可;較為復(fù)雜的是順序號(hào)。近年來,新增圖斑編號(hào)在順序號(hào)這一項(xiàng)上的規(guī)則主要有兩項(xiàng),即在每個(gè)縣域內(nèi),首先以“從左到右,從上到下”的編號(hào)順序,同時(shí)應(yīng)保證同一礦山主體內(nèi)圖斑的編號(hào)連續(xù);也就是若圖斑在空間上連續(xù),但是所屬礦山主體不同,也需要根據(jù)礦山主體來進(jìn)行分組分別連續(xù)編號(hào)。
以圖2為例。圖2(a)為只遵從 “從左到右,從上到下”規(guī)則排序的示意圖,其中有淡綠與淡黃色的區(qū)域分別代表兩個(gè)礦山主體XKZ1與XKZ2。若引入礦山主體的約束,1,2,4,5屬于同一礦山主體XKZ1;3,6,7屬于另一礦山主體XKZ2,那么在圖斑編號(hào)的過程中內(nèi)應(yīng)先對(duì)XKZ1內(nèi)這4個(gè)圖斑進(jìn)行連續(xù)編號(hào),再對(duì)XKZ2號(hào)礦山主體內(nèi)接著上個(gè)礦山主體內(nèi)最大序號(hào)進(jìn)行編號(hào),這樣兩許可證相交區(qū)域的圖斑編號(hào)順序就發(fā)生了改變,順序如圖2(b)。上述即為當(dāng)前的新增圖斑編號(hào)手動(dòng)工作方式,但是在現(xiàn)實(shí)工作中,各種圖斑之間的幾何關(guān)系比上圖更為復(fù)雜,所以在人工排序時(shí)時(shí)常會(huì)出現(xiàn)漏編、排序規(guī)則不統(tǒng)一的情況,對(duì)于整個(gè)項(xiàng)目成果的統(tǒng)一規(guī)范化表達(dá)、有效應(yīng)用會(huì)產(chǎn)生不利影響。因此,自動(dòng)編號(hào)的實(shí)現(xiàn)對(duì)于工作效率以及工作準(zhǔn)確度的提升、成果的規(guī)范化表達(dá)具有重要價(jià)值。
(a)無礦山主體約束 (b)有礦山主體約束
當(dāng)前礦山新增圖斑及成果是以省為單位進(jìn)行提交的,而在每個(gè)省內(nèi)是分縣進(jìn)行的圖斑編號(hào)。分析數(shù)據(jù)提交說明中對(duì)于新增圖斑編號(hào)的命名規(guī)則,實(shí)現(xiàn)自動(dòng)編號(hào)的需求,主要有如下幾步:①讀取全省域的矢量,根據(jù)縣行政代碼字段進(jìn)行分割,形成每個(gè)縣一個(gè)矢量;②針對(duì)每一個(gè)縣域矢量,將其每一條記錄按照左上到右下的順序排列;③再根據(jù)礦山主體編號(hào)進(jìn)行分組,同一主體進(jìn)行順序排號(hào);④補(bǔ)齊序號(hào)前的縣代碼、年份、類別代碼,寫入屬性表中對(duì)應(yīng)字段。
本文所提出的礦山新增圖斑編號(hào)自動(dòng)編制工具基于ArcGIS10.2版本的ArcPy以及ArcToolbox開發(fā)完成。ArcGIS軟件的安裝自動(dòng)配置ArcPy的運(yùn)行環(huán)境(Python2.7)以及簡(jiǎn)易代碼編輯器IDLE,為操作人員省去繁瑣的環(huán)境配置過程。
Python是一種解釋型的、通用的編程語言,具有簡(jiǎn)單易學(xué)、功能強(qiáng)大、可跨平臺(tái)、不受局限等優(yōu)點(diǎn)[7]。ArcPy是ESRI公司針對(duì)有批處理腳本以及二次開發(fā)需求的ArcGIS使用者,提供的一個(gè)Python站點(diǎn)包,是以arcgisscripting模塊為基礎(chǔ)并繼承了arcgisscripting功能構(gòu)建而成的,目的是以實(shí)用高效的方式通過Python執(zhí)行地理數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動(dòng)化創(chuàng)建等功能[8]。簡(jiǎn)單來說,就是ArcGIS的一些核心功能,如相交分析、屬性表查詢等功能,可以利用代碼來進(jìn)行組合,實(shí)現(xiàn)依次運(yùn)行的整合性功能組和一些需要大量重復(fù)操作的自動(dòng)化運(yùn)行[9-12]。
雖然ArcGIS內(nèi)部也提供了Model Builder用以創(chuàng)建、編輯模型并集成化運(yùn)行一系列的地理處理工具,但它只是為ArcGIS內(nèi)部的功能提供了一個(gè)可視化、簡(jiǎn)易化的一個(gè)工作流編輯器,對(duì)于Python語言本身很多強(qiáng)大高效的功能卻無法使用,而ArcPy而不會(huì)受此限制,拓展性更強(qiáng)。
矢量分割基本流程是:初始化一個(gè)列表結(jié)構(gòu)XDM_list,來存儲(chǔ)縣代碼,再使用SearchCursor游標(biāo)遍歷全省矢量,讀取其縣代碼字段下的數(shù)據(jù),若此縣代碼不在這個(gè)列表中,那就將此縣代碼添加其中;否則跳過。這一次遍歷即可將此省所有縣代碼存儲(chǔ)進(jìn)XDM_list中。
接下來依次讀取列表中每一個(gè)縣代碼,再次進(jìn)行全省矢量的遍歷,使用到核心Select_Analysis函數(shù),此函數(shù)的主要參數(shù)有3個(gè):待處理矢量、輸出路徑以及選擇條件,選擇條件設(shè)置為縣代碼字段內(nèi)容等于當(dāng)前循環(huán)的縣代碼,即可將每一個(gè)縣的記錄分別導(dǎo)出成一個(gè)單獨(dú)的矢量。運(yùn)行完成后就可以快速地實(shí)現(xiàn)在ArcMap中選擇-導(dǎo)出各縣矢量的操作。
這一步的核心是進(jìn)行圖斑在空間位置上的排序。先直接使用ArcPy內(nèi)置的排序函數(shù),即Sort_management函數(shù)。此函數(shù)的主要參數(shù)有4項(xiàng):待排序矢量、排序完成后輸出矢量路徑、待排序的字段及升降序、空間位置排序規(guī)則(如左上、左下等)。此函數(shù)可以2種方式進(jìn)行矢量排序:UL排序和屬性數(shù)值排序。屬性數(shù)值只是根據(jù)第3項(xiàng)參數(shù)的大小進(jìn)行排序;UL排序則是根據(jù)矢量具體的空間位置,按著給定規(guī)則進(jìn)行排序。因?yàn)樵诘V山新增圖斑編號(hào)規(guī)則中,序號(hào)就是以從左到右、上到下的規(guī)則進(jìn)行排序,等同于從左上開始依次排序,則首先就是以空間位置排序規(guī)則來進(jìn)行排序,代碼如下:
arcpy.Sort_management(goal_layer,sortedgoal_layer,["Shape"],"UL")
需要說明一點(diǎn),若想在Sort_management函數(shù)中使用空間位置排序,函數(shù)的第3個(gè)參數(shù)便要固定為“Shape”,才可以使得第4項(xiàng)參數(shù)有效,其中,UL代表從左上角開始排序,UR代表右上,LL代表左下,LR代表右下。
這一步完成后,已經(jīng)輸出了從左上角開始排序且每個(gè)縣單獨(dú)一個(gè)的矢量,接下來就要針對(duì)礦山主體編號(hào)來進(jìn)行二次編號(hào)。
礦山主體分組后二次排序首先初始化一個(gè)記錄礦山主體編號(hào)的列表xkzSeq,針對(duì)某一個(gè)縣的矢量,遍歷所有記錄,使用類似于第一步中記錄所有縣代碼的方法,將此縣中所有出現(xiàn)過的礦山主體編號(hào)進(jìn)行記錄。同時(shí),因?yàn)榇耸噶恐械挠涗浺呀?jīng)在空間上排序完成,那么,xkzSeq中的順序也代表著不同礦山主體在空間上的順序;接下來,初始化一個(gè)計(jì)數(shù)器i,按順序提取xkzSeq中的礦山主體編號(hào),每提取一個(gè)礦山主體編號(hào),就遍歷一次矢量中的記錄,對(duì)比xkzSeq中與記錄中的礦山主體編號(hào),若相等,就可給當(dāng)前記錄賦值順序號(hào)i,同時(shí)i自增1,不相等就跳轉(zhuǎn)到下一條記錄。這樣循環(huán)下來,既保證了空間順序的一致性,又保證了技術(shù)要求中“同一礦山主體的圖斑順序號(hào)要連續(xù)”的規(guī)定。
第4步操作較為簡(jiǎn)單,根據(jù)縣代碼、矢量類型和年份補(bǔ)足圖斑編號(hào)的其他位數(shù)。當(dāng)所有步驟完成后,即可使用UpdateCursor,setValue和updateRow方法來對(duì)矢量?jī)?nèi)容進(jìn)行更新。若有需要,可將所有編好號(hào)的分縣矢量使用Merge_management方法來進(jìn)行合并,形成全省總矢量。至此,便實(shí)現(xiàn)了礦山新增圖斑編號(hào)的自動(dòng)編制工作。
ArcGIS為用戶提供了一套地理處理任務(wù)的工具集,不僅提供基礎(chǔ)的數(shù)據(jù)處理、分析和制圖功能,而且提供腳本編程批處理、空間分析和建模功能,這些優(yōu)勢(shì)都為降低開發(fā)成本和實(shí)現(xiàn)難度提供了充分的技術(shù)條件[13]。這些地理處理任務(wù)都包含在ArcToolbox工具箱中,其中包含了ArcGIS地理處理的大部分分析工具和數(shù)據(jù)管理工具[14-15]。大部分情況下軟件使用者都是單獨(dú)使用這些工具。對(duì)于一些需要整合不同工具形成流程化工作流的需求,ArcGIS也提供了定制工具箱方法,只保留需要用戶填寫的內(nèi)容,以ArcToolbox式的可交互界面形式展現(xiàn)在用戶面前,本文便是使用這種方法對(duì)編寫的代碼進(jìn)行整合。
在封裝工具箱之前,需要將代碼中需要用戶填寫的路徑、字段名等等內(nèi)容挖空,如圖3(a)。接下來就可在ArcGIS新建自己的工具箱了。通過將挖空參數(shù)與界面中填空區(qū)域進(jìn)行一一對(duì)應(yīng),如圖3(b),定制工具箱就可以開始運(yùn)行并實(shí)現(xiàn)新增圖斑編號(hào)的全自動(dòng)編制工作。
(a)參數(shù)挖空代碼 (b)定制工具箱界面
經(jīng)過試驗(yàn),本方法雖然在排列較為規(guī)律的圖斑時(shí)能夠取得較為良好的效果,但是在處理現(xiàn)實(shí)中排列方式十分復(fù)雜的礦山圖斑的時(shí)候,空間位置第一次排序會(huì)出現(xiàn)不合理的結(jié)果。以西寧市大通回族土族自治縣的部分圖斑為例,如圖4(a)是使用Sort_management函數(shù)中UL的排序方式,可以發(fā)現(xiàn),在這種情況下,2,3,4,5位的順序會(huì)出現(xiàn)左右方向較為大范圍的跨度;而且可以看出,直接使用UL參數(shù)進(jìn)行的排序,更多的是遵循從上到下的順序,左右順序的混亂使這種排序方式不能應(yīng)用到實(shí)際的工作當(dāng)中。
(a)UL方法排序結(jié)果 (b)XY數(shù)值方法排序結(jié)果
圖4(b)是采用屬性數(shù)值方式排序。因從X,Y值的角度來看,從左到右、從上到下的順序就是X升序、Y降序在空間上的一種表現(xiàn)方式,所以,將參數(shù)改為X值升序,Y值降序的方式排序觀察效果,即
arcpy.Sort_management
(in_layer,out_layer,[["X","ASCENDING"],["Y","DESCENDING"]])
會(huì)發(fā)現(xiàn)排序的結(jié)果會(huì)更加混亂,如圖4(b)。此時(shí)感覺更多的是以從左到右,即X升序的方式進(jìn)行排序,Y方向已無法看出明顯的規(guī)律,不符合排序規(guī)范,影響實(shí)際工作。所以,考慮改良排序方法,使之在X和Y方向上均能遵循一定的規(guī)范。
本文考慮的是根據(jù)矢量的X值,首先對(duì)矢量空間進(jìn)行分帶,這樣再?gòu)淖笙蛴乙缼нM(jìn)行處理,就可實(shí)現(xiàn)整體范圍上從左向右依次排序的目標(biāo),不會(huì)出現(xiàn)圖中左右大范圍來回橫移的現(xiàn)象;在每一個(gè)分帶內(nèi),使用Y值從大到小依次排列,便可實(shí)現(xiàn)從上到下的排序。這種處理方法,雖然沒有實(shí)現(xiàn)從左到右、從上到下排序同時(shí)進(jìn)行,但是在相對(duì)小尺度上能夠保證序號(hào)的基本連續(xù)與規(guī)范。排序方法的流程圖如圖5所示。
圖5 改良排序方法流程圖Fig.5 Flow chart of improved sorting method
首先,對(duì)X值進(jìn)行分帶,分別進(jìn)行處理。考慮到我國(guó)大部分縣域以及礦山圖斑的跨度,結(jié)合已有的工作經(jīng)驗(yàn),本文使用10′(約0.166 7°)一帶進(jìn)行分帶,數(shù)值也可根據(jù)不同工作區(qū)進(jìn)行手動(dòng)調(diào)整。某個(gè)縣內(nèi)的分帶數(shù)g計(jì)算公式為:
(1)
式中:Xmax與Xmin為最大和最小X值,通過Python的max()和min()方法可快速實(shí)現(xiàn);[·]為向下取整符號(hào)。
接下來就是對(duì)每一個(gè)條帶內(nèi)的Y值從大到小排列,因?yàn)榇伺判蚪Y(jié)果并沒有考慮礦山主體,不是最終結(jié)果,所以新建一個(gè)Seq_Long字段作為臨時(shí)記錄的一個(gè)字段,待最后排序完成將編號(hào)寫入原有字段中,再將此字段刪除。
遍歷當(dāng)前縣矢量的過程中,判斷X值是否在此條帶范圍內(nèi),若在便可將當(dāng)前圖斑的FID和Y值寫入FID_X字典中;當(dāng)此條帶遍歷完成后,將FID_X根據(jù)Y值進(jìn)行降序排列。排列代碼如下:
FID_X =sorted(FID_X.items(),key=lambda x:x[1],reverse=True)
在此需要注意,sorted方法雖然針對(duì)的是字典對(duì)象,但是在排序完成后,會(huì)將原字典變成列表,所以復(fù)制一個(gè)FID_X命名為FID_X2,用以二次循環(huán)時(shí)的鍵值比對(duì)。
最后就是將按排序好的順序,將序號(hào)寫入Seq_Long字段中,此時(shí)使用到了UpdateCursor,updateRow,getValue與setValue函數(shù),用于對(duì)屬性表值的獲取及編輯。當(dāng)遍歷完所有條帶后,當(dāng)前縣所有圖斑的序號(hào)也就寫入完成了。寫入的代碼如下:
row.setValue("Seq_Long",get_Index(row.getValue("FID"),FID_X)+ firstIndex)
updateCursor.updateRow(row)
接下來也是根據(jù)礦山主體編號(hào)來分組再次排序,以及補(bǔ)齊其他位代碼形成完整的編號(hào),方法與上述相同在此不再贅述。
使用相同的數(shù)據(jù)進(jìn)行排序效果如圖6,可以看到1,2號(hào)圖斑分在了一個(gè)條帶中,余下其他圖斑分在了另一個(gè)。在每個(gè)條帶中按照由上到下順序排列,這樣就完成了在大范圍上由左向右,在小范圍上由上到下的排序方式。
圖6 改良方法排序結(jié)果Fig.6 Sequence in improved sorting method
本文對(duì)青海省化隆回族自治縣22個(gè)、門源回族自治縣53個(gè)、共和縣91個(gè)、大通湟中平安三縣共215個(gè),以及全青海省(有圖斑共32個(gè)縣)近千個(gè)圖斑進(jìn)行人工和自動(dòng)編制的對(duì)比實(shí)驗(yàn)??梢钥闯?,隨著工作量的增加,自動(dòng)編號(hào)的效率對(duì)比手工編號(hào)越高;同時(shí),本文也對(duì)五種數(shù)量下進(jìn)行的人工和自動(dòng)編制出現(xiàn)的誤差進(jìn)行了比對(duì),因手動(dòng)編制出現(xiàn)編號(hào)錯(cuò)誤后需要對(duì)當(dāng)前縣再進(jìn)行依次重新排序與編號(hào),每一次誤差的返工耗時(shí)量在10 min左右,誤差代價(jià)十分巨大,而自動(dòng)編號(hào)則不會(huì)出現(xiàn)錯(cuò)誤,時(shí)間及誤差對(duì)比如表1。工作所用機(jī)器配置為戴爾P7920臺(tái)式工作站,Intel Xeon 4110 2.2 GHz CPU,96 GB內(nèi)存。編號(hào)流程自動(dòng)化的實(shí)現(xiàn),不僅可以節(jié)省時(shí)間,提高工作效率。一旦出現(xiàn)編號(hào)規(guī)范變化的情況,重新編號(hào)僅僅需要修改少量代碼,大大降低時(shí)間和勞動(dòng)成本。
表1 手動(dòng)與自動(dòng)圖斑編號(hào)時(shí)間及誤差對(duì)比Tab.1 Time and error comparison of manual and automatic patch numbering
針對(duì)批量圖斑編號(hào)效率低、易出錯(cuò)的問題,本文利用ArcPy并結(jié)合定制ArcToolbox實(shí)現(xiàn)了這一工作批量自動(dòng)化處理,并用不同數(shù)據(jù)量的圖斑進(jìn)行了對(duì)比實(shí)驗(yàn),結(jié)果表明新增礦山圖斑編制工作的效率得到提高,有助于礦山監(jiān)測(cè)遙感工作信息化水平向更高層次發(fā)展。具體完成了以下幾項(xiàng)內(nèi)容:
1)基于ArcPy編寫代碼,將過去在ArcGIS新增圖斑編號(hào)的編制工作中需要手動(dòng)操作的部分進(jìn)行整合處理,并且將代碼整合成ArcToolbox添加到ArcMap中直接使用,使得程序的分發(fā)與應(yīng)用更加便捷高效,免去繁瑣的重復(fù)勞動(dòng),保證編號(hào)準(zhǔn)確性,工作效率大大提升。
2)針對(duì)ArcPy中自帶的空間位置排序方法不適應(yīng)于礦山遙感工作中要求的問題,將圖斑排序方法進(jìn)行改良,能夠滿足在大尺度上從左到右,小尺度上從上到下的排序要求,使得圖斑編號(hào)更加規(guī)范,有據(jù)可查。
3)針對(duì)日后可能發(fā)生變化的技術(shù)要求與提交說明,只需更改排序方法內(nèi)部的邏輯代碼即可實(shí)現(xiàn)對(duì)程序功能的更新,重新進(jìn)行圖斑編號(hào)的工作量和時(shí)間成本也會(huì)大大減少。
4)此自動(dòng)編號(hào)方法不僅適用于礦山新增圖斑,也適用于土地新增圖斑等有一定規(guī)則與數(shù)據(jù)量的編號(hào)工作。矢量自動(dòng)編號(hào)是圖件編制的基礎(chǔ),有助于礦山遙感監(jiān)測(cè)成果統(tǒng)一規(guī)范化,只有高質(zhì)量的成果數(shù)據(jù)和成果圖件,才能更有效服務(wù)于國(guó)家礦政管理工作、國(guó)土空間用途管制和礦山生態(tài)修復(fù)工作。