張鴿 垢元培
(河北地礦局第二地質大隊 唐山 063000)
關鍵字:遙感影像 Lisp 計算機輔助設計 智能
隨著無人機技術與航天航空遙感技術在測繪生產中的不斷普及,遙感影像在測繪地理信息行業中的應用也越來越廣泛。CAD做為最常用的測繪工具之一,在測繪地形圖、地籍圖、剖面圖及各種專題地圖領域應用廣泛,在小比例尺復雜地形圖的繪制方面的優勢更加突出,能夠精確地將野外原始數據轉化為室內圖形數據,但CAD 的缺點是不能實現遙感影像的自動加載。因此,CAD軟件已不能完全滿足在遙感影像技術飛速發展背景下的測繪地理信息行業要求。為了提高測繪地理信息行業的工作效率,為了更加準確的采集遙感影像數據,借助Lisp 進行二次開發,通過二次開發實現遙感影像的智能加載技術,將有效地提高測繪地理信息行業的工作效率,使遙感影像的應用更加便捷。
遙感影像指記錄各種地物電磁波大小的膠片或照片,主要分為航空遙感影像和航天遙感影像,簡稱:RS。航空遙感影像主要通過無人機航測獲取,航天遙感影像主要通過衛星遙感技術獲取。遙感影像在測繪中主要被用來制作地形圖和各種專題地圖。隨著無人機技術與遙感技術在測繪生產中的不斷普及,遙感影像的應用前景也越來越大。遙感圖像在測繪中主要被用來測繪地形圖、制作正射影像圖和編繪各種專題圖。
常見的遙感影像文件的格式如表一所示。

表一 常見遙感影像文件的格式
通過對遙感影像的數據格式對比,可以分析出文件格式為GeoTIFF 和img 的數據較大適用于GIS 等專業型地理信息軟件,而tif和jpg的數據較小適用于CAD等繪圖軟件。
坐標信息文件是遙感影像的存儲坐標數據的載體,格式主要包括tfw 和jgw。tfw 文件是存儲影像坐標信息的文件,可以使用Erdas、ENVI、ArcMap等專業地理信息軟件獲取tif影像數據的坐標信息,并且該文件必須與影像文件存儲在同一目錄下。tfw的文件結構較簡單,由六行數據組成的ASCII 文本文件。若影像格式為jpg,則坐標信息文件的格式為jgw。

表二 坐標信息文件tfw 或jgw 的數據格式

綜上所述,若要實現CAD 中遙感影像數據的智能加載,必須同時具有遙感影像數據和影像坐標文件,而影像坐標文件中詳細記錄了,遙感影像的坐標信息,是此項技術得以順利實現的關鍵。
計算機輔助設計指利用計算機及其圖形設備幫助設計人員進行設計工作,又稱CAD。CAD 在現代測繪中有著及其重要的地位,并被測繪工作者廣泛的應用。CAD在測繪地形圖、地籍圖、權屬圖、剖面圖及各種專題地圖領域應用廣泛,在小比例尺復雜地形圖的繪制方面的優勢更加突出,能過精確地將野外原始數據轉化為室內圖形數據。CAD是最常用的測繪工具之一。
由于CAD 涉及范圍較大,深層次運用針對性不足,使其不能滿足許多行業在深層次運用中的功能需求。因此CAD 二次開發技術的推廣也就成為眼下迫切需要解決的問題[1]。
CAD在測繪圖形處理、數據編輯方面具有比較好的優勢,但在加載遙感影像時非常不方便。CAD不能根據遙感影像的坐標信息文件自動加載影像,目前最常用的實現方法是借助GIS 或遙感等專業軟件進行影像裁剪,根據裁剪框位置進行CAD 遙感影像加載,過程復雜并且非GIS專業人員很難進行操作。
Lisp 是一種內嵌于CAD 中的表處理程序設計語言,屬于解釋性高級語言,它能夠直接在CAD 內部運行,具有語法簡潔、表達力強、函數種類多、程序結構靈活、易學易用等特點,是CAD 二次開發的理想工具[2]。
CAD雖然提供豐富的繪圖和編輯命令,但有些測量方面常用的功能并不具備,可利用Lisp 語言對CAD做二次開發,開發出適應測量專業特點的新功能函數。例如在地形測量中,加固陡坎、未加固陡坎、鐵路、電力線路、圍墻、界址線等地貌符號和圖式符號的繪制,CAD 沒有提供相應的繪圖命令,為此,可以編制相應的LISP程序來自動處理完成[3]。
為了更好的提高工作效率,為了更加準確的采集遙感影像數據,借助Lisp 進行二次開發,通過二次開發實現遙感影像的智能加載技術,將有效地提高測繪地理信息從業人員的工作效率。
Lisp 與CAD 結合實現遙感影像的智能載入,通過選取遙感影像文件自動在CAD 軟件中加載影像文件,要求遙感影像文件和影像坐標文件必須放在同一目錄下,并且文件名稱相同。具體實現的主要過程如下。
選取文件格式為tif或jpg的遙感影像,代碼如下:

定義遙感影像坐標文件的格式為tfw,為了方便操作,此處只定義遙感影像坐標文件類型為tfw,若坐標文件類型為jgw,只需將文件拓展名改為tfw 即可。這樣可以節約程序運行內存,提高程序的運行速率。

通過讀取坐標文件數據得到坐標信息的數組ArrayTfw,對照表二的數據格式,采用Lisp 語言可以得到表三信息。

表三 讀取坐標文件信息的Lisp 代碼
此處需要注意的是遙感影像的插入點坐標并不是左上角第一個像素的中點X、Y方向坐標,插入點應為遙感影像左上角的頂點坐標,插入點坐標代碼如下:
影像插入點X 坐標:(setq RealX (-(atof(nth 4 ArrayTfw)) (float (/atof (nth 0 Array-Tfw) 2))))。即插入點X 坐標為左上角第一個像素的中點X方向坐標向左側移動半個像素。
影像插入點Y 坐標:(setq RealY (+(atof(nth 5 ArrayTfw)) (float (/atof (nth 3 Array-Tfw) 2))))。即插入點Y 坐標為左上角第一個像素的中點Y方向坐標向上側移動半個像素。
影像插入點坐標:(setq Point (list RealX RealY)。
影像插入點坐標的計算是實現影像自動載入技術的關鍵,是遙感影像載入后精度的最佳保障。
影像插入點坐標計算完畢后,需根據已有圖像文件建立新的點陣式圖像:

然后,獲取新的點陣式圖像的寬和高,代碼如下:


最后,通過平移和縮放命令實現Lisp 與CAD 結合實現遙感影像的智能載入。
本文探討了基于Lisp 的計算機輔助設計遙感影像智能載入技術,結合Lisp 語言實例代碼,詳細闡述了通過Lisp 二次開發實現CAD 智能加載遙感影像的全過程。通過研究解決了CAD 軟件在遙感影像技術飛速發展背景下的測繪地理信息行業需求,實現了更加準確的采集遙感影像數據的技術,使遙感影像的應用更加便捷,能夠有效地提高測繪地理信息從業人員的工作效率。