作者MAGICXX (逢甲阿法)
看板Geography
標題Re: [問題] GIS 批次輸入Attributes Table
時間Wed Mar 9 16:24:16 2011
※ 引述《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)
→ todo70192:因為引擎的聲音太大聲了 尤其是在橋下 回音更大聲09/11 20:11
→ todo70192:害我沒辦法專心講電話 聽不清楚09/11 20:12
→ sinyuan99:所以要怪機車騎士嗎?_?09/11 20:24
→ todo70192:沒錯 機車騎太兇 引擎聲音太大 沒考慮到路邊講電話聽不09/11 20:25
→ todo70192:清楚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)