鄭輝
(河南大學民生學院,河南 開封 475004)
ZHENG Hui
(Henan University Minsheng College,Kaifeng475004,China)
Python語言誕生于20世紀80年代末,它是一種簡單易學,功能強大的編程語言;還是一種開源、免費軟件,用戶在使用時不用擔心版權問題;它有高效率的高層數據結構,簡單而有效地實現面向對象編程。Python簡潔的語法和對動態輸入的支持,再加上解釋性語言的本質,使得它在大多數平臺上的許多領域都是一個理想的腳本語言,并用在不同的領域[1]。
隨著大數據時代的到來,生活信息化程度越來越高,許多傳統的信息處理方式已經遠遠滿足不了當代人的需求。特別是在地學領域的研究中,地理空間數據的處理經常需要借助相應的軟件或者工具。在大量的地理數據中,地理空間數據較其他矢量數據更具有豐富的空間屬性信息,將其不同數據通過裁切、融合、疊加以及其他復雜手段后會得到包含更多空間信息的地理數據。但在正常的操作過程中,一般借助ArcGIS軟件對地理空間數據進行簡單的重復性操作,復雜性的數據處理通常是借助構造函數或相應軟件進行的,這樣機械性的操作不僅會大大影響數據的處理過程,另外,在重復性操作的過程中不可避免引進的數據誤差也會大幅度增加,極大地影響了工作效率和數據處理的靈活性與易用性[2]。
Python語言自被ArcGIS 9.0引入應用以來,憑借著批量處理、操作簡單、入門快、效率高、可跨平臺且植入性高、穩定成熟等眾多優點迅速躋身于地理空間數據處理中,為其工作提供了無限的便利。目前,ESRI公司已完全將Python納入ArcGIS中,并將其視為可滿足用戶需求的語言,再加上Python是免費使用的,因此Python軟件所面對的用戶面十分寬廣,若合理使用則會節省大量數據處理時間,提高工作效率[3]。本文主要通過將重復性操作的數據處理與Python批處理進行對照,對人們的生產生活具有一定的現實意義。
地理空間數據處理是在一定的要求下,借助ArcGIS軟件將不同的地理數據按其空間關系進行相應的幾何操作,最終使得處理后的結果在其屬性表上顯示相應的信息,以此達到具體實踐的目的。而對于多量重復性質的空間數據處理方法,常用的有以下三種方式:針對實際需求,通過ArcToolbox中的數百個處理工具進行處理;借助ArcGIS軟件中自帶的批處理Batch工具進行處理;借助Python腳本語言對數據進行具體實現。
①ArcToolbox處理。ArcGIS軟件提供一系列地理數據處理的方法,并將其集成于一套工具箱之中,可以根據具體的應用利用ArcToolbox簡單的可視化引導界面完成項目任務。
②Batch批處理。雖然ArcToolbox提供了幾百個靈活領用的工具,但其每次只能處理一個數據。如果幾十個數據,則需要重復工作。而工具中的批量處理(Batch)可以實現多個數據到幾十個數據的批量處理,可以通過添加多個數據完成項目任務。
③Python批處理。Batch批處理功能雖能解決多數據的問題,但處理多數據時需要手動加入幾十個數據,并需要對輸出文件進行命名。這樣對成千上萬,甚至幾十百萬個地理數據操作,Batch功能依然無法滿足,而Python靈活的腳本語言可以很好地解決這些難題。
本實例以實際測量土地范圍為例,項目中野外測量獲取不同地塊的特征點位。而用戶需要獲取地塊的長度(線圖層)和面積(面圖層)信息,如圖1所示,圖中黑色三角點為野外實際測量的關鍵點。

圖1 地理空間數據(點、線、面)
案例中使用ArcGIS中的Toolbox與python語言進行對點圖層轉換成線圖層進行比較分析。Python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(字節碼),然后再由Python Virtual Machine(Python虛擬機)來執行這些編譯好的byte code。Python的Virtual Machine是一種更高級的Virtual Machine。與 Java或.NET相比,Python的 Virtual Machine距離真實機器的距離更遠。或者可以這么說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine。實驗結果顯示隨著數據量的不斷增加及人員疲憊的出現,通過ArcGIS中的Toolbox單個處理數據的時間會呈現指數趨勢的增長,而通過Python腳本語言與Toolbox單個處理相比較,隨著數據的增加其節省時間越來越多。
研究中利用Python語言處理大量的地理空間數據的轉換,通過編寫腳本程序可以極大地提高地理空間數據的處理速度,簡化手工操作的步驟,對于大批量流程作業將大幅提高工作效率。案例中僅對比分析簡單的點圖層轉換成線圖層的時效性,今后將進一步研究面的轉換及疊加分析等復雜的分析,進一步探討Python語言在地理空間數據處理中的優越性、時效性。
同時,通過該案例實驗更進一步證明Python語言也很容易學習,非常適合作為非計算機相關專業的計算機程序設計入門語言,特別是對需要處理大量地理空間數據的地理學相關專業。開設Python語言課程,可以作為一種用于學校教學輔助軟件的開發工具,提高工作效率。