首页 > 其他分享 >Arcpy 更新三维数据高程

Arcpy 更新三维数据高程

时间:2023-03-09 20:58:33浏览次数:42  
标签:高程 arcpy 三维 pnt outfc part new Arcpy row

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

 

标签:高程,arcpy,三维,pnt,outfc,part,new,Arcpy,row
From: https://www.cnblogs.com/gisoracle/p/17201354.html

相关文章

  • CT三维重建是什么? --九五小庞
    CT三维重建是进行CT检查后,使用电脑进行的后处理,本身并不是一种检查手段。一般通过CT扫描保存的图像获得数据,在后处理重建冠状位、矢状位和轴位图像,常应用于骨骼病变、CTA血......
  • 图形学(1)简单三维变换
    缩放。。。平移。。。旋转绕坐标轴的旋转矩阵记\(R_x(\alpha)\)为绕\(x\)轴顺时针旋转\(\alpha\),以此类推。\[\begin{align*}&\mathbfR_x(\alpha)=\begin{......
  • m基于RFID和DBSCAN聚类的InSAR室内三维定位算法的matlab仿真
    1.算法描述       许多室内应用需要有关物体的空间信息。示例应用程序包括项目查找,对象级别映射和在仓库或库中管理的大型对象。然而,使用802.11,可见光或声学的基于......
  • m基于RFID和DBSCAN聚类的InSAR室内三维定位算法的matlab仿真
    1.算法描述许多室内应用需要有关物体的空间信息。示例应用程序包括项目查找,对象级别映射和在仓库或库中管理的大型对象。然而,使用802.11,可见光或声学的基于位置的服务的传......
  • Three.js实现高程数据加载
    通过加载高程数据(dem),显示地形高低起伏,达到良好的立体展示效果;Three.js能够通过设置一系列坐标点的高度,构建成面的形式,显示高程数据。实现方式:使用Three.js的PlaneGeometry进......
  • 数字孪生监狱 构建智慧监所三维可视化综管系统
    建设背景监狱肩负着戒治管理、维持监所安全稳定等职责,目前全国有监管场所5500多个,监狱680多个。 近年来,司法部不断加大司法行政改革力度,持续推进“数字法治,智慧司法”......
  • geotools存储带高程的Polygon(PolygonZM)
    geotools读取带高程的Polygon:geotools写入带高程的Polygon:>>Postgis如何读写带高程的多边形:https://www.cnblogs.com/2008nmj/p/17109774.html(MultiPolygonZ)   ST......
  • 怎么把控件贴到三维空间里的一个面上
    今天有人在问:怎么把控件贴到三维空间里的一个面上?我想,可以看看这篇文章:使用WPF向控件和三维表面添加视频(​​http://msdn.microsoft.com/zh-cn/mag......
  • Python arcpy创建栅格、批量拼接栅格
      本文介绍基于Python语言arcpy模块,实现栅格影像图层建立与多幅遥感影像数据批量拼接(Mosaic)的操作。  首先,相关操作所需具体代码如下:importosimportarcpyfile_p......
  • 三维重建开源项目汇总
    推荐:将 NSDT场景编辑器 加入你的3D开发工具链。1、Meshroom⭐4,474Meshroom是一款基于AliceVision摄影测量计算机视觉框架的**开源三维重建软件。https://github.co......