Re: [問題] GIS 批次輸入Attributes Table
※ 引述《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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 7 篇):