• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

gisoracle

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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

 

posted on 2019-07-20 08:33  gisai  阅读(1137)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3