ArcPy中的简单场计算

时间:2013-12-22 03:35:40

标签: arcpy

有人可以告诉我如何进行简单的字段计算,例如在ArcPy中从“A”复制到“B”吗?我在网上发现了很多例子,他们都使用了额外的表达式,而且很复杂。我需要的是像ArcMap Gui:

B = !A!

更新: 这是我到目前为止的代码,但是我在运行它时遇到错误

  

NameError:未定义名称“A”

point_shp = "G:\\Temp\\All_Provinces.shp"
arcpy.AddField_management(point_shp, "B", "TEXT", "", "", "25", "", "NON_NULLABLE", "NON_REQUIRED", "")
arcpy.CalculateField_management(point_shp, "B", "A", "PYTHON_9.3")

3 个答案:

答案 0 :(得分:1)

或者,如果您希望使用VB计算计算字段工具,则可以执行以下操作:

arcpy.CalculateField_management(point_shp, "B","[A]")

只是如果你有一个需要Visual Basic的应用程序。

答案 1 :(得分:0)

好的,我知道了,A必须像"!A!"

一样包裹
arcpy.CalculateField_management(point_shp, "B","!A!", "PYTHON_9.3")
哇这个论坛太棒了!这么多的帮助!

答案 2 :(得分:0)

我会通过使用更新游标来攻击它,但我不知道这是否符合您对简单性的需求。

point_shp = "G:\\Temp\\All_Provinces.shp" 
updateCursor = arcpy.UpdateCursor(point_shp)
for row in updateCursor:
    a = row.getValue("name of the "a" field name")
    b = a # --> any manipulations to b can also go here.. example b = a + c  etc... 
          # --> alternatively if you need to do string manipulations you can always make use of specifiers.  such that a = "!%s!" %(a) note:use %d if "a" is a number. This would produce a string "!a!" if you needed it in that format. 
    row.setValue("name of "b" field", b)
    updateCursor.update(row)

以上将允许您获取字段“A”的值,如果需要,可以对这些值执行某些操作并将其存储为b。然后用b填充字段“B”。

注意:如果尚未创建字段B,则需要执行此操作...