實現高程點到等高線的轉換


 

一、在ArcMAP中操作實現

1、啟動ArcCatalog,新建數據庫data.mdb,在空白處右擊,導入data.txt,四個字段分別為Code(設為主健)、X、Y、Z,保存為表Point。
2、啟動ArcMap,Tools→Add XY Data,在“Choose a table”中添加數據庫data.mdb 中點已被展繪
3、Tools→Extensions,把3D Analyst 打上勾,Close。右擊工具欄,把3D Analyst 打上勾。
4、3D Analyst→Create→Modify TIN→Create TIN From Features,把圖層Point Events 打上勾,在“Height Source”中選擇字段Z,在“Output TIN”中輸入TIN
5、3D Analyst→Surface Analyst→Contour,在“Contour Interval”中輸入等高距10,在“OutputTIN”中輸入Contour 值線。其中,生成了TIN后,可以利用3D Analyst模塊下的convert-TIN to Raster將TIN轉換為柵格圖。再利用ArcMap中柵格分析功能對柵格圖處理。
 

 

二、VB編程實現

內容摘要 從高程點到等高線不是一步實現的,而是先把高程點先插值生成TIN,然后再從TIN生成等高線。在從TIN到等高線的生成過程中8.3和9.0上還有點區別,請看代碼注釋。下面的是整個過程的代碼實例。

'打開高程點數據

Dim pFeatureLayer As IFeatureLayer
Set pFeatureLayer = MapControl1.Map.Layer(0)
If pFeatureLayer Is Nothing Then Exit Sub
Dim pFeatureClass As IFeatureClass
Set pFeatureClass = pFeatureLayer.FeatureClass

'生成TIN
Dim pTinEdit As ITinEdit
Dim pTinSurface As ISurface
Dim pTable As ITable
Set pTinEdit = New Tin
Set pTable = New FeatureLayer
pTinEdit.InitNew MapControl1.ActiveView.Extent
Dim pField As IField
Set pField = pFeatureClass.Fields.Field(pFeatureClass.Fields.FindField("Well_Dpth"))
pTinEdit.AddFromFeatureClass pFeatureClass, Nothing, pField, Nothing, 18

Set pTinSurface = pTinEdit

'打開已經創建好的空的等高線數據(也可以在此時創建一個要素類9,如果是9.0版本的話,在空等高線數據中預先需要建一個字段來存儲高
'程值,如果是8.3版本的話就不可以預先創建這樣的一個高程字段,而是在生成等高線過程中根據你指定的
'字段名稱實時創建
Dim pPropset As IPropertySet
Set pPropset = New PropertySet

Dim pFact As IWorkspaceFactory
Dim pWorkspace As IWorkspace

pPropset.SetProperty "DATABASE", App.Path + "\data\"

Set pFact = New ShapefileWorkspaceFactory
Set pWorkspace = pFact.Open(pPropset, Me.hWnd)

Dim pFeatureWorkspace As IFeatureWorkspace
Set pFeatureWorkspace = pWorkspace

Dim pFeatureClass1 As IFeatureClass
Set pFeatureClass1 = pFeatureWorkspace.OpenFeatureClass("MyShape33")

'生成等高線
pTinSurface.Contour 0, 50, pFeatureClass1, "Well_Dpth", 1

Dim pFLayer As IFeatureLayer
Set pFLayer = New FeatureLayer
Set pFLayer.FeatureClass = pFeatureClass1

MapControl1.AddLayer pFLayer
MapControl1.ActiveView.Refresh
View Code

 

 

參考文章

1. ArcGIS點tin,DEM等高線生成問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM