999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TFW影像坐標信息在CAD中插入正射影像的方法探討

2017-05-17 06:20:11詹艷春
城市勘測 2017年2期
關鍵詞:程序信息

詹艷春

(湖南省第一測繪院,湖南 衡陽 421001)

基于TFW影像坐標信息在CAD中插入正射影像的方法探討

詹艷春*

(湖南省第一測繪院,湖南 衡陽 421001)

數字正射影像的應用越來越廣泛和頻繁,本文介紹了以LISP設計制作一個批量加載正射影像程序,該程序能自動把正射影像一幅一幅地插入到CAD中,并使之與其真實坐標相對應,大幅提高了工作效率。

TFW;CAD插圖;LISP編程

1 引 言

隨著科學技術的發展,DOM(數字正射影像圖)制作方法日趨成熟,大區域正射影像產品的制作正逐步完成,它以其良好的直觀性、現勢性以及豐富的信息,正逐漸被各個行業和部門使用,在很多領域應用日益廣泛頻繁。目前ArcGIS、MapGis、Microstation、Mapinfo等各類地理信息軟件都自帶了加載DOM功能,而作為現今各行各業最普及最廣泛使用的CAD軟件卻沒有自動識別插入影像功能。本文以CAD自帶的二次開發程序LISP為例,著重探討基于TFW影像坐標信息在CAD中插入正射影像的方法。

2 相關知識及原理

數字正射影像圖(DOM)是以TIFF(Tagged Image File Format)格式存儲(文件后綴為.tif),而TFW(TIFF World File)文件是關于TIFF影像坐標信息的文本文件,ArcInfo、Microstation、AutoCAD等均支持該格式的坐標信息文件。它的結構很簡單,是一個包含六行內容的ASCII文本文件,可以用任何一個ASCII文本編輯器來打開。此文件包含相關的DOM文件的空間參數(spatial reference)數據,定義了影像像素坐標與實際地理坐標的仿射關系,基本原理如下:

x′=Ax+By+C

y′=Dx+Ey+F

其中:

x′=像素對應的地理X坐標

y′=像素對應的地理Y坐標

x=像素坐標(像素寬)

y=像素坐標(像素高)

A=X方向上的像素分辨率

D=平移系數

B=旋轉系數

E=Y方向上的像素分辨素(總為負值)

C=柵格地圖左上角像素中心X坐標

F=柵格地圖左上角像素中心Y坐標

圖1 各DOM圖幅文件夾中包含的影像、坐標等數據格式文件

圖2 tfw數據格式

如圖1中顯示的是DOM的影像文件、坐標信息文件及元數據文件,圖2中展示了用記事本打開tfw文件的內容格式,下面對照圖2列出對TFW文件中的每一行的說明。

第1行:0.200000 代表A=地圖單元中的一個像素在X方向上的X分辨率尺度,即X-Scale(一個像元的大小)

第2行:-0.000000代表 D=平移量。

第3行:0.000000代表B=旋轉量。(角度)

第4行:-0.200000代表E=地圖單元中的一個像素在Y方向上的Y分辨率尺度的負值,即負的Y-Scale(一個像元的大小)

第5行:428980.000000代表C=圖像左上角的X坐標。

第6行:2963020.000000代表F=圖像左上角的Y坐標。

3 編程思路

怎樣才能準確地根據TFW文件中的坐標信息把正射影像插入到CAD當中呢?我們知道TFW中指定的影像定位點是其左上角坐標(C,F),而CAD中圖像的定位點是其左下角坐標(x1,y1) 即【C,y1】,這就需要我們在這兩個定位點之間進行轉換,這里簡單的說明一下,不舉例具體的數據,就以變量來說明問題了。我采用的計算方法和設計步驟如下:

(1)確定影像的右下角的坐標:

根據TFW文件中的坐標信息可已知A、D、B、E、C、F的值以及影像左上角坐標:(x1,y2)=(C,F)

根據tiff影像文件可已知影像像元列數x(像素寬)和行數y(像素高)

