作者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/cn.aspx?n=bbs/GIS/M.1407981325.A.CFE.html
1F:→ tomjin: 太酷了 谢谢你~~ 不过程度有点高.... 08/22 08:43