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 字段的值。