作者psilotum (好小孩)
看板GIS
標題Re: [問題] Arcgis Model 程式碼
時間Thu Aug 14 09:55:22 2014
※ 引述《tomjin (瞇~)》之銘言:
: 大家好
: 小弟想透過 Model 的迴圈方式
: 把所有圖層的某個指定欄位 附加字串
: 但遇到些問題
: 假如原本檔名是CY20131_花椰菜、CY20131_甘藷
: 我想抓 20131
: 然後賦予新欄位整個都叫 20131
: 請問要怎麼寫呢
: 因為我直接拉變數 filename的話
: Calculate Field 也沒辦法抓到
: 而且我還想要抓 filename的 第3個字開始往後5個字 (20131)
: 想請問各位專業的大大要如何對GIS下指令呢
: Calculate Field的介面如下
: http://ppt.cc/qnPZ
: 謝謝指教
可以用 python 做看看
import arcpy
import os
from arcpy import env
# 指定欄位名稱
ncol_name = 'NEWCOL'
# 針對某個目錄底下的所有 shapefile 增加欄位 'NEWCOL',
# 並把名字的第三個往後五個字取出(變數為 ncol_attr)
for filename in os.listdir('C:/path/to/your/files'):
if 'shp' in filename:
filebase = filename.strip('.shp')
ncol_attr = filename[2:7]
dbf_file = filebase+'.dbf'
arcpy.AddField_management(filename, ncol_name, "SHORT", "", "", "", \
fieldAlias, "NULLABLE")
arcpy.CalculateField_management(dbf_file, ncol_name,
ncol_attr, "PYTHON_9.3")
因為手邊沒有 ArcGIS,所以你要測試看看能不能動
可以參考:
http://resources.arcgis.com/en/help/main/10.1/index.html#//001700000047000000
http://resources.arcgis.com/en/help/main/10.1/index.html#/Calculate_Field/00170000004m000000/
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.62.202.156
※ 文章網址: http://webptt.com/m.aspx?n=bbs/GIS/M.1407981325.A.CFE.html
1F:→ tomjin: 太酷了 謝謝你~~ 不過程度有點高.... 08/22 08:43