arcpy.UpdateCursor和arcpy.da.UpdateCursor计算面积时间的比较

arcpy.UpdateCursor

#######################
import arcpy
from arcpy import env
import os

import sys

fc= arcpy.GetParameterAsText(0)
filename= arcpy.GetParameterAsText(1)

rows = arcpy.UpdateCursor(fc)

#########################################
##
for row in rows:
    shape=row.shape
    parea=shape.area
    row.setValue(filename,parea)
    rows.updateRow(row)

del row
del rows

arcpy.da.UpdateCursor

import arcpy
from arcpy import env
import os

import sys

fc= arcpy.GetParameterAsText(0)
filename= arcpy.GetParameterAsText(1)
fields = (filename,'SHAPE@AREA')

rows = arcpy.da.UpdateCursor(fc,fields)

#########################################
##
for row in rows:
    parea=row[1]
    #parea=shape.area
    row[0]=parea
    rows.updateRow(row)

del row
del rows

比较如下:

上面是1.22s,下面是0.25s,差5倍 gisoracle测试

另一个数据,11.85s,下面是1.8,差6倍 gisoracle测试

======================================

以令牌(如 OID@)取代字段名称可访问更多的信息:

    <esri_enumhead><esri_enumvaluehd><esri_enumdeschd>
  • SHAPE@XY —一组要素的质心 x,y 坐标。
  • SHAPE@TRUECENTROID —一组要素的真正质心 x,y 坐标。
  • SHAPE@X —要素的双精度 x 坐标。
  • SHAPE@Y —要素的双精度 y 坐标。
  • SHAPE@Z —要素的双精度 z 坐标。
  • SHAPE@M —要素的双精度 m 值。
  • SHAPE@JSON — 表示几何的 esri JSON 字符串。
  • SHAPE@WKB —OGC 几何的熟知二进制 (WKB) 制图表达。该存储类型将几何值表示为不间断的字节流形式。
  • SHAPE@WKT —OGC 几何的熟知文本 (WKT) 制图表达。其将几何值表示为文本字符串。
  • SHAPE@ —要素的几何对象。
  • SHAPE@AREA —要素的双精度面积。
  • SHAPE@LENGTH —要素的双精度长度。
  • OID@ —ObjectID 字段的值。
原文地址:https://www.cnblogs.com/gisoracle/p/11216534.html