1.由DWG地形圖生成DEM
1.1從DWG中提取高程點數(shù)據(jù)
1.1.1切割DWG地形圖
數(shù)據(jù)量太大,先切割再進行其他操作。具體步驟為:
用CAD2005把上、下兩幅圖轉(zhuǎn)換成2000格式(CASS是CAD2002配套產(chǎn)品)-用CASS打開上、上兩幅圖(CAD中沒有SAVET保存選擇多邊形內(nèi)圖形功能)-“插入”-“塊”-名稱中打開紅線研究區(qū)-去掉“在屏幕上指定點”(X,Y,Z全是0)-確定后就可以顯示紅線研究區(qū)-用矩形圈出研究區(qū)-“SAVET命令”-輸入比例尺(10 000)-多邊形保存1-選中剛畫的矩形-OK。
1.1.2合并上下兩幅圖
CAD中有一些命令,qselect可以選擇滿足條件的數(shù)據(jù),就可以選擇一層數(shù)據(jù),wblock可以制作塊保存選擇的數(shù)據(jù),具體步驟為:
打開裁剪后的圖上-“插入”-“塊”-打開裁剪后的圖下-去掉“在屏幕上指定點”(X,Y,Z全是0)-選上左下角的“分解”(如果不分解,整個下圖就是一塊,選中一條線就把圖下全部選中了,刪除一條線就把整個刪除了,當(dāng)然現(xiàn)在不選,可以用CAD分解命令分解開)-確定后兩幅圖就拼接好了-然后打開紅線-再次整體裁剪兩幅合并的圖-打開圖層管理-只顯示等高線和高程數(shù)據(jù)圖層-另存為CAD圖。
1.1.3補充高程點數(shù)據(jù)
由于等高線質(zhì)量太差了-斷線或缺少線,沒有高程屬性等,不用等高線生成DEM,用高程點數(shù)據(jù)生成DEM)。具體步驟為:
設(shè)置文字樣式通過“格式”-“文字樣式”-設(shè)置和原來的高程文字相同樣式-補點用TEXT命令-用鼠標(biāo)確定文字位置-確定角度為0-輸入高程數(shù)據(jù)-復(fù)制高程數(shù)據(jù)文字-沿著等高線粘貼該高程數(shù)據(jù)即可(以后用回車或空格完成粘貼)-換等高線時粘上錯誤高程后雙擊文字可改-然后再復(fù)制新文字
1.1.4獲得高程點數(shù)據(jù)表
原先已有高程點是由“高程點和高程數(shù)據(jù)注記文字”組成的,高程點提供了準(zhǔn)確的位置(X,Y)而沒有Z屬性,但文字注記提供了高程值而位置是不準(zhǔn)的,有一個解決辦法可以得到準(zhǔn)確位置的準(zhǔn)確高程值,先得到所有點的位置數(shù)據(jù)表(包含X,Y),再得到高程數(shù)據(jù)表(包含X,Y,H),再編程實現(xiàn)點和高程值的匹配,具體實現(xiàn)方法為:點的位置數(shù)據(jù)和高程數(shù)據(jù)分別保存在兩個數(shù)組中,從第一個點開始在高程數(shù)據(jù)中找距離與他小于一個定值的高程文字,這個文字的內(nèi)容就是這個點的高程,找到后馬上去掉這個高程文字數(shù)據(jù),減小以后的尋找負擔(dān)(在VC中可以用CUintArray作為數(shù)據(jù)數(shù)組,有刪除函數(shù),采用GetSize()得到要尋找的數(shù)據(jù)個數(shù);當(dāng)然還有一種方法是,現(xiàn)在已經(jīng)有EXCEL數(shù)據(jù),轉(zhuǎn)換成ACESS數(shù)據(jù)庫,然后在VC中讀取數(shù)據(jù)庫,一個在VC中好實現(xiàn)讀取ACESS數(shù)據(jù)庫,再一個是不是速度比VC中讀取EXCEL文件快呢?具體實現(xiàn)時在點數(shù)據(jù)表中新那一個字段,保存高程,在另一個高程表中讀取XY值比較距離,打到高程就把高程數(shù)值更新到點數(shù)據(jù)表中的新字段中,當(dāng)然找到一個就把高程表那一條記錄刪除,當(dāng)然找到一條記錄最好是再接著找,要是找到兩個就說明那附近有問題,一個點和兩個高程數(shù)據(jù)接近,或者說沒有找到任何一個點,是不是距離設(shè)置太小了?梢酝ㄟ^VC,VB訪問數(shù)據(jù)庫,當(dāng)然也可以在ACESS的VBA中使用),開始沒有做點和高程的匹配,只是把高程數(shù)據(jù)文字的位置當(dāng)作高程點的坐標(biāo)了,在CAD圖上看了一下,一般高程點和高程文字注記的距離為30多米。不過,后來把研究區(qū)分解成四部分在Excel中根據(jù)閥值和最小距離實現(xiàn)了坐標(biāo)和調(diào)和的匹配,在測繪通報和其他測繪方面的期刊上有這樣的論文。在這里提取文字信息也是在明經(jīng)CAD論壇中找到VBA的代碼的。獲得高程點數(shù)據(jù)的具體步驟為:
“工程”-“宏”-“加載工程”-加載“提取文字信息”VBA代碼-找到宏中的VBA編輯器運行就可以了(也許需要添加引用EXCEL),結(jié)果保存在C盤下的EXCEL文件xyz中(他的X和Y和CAD圖上是反的)。
輸出距離小于100米內(nèi)的點個數(shù),這樣避免下面這樣的情況,兩個都可以。設(shè)置上限100米,這樣可以分析是不是找對了
1.2.根據(jù)高程點數(shù)據(jù)生成DEM
1.2.1生成點SHP文件
ArcMap的工具添加XY數(shù)據(jù)至少可以打開ACCESS數(shù)據(jù)表和TXT文件,ACCESS文件數(shù)據(jù)表直接打開沒問題,TXT文件的格式為:第一行為屬性字段,如(ID,X,Y,Z),然后從第二行開始就是數(shù)據(jù)了,如(1,12.45,23.4,234.5\n2,45.23,45.5,236.5...)。具體步驟為:
通過ACEESS創(chuàng)建數(shù)據(jù)表,新建數(shù)據(jù)庫-附加數(shù)據(jù)庫-打開CEXCEL高程xyz數(shù)據(jù)文件-根據(jù)提示可以生成mdf數(shù)據(jù)表-運行ArcMap-“工具”-“添加XY數(shù)據(jù)”-選擇剛生成的數(shù)據(jù)表-X,Y字段選擇位置-OK-然后保存為shp文件,在圖層列表選擇剛打開的點層-數(shù)據(jù)-導(dǎo)出為SHP格式-到此點SHP文件創(chuàng)建完畢OK。
1.2.2生成TIN數(shù)據(jù)和柵格
有的機器上裝的ArcMap中的3D分析可以用,但是我這臺機器上裝的不能用,不過,我發(fā)現(xiàn)我的機器上ArcScene是好使的,幸虧能用,呵呵。那么具步驟就是:
運行ArcScene-調(diào)出3D分析工具(“工具”-“擴展”中可,也可右鍵工具欄打開3D分析工具,當(dāng)然還可“工具”-“定制”)-3D分析工具中創(chuàng)建/修改TIM-從要素生成TIN彈出對話框-打開高程點SHP層-不用修改了其他的(高度源就是高程字段)-確定就OK了。
轉(zhuǎn)換到柵格的方法:3D分析-轉(zhuǎn)換-TIN轉(zhuǎn)換到柵格OK了。
從網(wǎng)上gissky.net上看到的“利用等高線生成DEM,最好還要有高程點數(shù)據(jù),生成方法最好不要用構(gòu)TIN的方法,要用ARCTOOLBOX-空間分析-內(nèi)插-TOPO TO RASTER 命令,效果要好得多。此命令是專門用于DEM生成的內(nèi)插方法”,做了第一個插值的,效果好像是好點,山頂沒有構(gòu)成TIN的圖尖銳。
1.2.3DEM數(shù)據(jù)的顯示設(shè)置
如果覺得高程差別太小或者太大,起伏不明顯或玄虛太大,設(shè)置基高也許會幫助你解決視覺上的難題,按以下步驟做:
右鍵圖層名-屬性-基表面高度(倒數(shù)第2個)-選中“從表面為圖層獲得高度(這個柵格圖像起始沒選中,tin是選中的)”-Z單位轉(zhuǎn)換自定義后面的數(shù)字就是轉(zhuǎn)換因子,數(shù)字越大,高程差別越明顯。
柵格起始是黑白來區(qū)分高度,tin是用起伏來表示高低,可以設(shè)置由高到低用不同的顏色表示,兩種數(shù)據(jù)設(shè)置有點不一樣的。具體步驟是: 專業(yè)的3S站 3s8.cn
tin的設(shè)置:右鍵打開屬性-符號-顯示下面的“添加”添加渲染-可以選第5個“面高程用顏色梯度進行渲染”-添加,取消關(guān)閉對話框-然后去掉Faces前的勾-然后就可以在“顏色梯度”中選擇自己喜歡的顏色梯度了,還可以在右邊設(shè)置分級數(shù)。
柵格可以直接點擊圖層上的顏色,設(shè)置梯度顏色,也可以打開屬性和tin一樣在符號中設(shè)置。
1.2.4DEM與遙感影像的疊加顯示
在ArcScene中打開DEM,再加載影像時,一定要注意影像邊界不能超過DEM,而且影像必須是GRID柵格格式,一個辦法是利用ArcToolbox中的柵格剪裁工具根據(jù)DEM邊界裁剪,然后在屬性中指定基調(diào)文件為DEM就可以了。