根據公式求得影像右下角坐標:(x2,y1)

x2=A*x+ B*y+C

y1=D*x+E*y+F

(2)確定影像的兩個角的坐標:

需要確定影像的左下角坐標和右上角坐標

影像左下角坐標:(x1,y1) 即【C,y1】

影像右上角坐標:(x2,y2) 即【x2,F】

(3)插入影像,并獲取影像在CAD中的坐標;移動縮放影像,使影像的4個角點的坐標與真實坐標相對應。

4 程序源代碼

因全部程序較長,程序代碼不能全部登出,被省略的程序段是實現一些輔助功能代碼。本文只選取了實現主要插圖功能的代碼如下:

;批量插入正射影像

(defun C:moreTifInCAD( )

(if(findfile(setq filenamePath (getfiled "打開文件" (getvar "dwgprefix") "tfw;tif" 0)))

(progn

(setq filenamePath(vl-filename-directory filenamePath));返回文件路徑

;列出給定目錄中的所有文件

(setq filepathList(vl-directory-files filenamePath "*.tfw" 1))

(setq filepathList(vl-remove "." filepathList)

filepathList(vl-remove ".." filepathList))

(foreach filename filepathList

(OneTifIntoCAD(strcat filenamePath "\" filename))

)

)

)

)

;根據tfw坐標信息插入指定圖像位置

(defun OneTifIntoCAD(openfilePath)

(princ " 加載正射影像")

(setq osMode(getvar "osMode"))

(setvar "osMode" 0)

(if(findfile openfilePath)

(progn

(setq Biao(ReadFile openfilePath))

(setq A(atof(nth 0 Biao))

D(atof(nth 1 Biao))

B(atof(nth 2 Biao))

E(atof(nth 3 Biao))

C(atof(nth 4 Biao));x1

F(atof(nth 5 Biao)));y2

(setq openfilePath(strcat(vl-filename-directory openfilePath)"\"(vl-filename-base openfilePath)".tif"))

(if(findfile openfilePath)

(progn

(command "image" "A" openfilePath (list C F) "1" "0" )

(setq ev(vlax-ename->vla-object(entlast)))

(setq Width(vla-get-Width ev) x Width);col(獲取圖像像素寬)

(setq Height(vla-get-Height ev) y Height);row(獲取圖像像素高)

(setq x2 (+(* A x)(* B y) C))

(setq y1 (+(* D x)(* E y) F))

(setq pt1(list C y1))

(command "move" (entlast) "" (list C F) pt1)

(setq pt2(nth 1 (getEV4pt ev)));獲取圖像在CAD中左上角坐標

(command "scale" (entlast) "" pt1 "R" pt1 pt2 (list C F))

(command "draworder" (entlast) "" "B")

)

)

)

)

(setvar "osMode" osMode)

(princ)

)

;按順時針獲取對象的4個角點坐標值

(defun getEV4pt(ev / p1 p2 pptl)

(vla-getboundingbox ev 'p1 'p2)

(setq p1(vlax-safearray->list p1))

(setq p2(vlax-safearray->list p2))

(setq pptl (list p1 (list(car p1)(cadr p2)) p2 (list(car p2)(cadr p1))))

pptl

)

;讀寫文件

(defun ReadFile(txtpath)

(setq stra "" Biao '( ))

(setq ff (open txtpath "r"))

(while(setq stra(read-line ff))

(setq Biao(append Biao (list stra)))

)

(close ff)

Biao

)

插入影像程序在CAD中運行結果示例如圖3所示:

5 結 語

為了解決CAD批量插入正射影像的問題,作者一直思考探索,參考了相關專業文件資料,通過大量的實驗,用AutoCAD軟件中內嵌的LISP語言編寫了一段小程序解決上述問題,該程序能夠把正射影像批量精確插入到CAD中,操作簡便實用。雖然目前市場上也有針對CAD插入影像的程序,但各行業都有一些各自特殊的需要和實際問題,解決這些帶本行業特殊性的實際問題,還是應該由我們自己生產一線的技術人員來完成。我們應該充分利用對本部門業務和專業知識非常熟悉的優勢,自己動手深入開發拓展現有應用軟件的功能。

[1] 郭秀娟,徐勇,鄭馨等. AutoCAD二次開發實用教程[M]. 北京:機械工業出版社,2014:287.

[2] 郭秀娟,于全通,范小鷗. AutoLISP語言程序設計[M]. 北京:化學工業出版社,2010:218.

[3] 楊貴田. AutoCAD基礎與實用教程[M]. 北京:機械工業出版社,2016:144.

Discussion on the Method of DOM Insertion in CAD Based on Coordinate Information of TFW Images

Zhan Yanchun

(The First Surveying and Mapping Institute of Hunan Province,Hengyang 421001,China)

The application of DOM is more and more widely and frequently,this paper introduces the design and implementation of a batch loading DOM program with LISP,the program can automatically insert DOM into CAD,and make it correspond to the true coordinates,greatly improve the work efficiency.

TFW;CAD illustration;LISP programming

1672-8262(2017)02-144-03

P209

B

2016—07—04

詹艷春(1982—),男,工程師,主要從事測繪及地理信息系統應用、數據處理等技術工作。

猜你喜歡
程序信息
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
恐怖犯罪刑事訴訟程序的完善
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 老熟妇喷水一区二区三区| 漂亮人妻被中出中文字幕久久| 亚洲中文制服丝袜欧美精品| 九色免费视频| 欧美激情视频二区| 亚洲视频免| 中文字幕天无码久久精品视频免费 | 韩日免费小视频| 亚洲V日韩V无码一区二区| 国产免费黄| 国产精品专区第1页| 国产精品短篇二区| 极品尤物av美乳在线观看| 国产爽歪歪免费视频在线观看| 伊人91视频| 99re在线视频观看| 免费在线国产一区二区三区精品| 老司机久久99久久精品播放| 亚洲精品国产自在现线最新| 欧美在线免费| 中文字幕在线观看日本| 国产欧美日韩在线在线不卡视频| 2020最新国产精品视频| 国产精品开放后亚洲| 97人人模人人爽人人喊小说| 中文无码精品a∨在线观看| 91亚瑟视频| 一级毛片在线直接观看| 国产大片黄在线观看| 国产一区二区丝袜高跟鞋| 久久精品人人做人人爽97| 99久久精品国产精品亚洲| 伊人精品视频免费在线| 婷婷丁香色| av手机版在线播放| 亚洲视频四区| 老司国产精品视频91| 日本91在线| 亚洲一区二区精品无码久久久| a级毛片在线免费| 日韩毛片免费视频| 亚洲日韩精品综合在线一区二区| 777午夜精品电影免费看| 再看日本中文字幕在线观看| 国产成人三级| 久久久受www免费人成| 综合色亚洲| 特级做a爰片毛片免费69| 91网站国产| 88av在线| 一区二区在线视频免费观看| 超碰91免费人妻| 欧美笫一页| 欧美精品1区2区| 毛片免费在线视频| 成人日韩精品| 国产原创演绎剧情有字幕的| 亚洲黄色视频在线观看一区| 极品国产一区二区三区| 91青青草视频在线观看的| 97视频免费在线观看| 日韩欧美国产区| 秋霞一区二区三区| 国产超薄肉色丝袜网站| 小蝌蚪亚洲精品国产| 欧美日韩成人在线观看| 日本午夜影院| 亚洲人成网7777777国产| 国产成人久久综合一区| 国产高清免费午夜在线视频| 亚洲av片在线免费观看| 国产一区二区在线视频观看| 亚洲天堂精品在线观看| 日韩A∨精品日韩精品无码| 国产香蕉国产精品偷在线观看| 性欧美久久| 国产玖玖玖精品视频| 欧美视频在线观看第一页| 日韩精品一区二区三区中文无码| 国产精品手机在线播放| 亚洲av成人无码网站在线观看| 白浆免费视频国产精品视频|