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

gisoracle

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

公告

View Post

Arcpy 更新三维数据高程

import arcpy
infc = arcpy.GetParameterAsText(0)
outfc= arcpy.GetParameterAsText(1)
h=arcpy.GetParameter(2)
arcpy.analysis.Select(infc, outfc, '')
cursor=arcpy.da.UpdateCursor(outfc, ["OID@", "SHAPE@"])
for row in  cursor:
   
    partnum = 0
    row1_new= arcpy.Array()
    for part in row[1]:
        part_new=arcpy.Array()
        for pnt in part:
            if pnt:
                point_new =arcpy.Point(pnt.X,pnt.Y,pnt.Z+h)
                part_new.append(point_new)
                print("{}, {}".format(pnt.X, pnt.Y))
            else:
               
                print("Interior Ring:")
        row1_new.append(part_new)
        rowl_new_polyline = arcpy.Polyline(row1_new,has_z= True)
        row[1] =rowl_new_polyline
        cursor.updateRow(row)
        partnum += 1
del cursor
import arcpy
infc = arcpy.GetParameterAsText(0)
outfc= arcpy.GetParameterAsText(1)
h=arcpy.GetParameter(2)

arcpy.AddMessage("=={}, {},{}".format(infc, outfc,h))
arcpy.analysis.Select(infc, outfc, '1=2')
cursor = arcpy.da.InsertCursor(outfc, ["SHAPE@"])
with arcpy.da.SearchCursor(infc, ["OID@", "SHAPE@"]) as qcursor:
    for row in qcursor:
        partnum = 0
        row1_line= arcpy.Array()
        for part in row[1]:
            linearr=arcpy.Array()
            for pnt in part:
                if pnt:
                    arcpy.AddMessage("{}, {},{}".format(pnt.X, pnt.Y,pnt.Z))
                    point_new =arcpy.Point(pnt.X,pnt.Y,pnt.Z+h)
                    linearr.append(point_new)
                    n=linearr.count
                    p1=linearr[n-1]
                    arcpy.AddMessage("kkk={}, {},{}".format(p1.X, p1.Y,p1.Z))
                    
                else:
               
                    print("Interior Ring:")
                    arcpy.AddMessage("Interior Ring:")
            row1_line.append(linearr)
        new_polyine = arcpy.Polyline(row1_line,has_z= True)
       
        cursor.insertRow([new_polyine])
        partnum += 1

 

posted on 2023-03-09 20:44  gisai  阅读(45)  评论(0)    收藏  举报

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