python for arcgis_使用Python For ArcGIS的For循环使用Add Field和Field calcul

我将在这里简要介绍一下背景。我最近收到了大量的数据,这些数据都是从纸质地图上数字化的。每个地图都保存为一个单独的文件,其中包含许多记录(主要是多边形)。我的目标是将所有这些文件合并到一个shapefile或geodatabase中,这是一个非常简单的任务。但是,除了空间信息,文件中的记录没有任何区别信息,所以我想添加一个字段并用原始文件名填充它,以跟踪其出处。例如,在文件“505_dmg.shp公司“我希望每个记录在属性表中标记为“map_name”的列中有一个“505_dmg”id。我正在尝试使用Python实现这一点的自动化,感觉自己很接近了。下面是我使用的代码:# Import system module

import arcpy

from arcpy import env

from arcpy.sa import *

# Set overwrite on/off

arcpy.env.overwriteOutput = "TRUE"

# Define workspace

mywspace = "K:/Research/DATA/ADS_data/Historic/R2_ADS_Historical_Maps/Digitized Data/Arapahoe/test"

print mywspace

# Set the workspace for the ListFeatureClass function

arcpy.env.workspace = mywspace

try:

for shp in arcpy.ListFeatureClasses("","POLYGON",""):

print shp

map_name = shp[0:-4]

print map_name

arcpy.AddField_management(shp, "map_name", "TEXT","","","20")

arcpy.CalculateField_management(shp, "map_name","map_name", "PYTHON")

except:

print "Fubar, It's not working"

print arcpy.GetMessages()

else:

print "You're a genius Aaron"

运行此脚本时收到的输出:

^{pr2}$

看起来很成功,对吧?嗯,它已经…差不多了:为两个文件添加并填充了一个字段,它非常适合505_dmg.shp公司文件。问题是,506_dmg.shp公司在“地图名称”一栏中也被标记为“505_dmg”。虽然循环似乎部分工作,但map_name变量似乎没有更新。非常感谢您的任何想法或建议。在

谢谢

亚伦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值