Re: [問題] GIS 批次輸入Attributes Table

看板Geography作者 (逢甲阿法)時間13年前 (2011/03/09 16:24), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/7 (看更多)
※ 引述《twmtman (?)》之銘言: : 以下為我半生不熟的VBA寫的code,裡面可能還有不少bug,原PO你可能要自己debug : Private Sub batchIDW() : '讀取excel : Set myExcel = CreateObject("Excel.Application") : With myExcel : .Workbooks.Open "C:\test\data.xls" '要打開的 xls 檔案 : Set rng = .ActiveSheet.UsedRange : row_c = rng.Rows.Count '讀取row數量 : '呼叫toolbox : Dim GP As Object : Set GP = CreateObject("esriGeoprocessing.GpDispatch.1") : 'Set the toolbox : GP.Toolbox = "C:\Program Files\ArcGIS\ArcToolBox\Toolboxes\ : Data Management Tools.tbx" : Dim ss as string ' 用來儲存calculate field的 VB code : '開始迴圈 : for i = 0 to row_c : dim output as string : '從excel欄位讀取第i行的數值 : output = "C:\test\IDW" & .Worksheets("Sheet1").Range("A" & i) : Value_A = .Worksheets("Sheet1").Range("B" & i) : Value_B = .Worksheets("Sheet1").Range("C" & i) : Value_C = .Worksheets("Sheet1").Range("D" & i) : Value_D = .Worksheets("Sheet1").Range("E" & i) : Value_E = .Worksheets("Sheet1").Range("F" & i) : 寫calculate field的 VB code : ss = "dim a as string" : ss = ss & "\n if [name] = ""A"" then a = " & Value_A : ss = ss & "\n elseif [name] = ""B"" then a = " & Value_B : ss = ss & "\n elseif [name] = ""C"" then a = " & Value_C : ss = ss & "\n elseif [name] = ""D"" then a = " & Value_D : ss = ss & "\n elseif [name] = ""E"" then a = " & Value_E : ss = ss & "\n end if" : gp.calculateField "C:\test\point.shp", "value", "VB", ss : '將此列數直寫入value欄位 : GP.Toolbox = "C:\Program Files\ArcGIS\ArcToolBox\Toolboxes\Spatial Analyst Too : ls.tbx" : 'IDW內插 : gp.idw "C:\test\point.shp", "value", output, 100 'idw內插 cell size = 100m : next '結束迴圈 多謝這位大大為我編寫的VBA程式碼 不過我因為沒有資工背景(頂多用FORTRAN...Orz) 所以叫我DEBUG真的是不太行 囧 我目前已經成功的利用excel下去將資料都加入field了 我現在想到另外一種方法下去運算idw 不過有點卡住.... 我利用gis裡面的 model這個東西來處理這些東西 可是 雖然我現在已經有了初步的方法了 http://tinyurl.com/4rgo3vb 不過這個樣子的話 我還是一次跑一個field.. 利用上面這個方法(model) 有辦法寫出讓他重複的迴圈嗎? 比如說 http://tinyurl.com/4sleopw 在紅線的地方在加入程式碼(多個toolbox 或者是可以多一道手續) 這個樣子下去做多次迴圈嗎? 當我完成之後 我會發p幣給大大們....作為酬謝Q_Q -- #1CYsr0re (Keelung)

09/11 20:11,
因為引擎的聲音太大聲了 尤其是在橋下 回音更大聲
09/11 20:11

09/11 20:12,
害我沒辦法專心講電話 聽不清楚
09/11 20:12

09/11 20:24,
所以要怪機車騎士嗎?_?
09/11 20:24

09/11 20:25,
沒錯 機車騎太兇 引擎聲音太大 沒考慮到路邊講電話聽不
09/11 20:25

09/11 20:25,
清楚
09/11 20:25
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.146.41 ※ 編輯: MAGICXX 來自: 140.121.146.41 (03/09 16:24) ※ 編輯: MAGICXX 來自: 140.121.146.41 (03/09 16:26)
文章代碼(AID): #1DTpapK4 (Geography)
討論串 (同標題文章)
文章代碼(AID): #1DTpapK4 (Geography)