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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM